Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
  • Product Hunt
  • Visual Capitalist
  • Elon Musk
Menu

Doom Emacs 上的 Haskell 语言服务器

Posted on 2024-11-27


Emacs with haskell code using the lsp to run autocomplete

带有 doom-one-light 主题的 Doom Emacs

快速总结

  • 这假设您已经安装了 Doom Emacs。
  • 我们需要安装 ghcup,它是一个 Haskell 工具链。
  • 最后我们将对你的 doom 配置文件进行一些小的更改

安装 GHCup

按照官方来源的安装说明进行操作https://www.haskell.org/ghcup/

运行终端用户界面。

 ghcup tui

使用向上和向下箭头选择所需的版本并按i进行安装,然后确保在安装后按s来“设置”该版本。


GHCup running in terminal ui mode

末日初始化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" ) ) )

希望这有帮助!

原文: https://abdisalan.com/posts/haskell-lsp-doom-emacs

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abdisalan Mohamud
  • Addy Osmani
  • Aeon
  • Ahoy There! on THT's den
  • Alec Muffett
  • Andreas
  • anhvn
  • Ankaph
  • Annie
  • Armin Ronacher
  • Ask Hacker News Weekly
  • Astro Blog
  • Austin White
  • Backlinko
  • Better Dev Link
  • Building Pika Out Loud
  • Caleb Hearth
  • Cédric Aellen
  • Chip Huyen
  • Colossal
  • Cooltools by KK
  • CoRecursive
  • Craig Mod
  • Curt Merrill
  • Dan Abramov's Overreacted Blog RSS Feed
  • Daniel Lemire
  • Daniel Stenberg
  • Daring Fireball
  • David H
  • David Heinemeier Hansson
  • Dayu | 大宇
  • Ed Zitron
  • Ersei
  • Ersei 'n Stuff
  • Evan Martin
  • First Page Sage
  • Founder Weekly
  • FuzzyGrim
  • Gabriel
  • Good Enough
  • Gregory Hammond
  • Habib
  • How They Make Money
  • I Love Charts
  • Ian Betteridge
  • Ivaylo Durmonski
  • Jason Kottke
  • Jason Kratz
  • Jeff Perry
  • John D. Cook
  • Jonas Hietala
  • Jonathan Snook
  • jwb
  • Kevin Kelly
  • Kevin Yank
  • Kirsty
  • Kush
  • Loris Cro
  • Maarten van Gompel
  • Manas J. Saloi
  • Mandy Brown
  • Matt Fantinel
  • Matt Mullenweg
  • Mere Civilian
  • Ness Labs
  • News Letter
  • Nicholas Carlini
  • Nicolas F. R. A. Prado
  • Niko
  • Nir Eyal
  • Noah Smith
  • Pedro Lopes
  • Positive News
  • Predrag Gruevski
  • Rachel Kroll
  • Recomendo by KK
  • rendezvous with cassidoo
  • Rest of World
  • Ruben Schade
  • Scott Galloway
  • Sébastien Etter
  • SEMrush Blog
  • Seth Godin
  • Shariq Raza Qadri
  • Simon Willison
  • Six Colors
  • Slashdot
  • Spectre Collie
  • Spyglass
  • storytelling with data
  • Streamline Blog
  • Tableau Blog
  • tekphloyd
  • The Alchemy of Money
  • The Independent Variable
  • The Marginalian
  • thriftmac
  • Tim Bray
  • Tim Ferriss
  • Tim Kellogg
  • TLDR
  • Topslakr
  • Track Awesome list
  • Trump
  • Victor Kropp
  • Vincent Ritter
  • Vox
  • Westenberg
  • Xe Iaso
  • xkcd
  • Yuri Cunha
  • Zarar
  • 未分类
  • 英文媒体
  • 英文推特
  • 英文独立博客
  • 读写错误
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme