2015-10-19 46 views
1

我是哈斯克爾的新手,所以我對ghc-mod的工作方式以及如何構建哈斯克爾世界的工具如何在引擎蓋下移動沒有深入的瞭解。爲什麼ghc-mod驅動的neco-ghc只能在項目根目錄下工作?

但我不知何故從github上找到vim haskell插件,包括neco-ghc自動補全插件,這些插件都支持ghc-mod這對我來說很有吸引力。

問題是,它只適用於項目級別的haskell源代碼cabal-install已初始化的項目,而它根本不適用於stack初始化項目。用下面的命令生成

我的目錄結構:

~ $ mkdir my_project && cd my_project 
~/my_project $ cabal init 
~/my_project $ cabal sandbox init 

這將產生

my_project 
|-- Setup.hs 
|-- cabal.sandbox.config 
|-- src/Lib.hs 

自動完成的作品(它表明前奏模塊的關鍵字),當我編輯Setup.hs但我暗示什麼,當我嘗試編輯src/Lib.hs

:NecoGhcDiagnotics命令輸出

Current filetype: haskell                                                  
ghc-mod is executable: 1                                                  
omnifunc: necoghc#omnifunc                                                 
neocomplete.vim: 0                                                   
neocomplcache.vim: 2                                                   
YouCompleteMe: 0                                                    
vimproc.vim: 900                                                    
ghc-mod: 5.4.0.0                                                    
Imported modules: Prelude                                                  
Number of symbols in Prelude: 0  

當我編輯src/Lib.hs

Current filetype: haskell                                                  
ghc-mod is executable: 1                                                  
omnifunc: necoghc#omnifunc                                                 
neocomplete.vim: 0                                                   
neocomplcache.vim: 2                                                   
YouCompleteMe: 0                                                    
vimproc.vim: 900                                                    
ghc-mod: 5.4.0.0                                                    
Imported modules: Distribution.Simple, Prelude                                            
Number of symbols in Prelude: 235 

是,當我編輯Setup.hs命令的輸出。

它顯然看起來像ghc-mod沒有檢測到任何符號當我編輯src/Lib.hs ..爲什麼會發生這種情況?

+5

因爲'ghc-mod' 5.4.0堅持[從項目的根目錄運行](https://hackage.haskell.org/package/ghc-mod-5.4.0.0/changelog)。並不是它不知道如何找到根目錄和'chdir()':它特別希望你事先做好。有一天,'ghc-mod'的作者可能會開始理解向後兼容的概念,以及爲什麼有些人會爲此做出如此大的冒險。這一天似乎相當遙遠。 – lcd047

+1

升級'neco-ghc' [應該幫助](https://github.com/eagletmt/neco-ghc/pull/56)。 – lcd047

+0

@ lcd047耶穌,你是我的救星!你爲什麼不把這些評論作爲答案,以便我可以接受? – June

回答

相關問題