免费的英语语法检查工具千千万,为什么开发者独爱 Harper?
免费的英语语法检查工具千千万为什么开发者独爱 Harper【免费下载链接】harperOffline, privacy-first grammar checker. Fast, open-source, Rust-powered项目地址: https://gitcode.com/GitHub_Trending/har/harper如果你是一名经常和英文打交道的开发者——写代码注释、PR 描述、commit message、技术文档或者偶尔在 GitHub 上回复 issue——大概率有过这样的经历思路完全在线结果一不留神就打出 teh、alot 这种低级错误还要被审阅者温柔提醒。今天要介绍的 Harper就是一款为开发者而生的免费英语语法检查工具离线优先、隐私至上、由 Rust 驱动速度快到让人几乎感觉不到它的存在。 代码注释与文档里的低级错误正在悄悄拖慢开发节奏开发者的写作场景其实很特殊短促、高频、分散在各处。注释里的一句提醒README 里的一段安装说明release notes 里的一条更新日志——这些文字往往没人专门校对却是项目留给外界的脸面。传统的在线检查工具体验往往一言难尽要么把整段文本复制粘贴到网页里检查改完再贴回来来回切换极度割裂要么安装浏览器扩展看似方便实则每一段文字都被上传到远端服务器。对于开源项目、企业内网和注重保密的环境这几乎是不可接受的。Harper 的做法完全不同检查发生在本地你的文字从头到尾不出设备。它在编辑器里以行内标红 悬停建议的方式工作就像拼写检查一样自然。下面这张图展示了它在 GitHub 评论区的实际效果标红的错误悬停即可看到修正建议️ 对比 Grammarly 与 LanguageTool 之后作者为何重写一个开源语法检查工具如果说痛点催生需求那么 Harper 的作者大概是被折磨出了灵感。他在项目文档里直言不讳地写下了对两大主流工具的抱怨Grammarly 太贵、太强势建议常常缺少上下文甚至干脆是错的更别提隐私问题——你写的一切都会被送到它的服务器。LanguageTool 虽然不错但需要下载约 16GB 的 n-gram 数据集动辄占掉几个 GB 内存中等长度的文档也要检查好几秒。于是Harper 带着一个朴素的目标诞生毫秒级完成整篇文档检查内存占用不到 LanguageTool 的五十分之一并且完全离线运行。它甚至轻量到可以编译成 WebAssembly 在浏览器里运行。这段背景很重要因为它解释了 Harper 的很多设计取舍不是功能越多越好而是每一个功能都要快、要私密、要可解释。它默认开启的规则会给出明确、可操作的修改建议而不是甩给你一堆莫名其妙的改写。⚡ 毫秒级检查背后Rust 引擎与 Linter、PatternLinter 的分工协作Harper 的速度不是玄学而是架构设计的结果。整个检查流程发生在harper-core这个核心 crate 里先按 Markdown、HTML、Typst、LaTeX 等格式解析文本并屏蔽代码片段再做词性标注与拼写校验最后由规则引擎产出建议。核心架构上Harper 把检查器抽象成两层通用接口Linter负责检查并返回建议的完整流程而PatternLinter是它的重要子集专注于基于词形序列的模式匹配。下面这张图很直观地展示了二者的关系这种分层设计让新增一条检查规则变得非常廉价大多数情况下你不需要碰解析器只需描述要匹配的词形模式和要给出的建议即可。值得一提的是Harper 把性能当成头等大事——官方明确表示长的检查时间就是 bug并为 Markdown、HTML、Typst 等解析器都配备了模糊测试fuzz testing来保证稳定与健壮。 728 条规则开箱即用还能用 Weir 语言自己加一条打开 Harper 的设置面板你会看到一句让人安心的数字728 条规则按主题分组默认启用 721 条。从专有名词的大小写Proper Nouns、首字母缩写Initialisms到复合词的连字符写法Closed Compounds、冠词与比较级的误用覆盖面相当广。这些规则并非全部手写在 Rust 代码里。Harper 设计了一套名为Weir的声明式规则语言在harper-core/src/linting/weir_rules/目录下躺着几百个.weir文件每个文件就是一条规则。以ALongTime.weir为例寥寥几行就完成了把along time修正为a long time的定义还自带测试用例expr main (along time) let message Use a long time for referring to a duration of time. let kind Grammar let becomes a long time这意味着社区贡献新规则的门槛极低不需要深入理解 Rust 内部写一个.weir文件加两个测试就能提交。对普通用户而言Harper 也提供了直观的开关面板搜索规则、一键禁用、重置默认、往自定义词典里添加专有名词还能在美式、英式等英语方言之间自由切换。 一个引擎全家桶从编辑器到博客平台随处可用Harper 最妙的地方在于它的检查引擎是一份代码到处插所有场景共享同一个核心界面和接入方式则各不相同。编辑器通过harper-lsLanguage Server Protocol 实现VS Code、Neovim、Helix、Emacs、Zed 都能获得开箱即用的支持笔记工具Obsidian 插件让你在记笔记时随时获得行内纠错无需任何服务器博客平台WordPress 插件在撰写文章时实时标出拼写与语法问题点击即可应用修正浏览器Chrome 扩展把检查能力带到 GitHub、Gmail、Outlook、Reddit 等任何网页输入框桌面端harper-desktop提供独立写作应用专门用于校对 Markdown 文稿。 想把检查能力装进自己的产品harper.js 几行代码即可接入Harper 的开发者友好不止体现在插件生态更体现在它本身就可以作为库被集成。harper.js是编译为 WebAssembly 的版本完全在用户设备上运行不需要服务器、不产生隐私顾虑网页应用、编辑器、内容平台都可以轻松嵌入。这也是它和大多数在线语法检查服务的本质区别别人卖的是API 调用次数Harper 交付的是一个可以放进你产品里的引擎。 五分钟上手克隆、安装、按需配置你的检查规则想立刻体验最简单的方式是按需选用现成的插件——VS Code 扩展、Obsidian 插件、Chrome 扩展都能装完即用。想从源码构建流程也很标准git clone https://gitcode.com/GitHub_Trending/har/harper cd harper cargo build --release构建完成后命令行工具harper-cli可以直接对文件执行 lint 检查适合接入 CI 或在终端快速审稿。无论用编辑器插件还是命令行你都能在设置里调整方言、开关规则、管理自定义词典——把 Harper 调教成符合自己写作习惯的私人校对。 写在最后从被语法错误反复打扰到写完即放心Harper 用一个 Rust 引擎把这件事做到了极致免费、开源、离线、毫秒级响应规则还可以声明式扩展。作为开发者与其把写作质量交给联网的云端黑盒不如把语法检查的权力握在自己手里——打开 Harper让你的每一行注释和文档都更专业一点。【免费下载链接】harperOffline, privacy-first grammar checker. Fast, open-source, Rust-powered项目地址: https://gitcode.com/GitHub_Trending/har/harper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考