Skip to content

搞英语 → 看世界

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

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
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

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme