2012-07-09 14 views
7

Actualmente estoy usando tuareg-mode, pero me gustaría poder utilizar la funcionalidad de caml-mode también. En particular, quiero poder usar anotaciones tipo de forma interactiva, y aparentemente esto ocurre con caml-types. Intenté poner http://cristal.inria.fr/~remy/poly/emacs/index.html en mi .emacs.d, pero estoy confundido sobre cómo y si estos dos modos pueden funcionar juntos. De hecho, no puedo hacer que cam-mode funcione en absoluto.Tuareg-mode y caml-mode

que tienen esta línea en mi init.el:

(add-to-list 'load-path "~/.emacs.d/modes/caml") 

Sin embargo, los archivos no se cargan - al menos, ninguna de las definiciones de funciones o combinaciones de teclas son. Realmente pensé que estaba empezando a comprender cómo funcionan estos complementos de emacs, pero estoy empezando a preguntarme. ¿Tal vez alguien puede explicar qué más debe suceder?

Editar: No me di cuenta que tenía que require 'caml para que esto funcione. Aún así, las anotaciones no parecen funcionar aunque tengo tipos de cam a partir del http://caml.inria.fr/svn/ocaml/branches/gadts/emacs/. Compilo con -annot pero todavía me dicen que no hay ningún archivo de anotaciones.

Respuesta

5

Puede escribir una anotación con el modo tuareg. Si tengo esta exacta fichero ~/.emacs:

(add-hook 'tuareg-mode-hook '(lambda() 
    (define-key tuareg-mode-map [f10] 'caml-types-show-type); requires caml-types 
)) 
(add-to-list 'auto-mode-alist '("\\.ml\\w?" . tuareg-mode)) 
(autoload 'caml-types-show-type "caml-types" "Show the type of expression or pattern at point." t) 

luego pulsando F10 muestra el tipo de la expresión bajo el punto. Como saben, es necesario compilar el archivo foo.ml con

ocamlc -annot foo.ml 

de manera que hay un archivo foo.annot en el mismo directorio que foo.ml.

+0

Gracias, esto funciona. Pero intenté vincularme a "C-c C-t" sin éxito. ¿Hay un formato especial para especificar claves en define-key? – scry

+0

"C-c C-t" también funciona aquí, con este .emacs mínimo, sin tener que definirlo. – jrouquie

+0

Bueno, parece que todo funciona como debería, siempre que 'tuareg-with-caml-mode-p' no sea nada, ¿cuándo se supone que está habilitado? Siento que no debería tener que hacerlo yo mismo. eh. – scry