是否可以让 flymake-mode 意识到球拍文件中的语法(或其他)错误,例如对 erlang 或 python 所做的那样?如果重要的话,我正在使用 geiser 模式进行球拍。
问问题
442 次
1 回答
9
这可能很容易,因为 Racket 以标准的 line:column 格式吐出警告消息。
您甚至不需要调用编译器——只需通过racket the-file
. 但作为一个半边注,一个更好的命令行是racket -qf the-file
. 运行上面的代码的事情是它实际上会......运行它。更具体地说,它加载模块定义,然后调用它。使用-f
它只会加载定义但不会调用它,因此不会执行运行时。请注意,这假定该文件是一个只有一个模块的文件,这是所有以#lang
.
更新:我试过了,确实很容易设置。我已经在邮件列表上发布了这段代码:
(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)
于 2012-05-21T13:22:56.570 回答