是否可以让flymake-mode知道racket文件中的语法(或其他)错误,例如erlang或python?如果重要的话,我正在使用geiser-mode进行球拍。
答案 0 :(得分:9)
这可能非常简单,因为Racket以标准行:列格式发出警告信息。
您甚至不需要调用编译器 - 仅通过racket the-file
运行代码就足够了。但作为一个半边注释,使用更好的命令行是racket -qf the-file
。关于如上运行代码的事情是它实际上......运行它。更具体地说,它加载模块定义然后调用它。使用-f
它只会加载定义但不会调用它,因此不会执行运行时。请注意,这假定该文件只包含一个模块,这是您以#lang
开头的所有文件获得的。
更新:我试过了,确实很容易设置。我已在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)