为什么 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
.
我是 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
.