mieki256's diary



2005/01/12(水) [n年前の日記]

#18 [xyzzy] uws-modeモドキを作成してみたり

UWSCのスクリプトファイル .uws を、xyzzy で編集したいと思ったので、試しに作成。

_ xyzzy Lisp Programming - メジャーモード :

_xyzzy Lisp Programming - キーワードファイルとシンタックステーブル
_キーワードファイルのリファレンス
_キーワードの設定
sakuraエディタに比べると、色分け表示させるだけでも面倒。

_こちらのページ にテンプレが。ありがたくコピペさせてもらったり。感謝なのです。

コメントの指定の仕方がわからない :

UWSCのヘルプには、
<コメント>
 // から行末までです
とあった。1文字だけならともかく、「//」と2文字を指定するにはどうしたらいいのやら。とりあえず、「/」の1文字だけでコメントとして扱って、逃げる。

キーワードファイルに記述したキーワードが途中までしか反映しない :

アンダーバー("_")を含んだキーワードが無視される。区切り文字を設定する set-syntax-punctuation のあたりがマズイのだろうか。
  (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 の先頭のコメントを。

*1: 0x21 から 0x7f までの文字でloopして、 _英数字(A〜Z/a〜z/0〜9) 以外を区切り文字にしてる、ように見える。…でも、(make-syntax-table) で、 _ほぼ同様のデフォルト値が設定される ような気もするのだけど。

以上です。

過去ログ表示

Prev - 2005/01 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project