为什么 ghc-mod powered neco-ghc 只适用于项目根目录?

why does ghc-mod powered neco-ghc only works on project root directory?

我是 haskell 的新手,所以我对 ghc-mod 的工作原理以及 haskell 世界的 cabal-install 类构建工具的移动方式没有深入的了解在引擎盖下。

但我不知何故从 github 找到了 vim haskell 插件,包括由 ghc-mod 提供支持的 neco-ghc 自动完成插件,这对我来说似乎很有吸引力。

问题在于它仅适用于 cabal-install 初始化项目的项目级 haskell 源代码,而它根本不适用于 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 时自动完成工作(它建议 Prelude 模块的关键字)但是当我尝试编辑 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

当我编辑 src/Lib.hs 时,显然 ghc-mod 没有检测到任何符号。.为什么会这样?

按要求发布答案:ghc-mod 5.4.0 坚持要run from the project's root directory. This breaks various third-party programs that depend on ghc-mod. The neco-ghc plugin has been updated to cope with that, other programs are dropping support for ghc-mod.