簡體   English   中英

`VSCode` 的`Haskell` 擴展不適用於 `Linux`

[英]`Haskell` extension for `VSCode` not working on `Linux`

我安裝了ghcup並且:

  • 堆棧 2.9.1
  • HLS 1.8.0
  • 陰謀集團 3.6.2
  • GHC 9.2.5

都是推薦版本(我用ghcup tui驗證過)。 然后我在VSCode中安裝了Haskell擴展。 不幸的是,它不起作用。 我得到了語法高亮顯示(來自Haskell Syntax Highlighting擴展,它似乎與Haskell擴展一起自動安裝)但沒有 Intellisense,沒有代碼完成,沒有錯誤檢測,也沒有交互模式( -->>>評估)。 我嘗試了不同的文件夾和 haskell 個文件。 文件類型是正確的,因為每次我打開.hs文件時,Haskell 擴展名都會檢查更新。 我什至安裝了Codium ,因為我懷疑VSCode有問題,但那里也一樣。

hsl語言服務器似乎也無法在 Neovim 中運行。 我卸載ghcup ( ghcup nuke ) 並再次重新安裝。 結果完全一樣。 我在 PATH 前面添加了PATH並在任一安裝中選擇了 vanilla 和非 vanilla Stack 集成。

難道我做錯了什么?

操作系統: Linux Mint on Ubuntu 20.04.1 5.15.0-56

經過大約 10 次嘗試,我設法解決了這個問題。 結果我遇到了三個問題:

  • 我的 Linux 分區上只有 12 GB 可用空間,但似乎還需要更多空間。 當我發現一些haskell-language-server文件丟失時,我意識到了。 我擴大了我的 Linux 分區(我幾個月前就應該做的事情)。 全新安裝安裝所有文件
  • Haskell 語言服務器 HLS 未添加到 PATH。 我通過將此代碼段放入~/.ghcup/config.yaml來解決它:
  "haskell.serverEnvironment": {
    "PATH": "${HOME}/.ghcup/bin:$PATH"
  }
  • 服務器現在被Haskell VS Code 擴展發現,但崩潰了 5 次並放棄了嘗試。 手動重新啟動它沒有幫助。 我打開日志: View -> Output -> Haskell並看到錯誤:
haskell-language-server-wrapper: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by haskell-language-server-wrapper)

事實證明,我的 Linux Mint 發行版使用GLIBC_2.31 ,而不是2.32 這是一個非常重要的庫,系統上的大多數應用程序都使用它。 如果您是新手,強烈建議您不要手動更新它。

  • 相反,我所做的是安裝一個使用GLIBC_2.31HLS版本。 這個問題發生在 9 月,並被“修復”,但顯然不是很好。 有兩種選擇:
    • 手動下載HLS deb10版本(對我不起作用):
     ghcup install hls -u https://downloads.haskell.org/~hls/haskell-language-server-1.8.0.0/h
    • 使用ghcup tui HLS 版本1.7.0.0 (或使用您的glibc版本的任何最新版本)和支持特定版本 HLS(在我的例子中為9.0.2 )的 GHC 下載。
  • 我認為搶先重新安裝擴展是個好主意,以防它使用 PATH 配置HLS ,以便將其設置恢復為默認值。 初始化服務器最多需要 20 秒,請耐心等待。 您可以看到Output window 中發生了什么,並驗證沒有更多錯誤。

我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM