●概要 ・xyzzy向けのアセンブラモード設定ファイル群です。 予約語の色付け オートインデント 関数一覧表示 TAGSファイル作成とタグジャンプ への対応を行います。 なおGASのソースを対象とし、予約キーワードはSHプロセッサ向けです(^-^; “;”がコメントのソースは認識しませんので、あしからず。 ●動作環境 ・xyzzy ●導入 ・配布ファイルを解凍ツール等を用いて/xyzzy/site-lisp内に解凍してください。 ・配布ファイル内には以下のファイルが入っています。 Asm 予約キーワードファイル asm-mode.l アセンブラモード定義のlispソースファイル (setq *keyword-load-path* '("c:/xyzzy/usr/keyword")) の様にキーワードファイルパスが設定されている場合は、 予約キーワードファイルを設定されたディレクトリに移動してください。 ・siteinit.lもしくは.xyzzyファイルに以下のコードを記述してください。 ----------------------------------------------------------------------- ; ライブラリの読み込み (load-library "asm-mode") ; Mode定義 - 拡張子に応じた自動モードセットの追加 (pushnew '("\\.asm$" . asm-mode) *auto-mode-alist*) (pushnew '("\\.s$" . asm-mode) *auto-mode-alist*) ----------------------------------------------------------------------- ・公開変数は以下の通りです。 *asm-keyword-file* *asm-mode-hook* *asm-mode-syntax-table* *asm-mode-map* *asm-mode-abbrev-table* *asm-indent-tabs-mode* *asm-tab-always-indent* *asm-comment-column* *asm-popup-completion-list* asm-indent-level asm-label-offset これらの変数で多少のカスタマイズが可能です。 好みに合わせて以下のコードを先の追加分と合わせて記述してください。 ----------------------------------------------------------------------- ; フックの追加 - アセンブラモード時のタブ幅をインデント量に合わせる (add-hook '*asm-mode-hook* #'(lambda () (set-tab-columns asm-indent-level (selected-buffer)))) ----------------------------------------------------------------------- ; インデント量を変更 (デフォルト インデント8、ラベルオフセット-8) (setq asm-indent-level 8 asm-label-offset -4) ----------------------------------------------------------------------- ; TABキーでいつでもインデント (setq *asm-tab-always-indent* t) ----------------------------------------------------------------------- ; インデントはタブコードではなくスペース (setq *asm-indent-tabs-mode* nil) ----------------------------------------------------------------------- ; 補完候補を別ウィンドウを開いて表示 (setq *asm-popup-completion-list* nil) ----------------------------------------------------------------------- siteinit.lはバイトコンパイルを行い、xyzzy.(w95|w98|wnt|wxp)ファイルを削除、 もしくはバックアップ後にxyzzyを起動してください。 .xyzzyに記述された場合は、再起動のみです。 ●実行 ・“.asm”もしくは“.s”ファイルを読んだ場合に“ファイル名 (Asm)”と、 バッファステータスに表示されていればOKです。 ・キーバインドは以下の通り。 TAB … 文字列の前ではインデント、文字列以後はタブコード挿入 RET … 改行及びインデント M-TAB … キーワード補完 ; 2002/06/20 追加 予約キーワードファイル内の定義を利用して補完します。 ・関数一覧の機能が使用可能です。 Cモードと同様に“list-function”が使用できます。 xyzzyのFaqあたりで紹介されていたように、以下の様なコードを用意すれば 良いでしょう。なお一覧に表示されるのは、行頭に記述されたラベルです。 ----------------------------------------------------------------------- ; 関数一覧 (C-7) (global-set-key #\C-7 #'list-function) ----------------------------------------------------------------------- ・タグジャンプの機能が使用可能です。 ツール>TAGSファイルの作成を行った後、分岐命令後のラベル等の上からタグ ジャンプができます。ここでは、行頭以外のラベルでもジャンプできます。 ●キーワードファイル集 asm-keywords.lzh (16,151byte ver 0.02 2002/10/17) 取りあえず、MIPS/SH/ESR-H/ESR-Lプロセッサの分を用意しています。 今のところキーワードファイルを切り替える機能はありませんので、 お好みのファイルを「Asm」に名前を変えるなりして使用してください。 ●免責事項 ・作者は本拡張機能の使用によって生じた損害の一切を補償しません。 個人の責任において使用してください。 --------------------------------------------------------------------- ●謝辞 xyzzyの作者である亀井哲弥氏及び、xyzzyを支えている皆さんへ感謝!