2005/01/12(水) [n年前の日記]
#18 [xyzzy] uws-modeモドキを作成してみたり
UWSCのスクリプトファイル .uws を、xyzzy で編集したいと思ったので、試しに作成。
◎ _ xyzzy Lisp Programming - メジャーモード :
_xyzzy Lisp Programming - キーワードファイルとシンタックステーブル
_キーワードファイルのリファレンス
_キーワードの設定
sakuraエディタに比べると、色分け表示させるだけでも面倒。
_こちらのページ にテンプレが。ありがたくコピペさせてもらったり。感謝なのです。
_キーワードファイルのリファレンス
_キーワードの設定
sakuraエディタに比べると、色分け表示させるだけでも面倒。
_こちらのページ にテンプレが。ありがたくコピペさせてもらったり。感謝なのです。
◎ コメントの指定の仕方がわからない :
UWSCのヘルプには、
<コメント>とあった。1文字だけならともかく、「//」と2文字を指定するにはどうしたらいいのやら。とりあえず、「/」の1文字だけでコメントとして扱って、逃げる。
// から行末までです
◎ キーワードファイルに記述したキーワードが途中までしか反映しない :
アンダーバー("_")を含んだキーワードが無視される。区切り文字を設定する set-syntax-punctuation のあたりがマズイのだろうか。
set-syntax-word でワード文字を指定できるらしい。
いくつかのキーワードの最後に、空白(' ')がついてた。空白を削ったら全てのキーワードが色分け表示されるようになった。トホホなミス。
(setq *uws-mode-syntax-table* (make-syntax-table)) (do ((x #x21 (1+ x)))((>= x #x7f)) (let ((c (code-char x))) (unless (alphanumericp c) (set-syntax-punctuation *uws-mode-syntax-table* c))))このへんかな。…うーん。わからん。lisp はさっぱり。 *1 _ASCIIコード一覧表 によると、0x5fがアンダーバー。これだけを区切り文字以外に設定できればいいのだろうけど。
set-syntax-word でワード文字を指定できるらしい。
(setq *uws-mode-syntax-table* (make-syntax-table)) (set-syntax-word *uws-mode-syntax-table* #\_ )としたら、改善した。が、それでも一部、反映されてないキーワードがある。何故。
いくつかのキーワードの最後に、空白(' ')がついてた。空白を削ったら全てのキーワードが色分け表示されるようになった。トホホなミス。
◎ uwscスクリプトファイルは c より basic に近いわけで :
前述のテンプレは、c-mode からの流用らしく、インデント関係も c-modeのソレを流用してるように見える。しかしそれでは期待通りの動作をしない。ということで一旦削除して、basic-mode.l をコピペ・修正。とりあえず、Enter を押せばオートインデントするようにはなったけど。自分の頭では、どんな処理をしてるのかさっぱりわからず。でもまあ、ここまで動けばいいか…。
誰も使わないだろうとは思いつつ、バックアップも兼ねて、一応、 _xyzzy の uws-mode.l モドキ をzipで固めて置いとくのでした。あくまでモドキですが。使い方は、解凍して出てきた uws-mode.l の先頭のコメントを。
誰も使わないだろうとは思いつつ、バックアップも兼ねて、一応、 _xyzzy の uws-mode.l モドキ をzipで固めて置いとくのでした。あくまでモドキですが。使い方は、解凍して出てきた uws-mode.l の先頭のコメントを。
*1: 0x21 から 0x7f までの文字でloopして、
_英数字(A〜Z/a〜z/0〜9)
以外を区切り文字にしてる、ように見える。…でも、(make-syntax-table) で、
_ほぼ同様のデフォルト値が設定される
ような気もするのだけど。
[ ツッコむ ]
以上です。