我在emacs中通过lsp-mode使用Haskell Ide Engine。如果我在haskell项目的目录中打开emacs,则一切正常。
cd workspace/haskell/servant-training && emacs
lsp-mode已启用并连接到HIE。
现在,如果我在一个非haskell项目目录中打开emacs,然后对我的haskell项目进行一个projectile-switch-project,我将找不到任何方法来打开新的hie会话。
我尝试使用lsp,lsp-mode命令。
lsp给了我以下消息:haskell-mode没有LSP服务器 lsp-mode显示为当前缓冲区启用的Lsp模式,并可以在底部栏中看到LSP [Disconnected]。
以下是我的emacs配置的相关部分:
;;lsp
(use-package flycheck
:ensure t
:init (global-flycheck-mode))
(use-package lsp-mode
:ensure t
:init
(setq lsp-prefer-flymake nil)
(setq lsp-enable-snippet nil)
(setq lsp-auto-guess-root t))
(use-package company-lsp
:ensure t)
(use-package lsp-haskell
:ensure t
:init
(setq lsp-haskell-process-path-hie "hie-wrapper"))
(use-package lsp-ui
:ensure t)
(add-hook 'lsp-mode-hook 'lsp-ui-mode)
(add-hook 'haskell-mode-hook #'lsp)
;; Projectile
(use-package projectile
:ensure t
:init
;; (setq projectile-require-project-root nil)
:config
(projectile-mode 1))
谢谢