以前 List::UtilsBy::XSというモジュールを書いたとき、
c-modeだとなんか変だしということで xsのソースは頑張って
text-modeで書いていたけど、専用のがあるだろと思って調べて
みると xs-modeというものがあったので、その導入と設定に
ついて。
インストール
(install-elisp "http://www.emacswiki.org/emacs/download/xs-mode.el")
設定
基本的に c-modeなんで、c-modeのパラメータをいろいろといじれば、
好きなようにできると思います。個人的には勝手にインデントするような
ものを無効化しました。
;; for xs-mode (require 'xs-mode) (add-to-list 'auto-mode-alist '("\\.xs$" . xs-mode)) (add-hook 'xs-mode-hook (lambda () (c-toggle-electric-state -1) (setq c-auto-newline nil)))
ドキュメントの設定
XS書くときに利用するドキュメントはほとんど決まっているので、
それを補完する関数を作って設定しました。
(defun xs-perldoc () (interactive) (let* ((docs-alist '(("perlapi") ("perlxs") ("perlguts") ("perlcall") ("perlclib") ("perlxstut"))) (manual-program "perldoc") (input (completing-read "perldoc entry: " docs-alist))) (if input (manual-entry input) (error "no input"))))
これで Emacsから簡単に引けるようになります。名前もなんとなく
覚えづらいので、忘れたときでもあったなぁって感じになれるのでは
ないでしょうか。
おわりに
xs-modeの導入と設定について紹介しました。
ソースを見るとあまり長くないし、既存の言語と似たような文法のもの
であれば、そこまで苦労せずに新言語に対応できるのかもしれない
ですね。詳しいところはわからないですけど、ソースを見る限り、
そのあたりはうまく作られているという印象を持ちました。