Я слышал, что мы можем комментировать прогу ocaml. по их типам. В старой ветке форума предлагалось использовать режим ocaml
http://cristal.inria.fr/~remy/poly/emacs/index.html
Я использовал режим Туарега, в котором он предложил использовать «c-c c-t» для получения типов, ср. этот кусок кодов в tuareg.el
(when tuareg-with-caml-mode-p
;; Trigger caml-types
(define-key map [?\C-c ?\C-t] 'caml-types-show-type)
;; To prevent misbehavior in case of error during exploration.
(define-key map [(control mouse-2)] 'caml-types-mouse-ignore)
(define-key map [(control down-mouse-2)] 'caml-types-explore)
Я получил неопределенность "c-c c-t", хотя все выглядит хорошо настроенным.
Вот файл .emacs
(setq auto-mode-alist
(cons '("\\.ml[iyl]?$" . caml-mode) auto-mode-alist))
(autoload 'caml-mode "ocaml"
"Major mode for editing Caml code." t)
(autoload 'camldebug "camldebug"
"Call the camldebugger on FILE" t)
;; adjust paths for emacs source code
(add-to-list 'load-path "~/my-emacs-config/caml-mode")
;; adjust paths for emacs ocaml info sources
(require 'info)
(add-to-list 'Info-directory-list "~/my-emacs-config/caml-mode")
Вот файлы в режиме caml (который содержит ocaml.el)
bash-3.2$ ls ~/my-emacs-config/caml-mode/
caml-compat.el caml-emacs.el caml-font.el caml-help.el caml-hilit.el caml-types.el caml.el camldebug.el inf-caml.el ocaml.el
Я сделал следующее
- написать факториал. в ocaml, называется "annot.ml"
let rec f n =
if n = 1 then 0 else n * f(n-1)
- ocamlc - не annot.ml
- открыть annot.ml с помощью emacs и нажать «c-c c-t», когда курсор находится под «n»
Я попал в минибуфер emacs
c-c c-t undefined
Заключение, я все еще не могу получить типы. Зачем??? Спасибо за ваши идеи.
Подробнее: когда я пробую M-x caml- [tab], я получаю следующий список, который не содержит caml-types-show-types
Possible completions are:
caml-mode camldebug
camldebug-backtrace camldebug-break
camldebug-close camldebug-complete
camldebug-delete camldebug-display-frame
camldebug-down camldebug-finish
camldebug-goto camldebug-kill
camldebug-last camldebug-mode
camldebug-next camldebug-open
camldebug-print camldebug-refresh
camldebug-reverse camldebug-run
camldebug-step camldebug-up