拓冰建站拓冰建站
首页 / 资讯中心 / 正文

VS Code 在不可变 Linux 发行版上无法运行 Harper 时如何配置 harper.path?

VS Code 在不可变 Linux 发行版上无法运行 Harper 时如何配置 harper.path【免费下载链接】harperOffline, privacy-first grammar checker. Fast, open-source, Rust-powered项目地址: https://gitcode.com/GitHub_Trending/har/harperHarper 的 VS Code 扩展由harper-ls语言服务器驱动默认启动自己打包的harper-ls可执行文件。在不可变immutable的 Linux 发行版上这个打包的二进制可能无法运行扩展就会失效——表现为harper-ls无法启动。官方文档为此提供了一个专门的设置项harper.path指向系统上独立安装的一个harper-ls可执行文件让扩展改用你指定的二进制而不是自带的。适用对象是 VS Code 及其分支VSCodium、Windsurf 等前提是 Harper 扩展已安装见 VS Code 集成文档。确认问题出在打包的二进制上先确认扩展确实装好了在扩展视图活动栏的扩展图标或CtrlShiftX中搜索 Harper或用命令行安装code --install-extension elijah-potter.harper扩展激活后会以 stdio 方式启动harper-ls进程。当打包二进制在你的系统上跑不起来时扩展弹出 Failed to start harper-ls 错误提示提示中的 Show Info 会把错误信息追加到名为 Harper 的输出通道里可以看具体原因。VS Code 扩展源码 中可以看到harper.path有非空值时扩展直接使用该值作为启动命令否则回退到扩展目录内的bin/harper-ls。在系统上安装一个独立可用的 harper-lsharper.path只是“指向”一个可执行文件它不会替你安装。你需要按 language server 文档 里列出的方式装好 Harper让harper-ls出现在机器上Nixpkgs/NixOS把harper包加入常规环境例如environment.systemPackages即可用nix-shell -p harper或nix shell nixpkgs#harper临时验证。注意nix-shell只在一个临时 shell 里有效扩展常驻运行不适合依赖它应使用持久安装的包。Cargoharper-ls在 crates.io 上直接cargo install harper-ls --locked前提是 Rust 工具链为最新 stable且~/.cargo/bin在$PATH里。文档特别说明 Debian 系发行版可能还需build-essential。HomebrewmacOS 与 Linux、ScoopWindows、Archextra或 AUR 的harper-git以及 GitHub Releases 的便携预编译二进制文档同样列出可按自己的环境选择。装好后在终端确认harper-ls能被找到并拿到它的绝对路径这个路径就是下一步要填进harper.path的值以下以which的假设输出为例$ which harper-ls /home/you/.local/share/nix/profiles/per-user/user/profile/bin/harper-ls注意文档要求指向的是harper-ls可执行文件harper是命令行拼写检查器二者不是同一个二进制不要混填。配置 harper.pathharper.path是 VS Code 扩展的设置项类型为string默认值即使用扩展自带的bin/harper-ls描述为 “Optional path to a harper-ls executable to use.”见 package.json 中contributes.configuration的定义。在设置界面配置打开 SettingsCtrl,搜索Harper找到harper.path填入harper-ls的绝对路径{ harper.path: /home/you/.local/share/nix/profiles/per-user/user/profile/bin/harper-ls }两个操作细节修改后无需手动重启扩展扩展监听harper.path的配置变更会自动用新路径重启harper-lsextension.ts 中onDidChangeConfiguration分支。想手动重启也可以执行命令Harper: Restart Language Server命令 IDharper.languageserver.restart。如果打包的二进制本来就能跑普通 Linux 发行版把harper.path保持为空即可不需要做这一步。验证配置生效确认启动用的是你的二进制扩展启动的是harper-lsstdio 语言服务器如果填错成harper或路径不存在会再次出现 Failed to start harper-ls 提示打开 Harper 输出通道查看堆栈信息。打开一个受支持语言的文件如 Markdown或带注释的代码文件language server 文档 的 Supported Languages 表列出了支持的语言 ID故意写一个拼写或语法错误例如把 contained 拼成 containes应能看到 Harper 的诊断下划线。对选中的错误词应用 Quick Fix 或代码操作如 Add to user dictionary能正常弹出并执行说明语言服务器已通过你指定的二进制正常工作。限制说明harper.path解决的是“扩展用哪个二进制”的问题它不改变词典位置等其他harper-ls配置那些仍通过harper-ls自身的 JSON 配置harper-ls键设置参见 language server 文档的 Configuration 一节。文档没有列出具体哪些发行版上打包二进制会失败只说明该设置在“bundle 的二进制在你的系统上不可用比如不可变 Linux 发行版”时主要有用。若harper.path配置后仍无法启动按输出通道末尾的提示到项目 issue 页面报告。用户词典等文件默认写在$XDG_CONFIG_HOME/harper-ls/等常规用户目录这些路径在不可变发行版上通常仍是可写的如果连这些位置都不可写可用userDictPath、workspaceDictPath等目录配置把词典指到可写位置同样见 Configuration 一节的 Directories 表。更多细节可查阅 Visual Studio Code 集成文档 与 Language Server 文档。【免费下载链接】harperOffline, privacy-first grammar checker. Fast, open-source, Rust-powered项目地址: https://gitcode.com/GitHub_Trending/har/harper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门