È 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
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)