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

[xyzzy:07971] 正規表現キーワードの動作について



亀井さん、ML のみなさんこんにちは。OHKUBO Hiroshi です。

さっそくですが、今回は正規表現キーワードについて質問と、それに付随した
要望があります。
宜しくお願いします。


ChangeLog.html によると、正規表現キーワードの指定は

(regexp case-fold color [ context [ begin [ end ] ] ] )

上記の形式のリストなので、以下の様に context に nil を指定し
*scratch* で評価しました。

------------------------------------------------------------
(setq *hoge-regexp-keyword-list*
      (compile-regexp-keyword-list
       '(("^.+" nil ((0 . (:keyword 0))) nil))))
(setq regexp-keyword-list *hoge-regexp-keyword-list*)
------------------------------------------------------------

行おうとしていることは、lisp-interaction-mode において、
行頭の :string :comment :tag 以外の context の範囲の文字を全て
キーワード1 の色に指定しようとしています。

結果として期待している色のつき方は、
------------------------------------------------------------
; ここは context が :comment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ここはコメントの色

ここは context が nil ; ここは context が :comment
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ここはコメントの色
------------------------------------------------------------

なのですが、実際には

------------------------------------------------------------
ここは context が nil ; ここは context が :comment
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ キーワード1の色
------------------------------------------------------------

となり、context が :comment の範囲の文字まで正規表現がマッチし、
一行全体がキーワード1の色となりました。


これは
 1. 私が仕様を受け取り間違えている
 2. 速度的なことを考慮しこのように実装してあって、こういうもの
 3. たまたま今の実装がこういう動作になっている
 4. その他
のどれでしょうか。

もし 3. だとしたら、上記で期待しているような色のつき方の動作に変更して
はいただけないでしょうか。

実際には lisp-interaction-mode での正規表現キーワード指定ではなく、
ini-mode での正規表現キーワード指定で上記のようなことをしたいと思って
います。


ちなみに今の buf2html.l の変換は私が上記で期待していた変換にしてしまっ
ていることにも気がつきました。
私が仕様を勘違いしていることに引導を渡されたら修正しようと思います (^^;


上記件について、ご回答宜しくお願い致します。

---
OHKUBO Hiroshi
konata_o@xxxxxxxxxxx
http://members.tripod.co.jp/ohkubo/xyzzy/index.html

Index Home