[英]ghc/flymake hangs on preprocessor directives
我在emacs上使用flymake(-ghc)( 前奏設置,任何人都想知道,沒有任何額外的配置)用於yesod項目,該項目默認情況下在此處和此處有一些#if
。 除了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 )。
我猜想flymake-ghc
這個東西在檢查時不會啟用C預處理器。 要解決此問題,請在受影響的Haskell文件頂部添加以下內容:
{-# LANGUAGE CPP #-}
此編譯指示為包含的文件啟用預處理器。
通常,這實際上是啟用Haskell語言選項和擴展名的首選方法,因為這種方式將它們限制在實際需要它們的文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.