helm-info で Gauche のリファレンスを読む
info
からマニュアル見れるよということで下の設定を紹介していただいた。
紫ログ:Emacs上でGaucheのinfoを引く - livedoor Blog(ブログ)
helm
から引けるといいなあと思って sources を書き始めたら、そのまんま helm-info-gauche-refe
というコマンドを見つけた。helm-info.el
を読むと、dir ファイルの解析でコマンドを生成しているようなので、/usr/local/share/info/dir
に Gauche
ノードを追加してあげるといいんじゃないかと思う。
$ sudo install-info --dir-file=/usr/local/share/info/dir --info-file=/usr/local/share/info/gauche-refe.info.gz $ grep -i -C2 "gauche" /usr/local/share/info/dir The Algorithmic Language Scheme * Gauche: (gauche-refe.info). An R7RS Scheme implementation. * GOOPS: (goops). The GOOPS reference manual. * Guile Reference: (guile). The Guile reference manual.
gauche-refj.info.gz
の中身がところどころ raw-text
になっていたので英語版のほうを設定している。
eww で Gauche のリファレンスを読む
gauche-manual.el
を入れて eww
で読めるように設定した。取得は el-get
経由で、レシピをインラインで設定している。
gauche-manual-el - jump to gauche online manual - Google Project Hosting
キーバインドを M-g
に当てたのは、下の記事の影響。
(add-to-list 'el-get-sources '(:name gauche-manual :type svn :url "http://gauche-manual-el.googlecode.com/svn/trunk/")) (el-get-bundle gauche-manual) (autoload 'gauche-manual "gauche-manual" "jump to gauche online manual." t) (setq browse-url-browser-function 'eww-browse-url) (define-key scheme-mode-map (kbd "M-g m") 'gauche-manual)
scheme-mode の Gauche 対応
Gauche のライブラリを読もうとしたら、正規表現リテラル内の |
が悪さをしてるらしくハイライトがめちゃくちゃになっていた。gauche-mode
というのがあるようだけど、Emacs が構文をどう扱うかを知りたかったので、自前でなんとかしてみることに。
modify-syntax-entry
だけではうまくいかなさそうなので、syntax-propertize-function
インタフェースを実装してみた。
(add-hook 'scheme-mode-hook 'gauche-syntax) (defun gauche-syntax () (setq-local syntax-propertize-function 'gauche-syntax-propertize-function)) (defun gauche-syntax-propertize-function (start end) (goto-char start) (funcall (syntax-propertize-rules ;; for regexp literal ("#/.*?/" (0 ".")) ;; original by scheme-mode.el ("\\(#\\);" (1 (prog1 "< cn" (scheme-syntax-propertize-sexp-comment (point) end))))) (point) end)) (font-lock-add-keywords 'scheme-mode '(("#/.*?/" (0 font-lock-builtin-face t))))