[xyzzy:08621] Re: リージョンのハイライト
- Subject: [xyzzy:08621] Re: リージョンのハイライト
- From: Nobuyoshi Nakada <nobu.nokada@xxxxxxxxxxxx>
なかだです。
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はできる。
中田 伸悦