●概要
・xyzzy向けのAWKモード設定ファイル群です。
予約語の色付け
関数一覧表示
TAGSファイル作成とタグジャンプ
への対応を行います。
タグジャンプの対象は、function宣言されたユーザ関数のみです。
関数一覧は、function以外にもBEGIN、END等も拾います。
基本的にCモードの設定を流用していますので、インデント等はCモード準処です。
●動作環境
・xyzzy
●導入
・配布ファイルを解凍ツール等を用いて/xyzzy/site-lisp内に解凍してください。
・配布ファイル内には以下のファイルが入っています。
Awk 予約キーワードファイル
awk-mode.l AWKモード定義のlispソースファイル
(setq *keyword-load-path* '("c:/xyzzy/usr/keyword"))
の様にキーワードファイルパスが設定されている場合は、
予約キーワードファイルを設定されたディレクトリに移動してください。
・siteinit.lもしくは.xyzzyファイルに以下のコードを記述してください。
-----------------------------------------------------------------------
; ライブラリの読み込み
(load-library "awk-mode")
; Mode定義 - 拡張子に応じた自動モードセットの追加
(push '("\\.awk$" . awk-mode) *auto-mode-alist*)
-----------------------------------------------------------------------
・公開変数は以下の通りです。
*awk-keyword-file*
*awk-mode-hook*
*awk-mode-syntax-table*
*awk-mode-map*
*awk-mode-abbrev-table*
*awk-indent-tabs-mode*
*awk-tab-always-indent*
*awk-comment-column*
*awk-popup-completion-list*
awk-indent-level
awk-continued-statement-offset
awk-argdecl-indent
awk-brace-offset
awk-brace-imaginary-offset
awk-label-offset
awk-comment-indent
これらの変数で多少のカスタマイズが可能です。
ほぼCモード同様です。
好みに合わせて以下のコードを先の追加分と合わせて記述してください。
-----------------------------------------------------------------------
; インデント量を変更 (デフォルトは順に 2, 2, 5, 0, 0, -2, 2 )
(setq awk-indent-level 4
awk-continued-statement-offset 4
awk-argdecl-indent 0
awk-brace-offset -4
awk-brace-imaginary-offset 0
awk-label-offset -4
awk-comment-indent 4)
-----------------------------------------------------------------------
; TABキーでいつでもインデント
(setq *awk-tab-always-indent* t)
-----------------------------------------------------------------------
; インデントはタブコードではなくスペース
(setq *awk-indent-tabs-mode* nil)
-----------------------------------------------------------------------
; 補完候補を別ウィンドウを開いて表示
(setq *awk-popup-completion-list* nil)
-----------------------------------------------------------------------
siteinit.lはバイトコンパイルを行い、xyzzy.(w95|w98|wnt)ファイルを削除、
もしくはバックアップ後にxyzzyを起動してください。
.xyzzyに記述された場合は、再起動のみです。
●実行
・“.awk”ファイルを読んだ場合に“ファイル名 (Awk)”と、
バッファステータスに表示されていればOKです。
・キーバインドはCモード準拠です。その他に以下の設定を追加しています。
M-TAB … キーワード補完
予約キーワードファイル内の定義を利用して補完します。
・関数一覧の機能が使用可能です。
Cモードと同様に“list-function”が使用できます。
xyzzyのFaqあたりで紹介されていたように、以下の様なコードを用意すれば
良いでしょう。なお一覧に表示されるのは、行頭に記述されたラベルです。
-----------------------------------------------------------------------
; 関数一覧 (C-7)
(global-set-key #\C-7 #'list-function)
-----------------------------------------------------------------------
・タグジャンプの機能が使用可能です。
ツール>TAGSファイルの作成を行った後、ユーザ作成の関数呼び出しからタグ
ジャンプができます。function宣言されている関数のみが対象です。
●免責事項
・作者は本拡張機能の使用によって生じた損害の一切を補償しません。
個人の責任において使用してください。
---------------------------------------------------------------------
●謝辞
xyzzyの作者である亀井哲弥氏及び、xyzzyを支えている皆さんへ感謝