ghc / flymake挂起在预处理器指令上

时间:2014-03-29 12:06:07

标签: haskell emacs ghc flymake

我在emacs上使用flymake(-ghc)(前奏设置,在任何人想知道之前,没有额外的配置)为yesod项目有一些#if&#39 ;默认情况下,这里和那里。除了flymake显示此错误之外,一切都很好:

/path/to/Import.hs:18:2:
    lexical error at character 'i'

并且该行恰好是

#if __GLASGOW_HASKELL__ >= 704

所以,与ghci完全相同的行为:

Prelude> #if something

<interactive>:2:2: lexical error at character 'i'

我在这里找不到任何东西?

奖励auto-complete也无法使用(emacs,前奏曲,默认设置等):它适用于其他内容(例如 R )。

1 个答案:

答案 0 :(得分:3)

我认为这个flymake-ghc事件在检查时不启用C预处理器。要修复它,请将以下内容添加到受影响的Haskell文件::

的顶部
{-# LANGUAGE CPP #-}

此pragma启用包含文件的预处理器。

通常,这实际上是启用Haskell语言选项和扩展的首选方式,因为这种方式仅限于实际需要它们的文件。

相关问题