2012-05-20 5 views
12

Kann man im flymake-modus Syntaxfehler (oder andere) in Racket-Dateien erkennen, wie sie zum Beispiel für Erlang oder Python gemacht werden? Ich benutze Geiser-Modus für den Schläger, wenn es darauf ankommt.Schläger flymake-mode für emacs

Antwort

9

Es ist wahrscheinlich sehr einfach, da Racket Warnmeldungen in einem Standardzeilenspaltenformat ausspuckt.

Sie müssen nicht einmal den Compiler aufrufen - es genügt, den Code einfach über racket the-file auszuführen. Aber als eine Halbseiten-Notiz ist eine noch bessere Befehlszeile zu verwenden racket -qf the-file. Die Sache mit dem Ausführen des Codes wie oben ist, dass es tatsächlich ... es ausführen wird. Genauer gesagt lädt es die Moduldefinition und ruft sie dann auf. Mit -f wird nur die Definition geladen, aber nicht aufgerufen und daher wird die Laufzeit nicht ausgeführt. Beachten Sie, dass davon ausgegangen wird, dass es sich bei der Datei um eine Datei handelt, die nur über ein Modul verfügt. Dies erhalten Sie für alle Dateien, die mit einer #lang beginnen.

Update: Ich habe es versucht, und in der Tat war es einfach, Dinge einzurichten. Ich habe diesen Code auf 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) 
gebucht