[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08621] Re: リージョンのハイライト



なかだです。

At Sat, 18 Jan 2003 00:00:57 +0900,
HIE Masahiro wrote:
> リージョンをハイライト(反転表示)するものをつくってみました。
> 結構無理矢理です。(でも、どうしても欲しかったものですから。)
> 
>   http://www.geocities.jp/madoinu/xyzzy/rv-region.html
> 
> 「それはマズイんでない」とか「他にもこんなのあるよ」とかありま
> したら教えていただけるとうれしく思います。

text-attributeを使うといいかも知れません。抜けがあるかも知れま
せんが、こんな感じ。


--- rv-region.l.orig	2003-01-22 21:13:16.000000000 +0900
+++ rv-region.l	2003-01-24 14:05:41.000000000 +0900
@@ -119,4 +119,12 @@
!   (compile-regexp "\\(quit\\|.*\\(region\\|selection\\|rectangle\\|mouse\\).*\\)"))
 
+(defvar *rv-region-attribute* '(:background 6))
+
+(defvar *rv-region-tag* 'rv-region)
+
+(defun rv-region-highlight (from to)
+  (delete-text-attributes *rv-region-tag*)
+  (apply #'set-text-attribute from to *rv-region-tag* *rv-region-attribute*))
+
 (defun rv-region ()
   (let ((com (if *rv-region-keep-reverse* *last-command* *this-command*)))
@@ -126,5 +134,5 @@
 	(rv-region-stop)
       (let ((m (mark t)))
-	(and m (reverse-region m (point) t))))))
+	(and m (rv-region-highlight m (point)))))))
 
 (defun rv-region-watch ()
@@ -132,5 +140,5 @@
 	(com *this-command*))
     (when (and m (member com *rv-start-command-list*))
-      (reverse-region m (point) t)
+      (rv-region-highlight m (point))
       (rv-region-start))))
 
@@ -158,4 +166,5 @@
 (defun rv-region-stop ()
   (interactive)
+  (delete-text-attributes *rv-region-tag*)
   (delete-hook '*post-command-hook* 'rv-region))
 
@@ -163,5 +172,5 @@
   (interactive)
   (let ((m (mark t)))
-    (and m (reverse-region m (point) t))))
+    (and m (rv-region-highlight m (point)))))
 
 (add-hook '*post-startup-hook*


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

Index Home