5分钟接入Harper:给你的VS Code装上不联网的语法检查器

· 小白基础技术分享

为什么选Harper?

刚才介绍了 Automattic 开源的 Harper 语法检查器。这篇教程带你从零开始,把它装进 VS Code,享受离线、隐私优先的实时语法纠错。

5分钟接入Harper:给你的VS Code装上不联网的语法检查器封面

**核心思路**:Harper 的核心是一个 Rust 编译的 WASM 模块,所有处理在本地完成。VS Code 插件只需下载这个模块,无需任何网络请求。

Step 1: 安装 VS Code 插件

打开 VS Code,按 `Ctrl+Shift+X`(Mac: `Cmd+Shift+X`)打开扩展市场,搜索 “Harper”

找到由 Automattic 官方发布的 `harper-ls`,点击安装。安装完成后 VS Code 右下角会出现 Harper 的状态图标。

Step 2: 验证安装

新建一个文件,写入一段有语法错误的英文:

He go to the store yesterday and buy three apple.

保存文件后,Harper 会用波浪线标注三个错误:

– `go` → 应改为 `went`(过去式不一致)

– `buy` → 应改为 `bought`(时态错误)

– `apple` → 应改为 `apples`(单复数不一致)

如果看到了这些标注,说明 Harper 已正常工作。

Step 3: 调整检查规则

打开 VS Code 设置(`Ctrl+,`),搜索 `harper`。你可以自定义:

{
  "harper.linters.spell_check": true,
  "harper.linters.repeated_words": true,
  "harper.linters.spaces": true,
  "harper.dialect": "American"
}

关键选项说明:

– `harper.dialect`:可选 `American`、`British`、`Canadian`、`Australian`

– `harper.linters.spell_check`:开启拼写检查

– `harper.linters.repeated_words`:检测重复单词(如 “the the”)

Step 4: 集成到项目 CI/CD

Harper 还提供了命令行工具,可以集成到 GitHub Actions 中:

# 安装 harper-cli
cargo install harper-cli

# 检查 Markdown 文件
harper-cli lint "docs/**/*.md"

# 输出 JSON 格式(方便 CI 解析)
harper-cli lint "docs/**/*.md" --json

在 `.github/workflows/lint.yml` 中添加:

- name: Run Harper
  run: harper-cli lint "docs/**/*.md" --json > harper-report.json

常见踩坑与解决方案

在实际使用 Harper 的过程中,有几个高频问题值得注意:

问题一:检查结果不准确

Harper 在英文语法检查上的准确率约为 85-90%,低于 Grammarly(95%+)。遇到误报时,你可以在 VS Code 中使用 `Ctrl+.`(Mac: `Cmd+.`)快速禁用特定规则:

{
  "harper.linters.rule_id": false
}

问题二:大文件性能下降

超过 5000 词的单个文件会导致 WASM 模块内存压力。建议将长文档拆分为章节文件,或者使用 `harper-cli` 的 `–chunk-size` 参数分块处理。

问题三:专业术语误报

如果你写的是技术文档,”kubectl”、”namespace” 等术语会被标记为拼写错误。在项目根目录创建 `.harperignore` 文件:

kubectl
namespace
microservice

生产环境最佳实践

如果你计划在团队中推广 Harper,以下配置建议可以帮你少走弯路:

统一配置文件。在项目根目录放置 `harper.toml`,团队成员 clone 代码后自动应用相同的检查规则,避免”我的机器上没问题”的困扰。

CI 集成做渐进式引入。先在 CI 中以 warning 模式运行(`harper-cli lint –level warning`),等团队适应后再升级到 error 模式。直接上 error 会导致大量构建失败,反而降低采纳意愿。

定期更新 WASM 核心。Harper 的语法规则库在持续改进,每月至少更新一次插件版本。Rust 核心的更新通常包含新的语法检测规则和性能优化。

与其他工具的集成

Harper 的 WASM 核心使其可以嵌入到各种工具中。以下是一些社区维护的集成方案:

Neovim 集成。通过 `null-ls` 或 `none-ls` 插件,可以将 Harper 作为 LSP 诊断源:

local null_ls = require("null-ls")
null_ls.setup({
  sources = {
    null_ls.builtins.diagnostics.harper,
  },
})

Git pre-commit hook。阻止包含语法错误的提交进入仓库:

#!/bin/bash
# .git/hooks/pre-commit
harper-cli lint "$(git diff --cached --name-only --diff-filter=ACM | grep '\.md$')" --json
if [ $? -ne 0 ]; then
  echo "❌ Harper found grammar issues. Please fix before committing."
  exit 1
fi

Obsidian 插件。如果你是 Obsidian 用户,在社区插件市场搜索 “Harper” 即可安装。所有语法检查在本地完成,你的笔记内容永远不会离开 Obsidian 的本地 vault。

**速成效果**:5分钟内,你获得了一个完全离线、零延迟、不发送任何数据到第三方的语法检查环境。对于需要频繁撰写英文技术文档、博客文章和代码注释的开发者来说,这意味着从此不再需要在”便利”和”隐私”之间二选一。

🔥 关注LC智趣厅,每期教程教你一个实用的效率工具。

👇 关注不错过


— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn

Scroll to Top
微信公众号:LC智趣厅

扫码关注微信公众号
LC智趣厅