2012-07-09 26 views
7

Attualmente sto usando la modalità tuareg, ma mi piacerebbe poter utilizzare anche la funzionalità della modalità caml. In particolare, voglio essere in grado di usare le annotazioni di tipo in modo interattivo, e apparentemente ciò si verifica con i tipi di caml. Ho provato a inserire http://cristal.inria.fr/~remy/poly/emacs/index.html nel mio .emacs.d, ma sono confuso su come o se queste due modalità possono funzionare insieme. In effetti, non riesco a far funzionare la modalità caml.Modalità Tuareg e modalità Caml

ho questa linea nella mia init.el:

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

ma i file non sono caricati - almeno, nessuna delle definizioni di funzione o combinazioni di tasti sono. Ho davvero pensato che stavo iniziando a capire come funzionano questi plugin di emacs, ma comincio a chiedermi. Forse qualcuno può spiegare cos'altro deve succedere?

Modifica: non mi sono reso conto che dovevo require 'caml perché funzionasse. Tuttavia, le annotazioni non sembrano funzionare anche se ho i tipi di caml da http://caml.inria.fr/svn/ocaml/branches/gadts/emacs/. Compilare con -annot ma mi viene ancora detto che non ci sono file di annotazioni.

risposta

5

È possibile avere un'annotazione del tipo con la modalità tuareg. Se ho questo esatto file ~/.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) 

quindi premendo F10 mostra il tipo di espressione sotto il punto. Come sapete, è necessario compilare il file foo.ml con

ocamlc -annot foo.ml 

modo che ci sia un file foo.annot nella stessa directory foo.ml.

+0

Grazie, questo funziona. Ma ho provato a legare "C-c C-t" senza successo. Esiste un formato speciale per specificare le chiavi in ​​define-key? – scry

+0

"C-c C-t" funziona anche qui, con questo minimo .emacs, senza doverlo definire. – jrouquie

+0

Bene, sembra che tutto funzioni come dovrebbe, a patto che 'tuareg-with-caml-mode-p' non sia nullo - quando dovrebbe essere abilitato? Mi sento come se non dovessi doverlo fare da solo. eh. – scry

Problemi correlati