带有 doom-one-light 主题的 Doom Emacs
快速总结
- 这假设您已经安装了 Doom Emacs。
- 我们需要安装 ghcup,它是一个 Haskell 工具链。
- 最后我们将对你的 doom 配置文件进行一些小的更改
安装 GHCup
按照官方来源的安装说明进行操作https://www.haskell.org/ghcup/
运行终端用户界面。
ghcup tui
使用向上和向下箭头选择所需的版本并按i
进行安装,然后确保在安装后按s
来“设置”该版本。
末日初始化el
在 doom 文件夹中(通常位于~/.doom.d/
)打开init.el
文件。确保取消注释此行,然后在终端中运行doom sync
来安装软件包。
( haskell +lsp ) ; a language that's lazier than I am
eglot 与 lsp 模式
我对 eglot 很熟悉,特别是因为它已被添加到版本 29 中的 emacs 核心中。我确信 haskell 语言服务器可以使用它,但我还没有花时间来设置它,而且我已经让它工作了无论如何,使用 lsp 模式🤷🏾♂️
末日配置.el
接下来打开config.el
文件,该文件也位于 doom 文件夹中。我们将添加两个片段。
第一个是设置挂钩,以便在 emacs 检测到haskel-mode
时打开语言服务器。
;; HASKELL ;; Hooks so haskell and literate haskell major modes trigger LSP setup ( add-hook 'haskell-mode-hook #'lsp ) ( add-hook 'haskell-literate-mode-hook #'lsp )
提供环境变量
如果你像我一样通过 GUI 启动 emacs,你的 emacs 可能不会有与你的终端相同的环境。这将导致 emacs 无法找到使用ghcup
安装的haskell-language-server
程序的问题。
例如:
Failed to find a HLS version for GHC 9.4.5 Executable names we failed to find: haskell-language-server-9.4.5,haskell-language-server
第二个片段将确保语言服务器二进制文件可供 emacs 使用。它将 ghcup bin 文件夹添加到exec-path
列表和PATH
环境变量中。将此代码块也放入您的 config.el 中!
;; Put this in your emacs config ;; Add haskell lsp to path for emacs subprocesses ( add-to-list 'exec-path ( expand-file-name "~/.ghcup/bin" ) ) ;; Add haskell tools to path for emacs environment ( setenv "PATH" ( concat ( expand-file-name "~/.ghcup/bin" ) ":" ( getenv "PATH" ) ) )
希望这有帮助!