用于emacs的Racket flymake模式

时间:2012-05-20 18:39:24

标签: emacs scheme syntax-error racket flymake

是否可以让flymake-mode知道racket文件中的语法(或其他)错误,例如erlang或python?如果重要的话,我正在使用geiser-mode进行球拍。

1 个答案:

答案 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)