2012-05-20 7 views
12

È possibile rendere la modalità flymake consapevole degli errori di sintassi (o altri) nei file racket come ad esempio per erlang o python? Sto usando la modalità geiser per la racchetta, se è importante.Modalità flymake racket per emacs

risposta

9

Probabilmente è molto semplice, dal momento che Racket invia messaggi di avviso in una riga standard: formato colonna.

Non è nemmeno necessario richiamare il compilatore: basta eseguire il codice tramite racket the-file. Ma come semi-side-note, una linea di comando ancora migliore da usare è racket -qf the-file. Il fatto di eseguire il codice come sopra è che in realtà ... lo eseguirà. Più specificamente, carica la definizione del modulo e quindi la invoca. Usando -f caricherà solo la definizione ma non la invocherà e quindi il runtime non verrà eseguito. Nota che questo presuppone che il file sia uno che ha solo un modulo, che è ciò che ottieni per tutti i file che iniziano con un #lang.

Aggiornamento: l'ho provato, ed infatti è stato facile impostare le cose. Ho pubblicato questo codice su the mailing list:

(defun flymake-racket-init() 
    (let* ((temp-file (flymake-init-create-temp-buffer-copy 
        'flymake-create-temp-inplace)) 
     (local-file (file-relative-name 
         temp-file 
         (file-name-directory buffer-file-name)))) 
    (list "racket" (list "-qf" local-file)))) 
(push '("\\.rkt\\'" flymake-racket-init) 
     flymake-allowed-file-name-masks)