OCamlSpotterを強引に使うための設定
CygwinでビルドしたOCaml 4.00.0と、それを使ってビルドしたOCamlSpotter(bf0060bc031f)と、non-Cygwin Emacs 23.2を併用するためのkluge。CygwinでのパスとWindowsのパスの表現の違いによる問題を解決するものなので、MinGW版のOCamlならこういう設定は不要のはず。多分素直に使える。
.emacsの(require 'ocamlspot)
以降に
(defun cygpath (args)
(let* ((command (with-output-to-string
(princ "cygpath")
(mapc (lambda (x) (princ " ") (princ x)) args)))
(result (shell-command-to-string command)))
(replace-regexp-in-string "\n$" "" result)))
(defun ocamlspot-query-string-at-cursor ()
(let ((file-name (cygpath `(-u ,(prin1-to-string (buffer-file-name))))))
(setq ad-return-value
(format "%s:l%dc%d"
file-name
(ocamlspot-lines-of-point)
(ocamlspot-bytes-of-line-to-point)))))
(defun ocamlspot-find-file-existing (path)
(let ((path (cygpath `(-w ,path))))
(if (file-exists-p path)
(find-file-other-window path)
(ocamlspot-message-add (format "ERROR: source file %s was not found" path))
nil)))
で取り敢えず動くと思う。良く分からなかったりちゃんと動かなかったら諦めた方が吉。
やってて思ったけど、素直に仮想マシンにLinuxなりをインストールした方が苦労が少なそう。でもこのPCメモリそんな積んでないから厳しい。
0 件のコメント:
コメントを投稿