Я новичок в haskell, поэтому у меня нет глубокого понимания о том, как работает ghc-mod
и как cabal-install
-подобные инструменты построения хэскеллских миров движутся под капотом.Почему ghc-mod powered neco-ghc работает только в корневом каталоге проекта?
Но я как-то нашел плагины vim haskell от github, в том числе neco-ghc плагин для автоматического завершения работы от ghc-mod
, который казался мне очень привлекательным.
Проблема заключалась в том, что она работает только на исходных кодах исходного кода проекта 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
.. почему это происходит?
Поскольку 'ghc-mod' 5.4.0 настаивает на [запуске из корневого каталога проекта] (https://hackage.haskell.org/package/ghc-mod-5.4.0.0/changelog). Дело не в том, что он не знает, как найти корневой каталог и 'chdir()' ему: он специально хочет, чтобы вы сделали это заранее. Когда-нибудь авторы 'ghc-mod' могут начать понимать концепцию обратной совместимости и почему некоторые люди так сильно волнуются. На этот день пока что-то довольно далеко. – lcd047
Обновление 'neco-ghc' [должно помочь] (https://github.com/eagletmt/neco-ghc/pull/56). – lcd047
@ lcd047 Иисус, ты моя жизнь! Почему бы вам не оставить эти комментарии в качестве ответа, чтобы я мог его принять? – June