2012-08-17

Caml modeの設定

Caml modeの設定も。

(autoload 'caml-mode "caml" "Major mode for editing OCaml code." t)
(autoload 'run-caml "inf-caml" "Run an inferior OCaml process." t)
(autoload 'camldebug "camldebug" "Run ocamldebug on program." t)

(setq inferior-caml-program
      (if-windows "sh -c ocaml" "ocaml")
      auto-mode-alist
      (cons '("\\.ml[iylp]?$" . caml-mode) auto-mode-alist)
      interpreter-mode-alist
      `(("ocamlrun" . caml-mode)
        ("ocaml" . caml-mode)
        ,@interpreter-mode-alist)
      process-coding-system-alist
      (cons (if-windows '("^sh$" utf-8 . utf-8)
                        '("ocaml" utf-8 . utf-8))
            process-coding-system-alist))

;; If "ocamlc -where" is called, OCaml built with Cygwin returns a Cygwin-style
;; path. Caml mode on non-Cygwin Emacs can't handle it.
(when-windows
  (setq ocaml-lib-path '("C:/Cygwin/usr/local/ocaml-4.00.0/lib/ocaml")))

(add-hook 'caml-mode-hook 'viper-mode)

(if window-system
    (require 'caml-font))

inferior-caml-program"sh -c ocaml"にしているのは、OCamlのインストール先の都合上。/usr/local/ocaml-4.00.0以下にインストールして、/usr/local/binなどに各ファイルのシンボリックリンクを張っているんだけど、CygwinをリンクしてないEmacsだとシンボリックリンクを辿れないし、パスを追加したりとかは色々面倒なので。

shのprocess coding systemをここで指定しているのは格好悪いかも。どうせCygwinは1.7以降UTF-8前提なんだし、別の所で堂々と設定したほうが良いかもしれない。

0 件のコメント: