8 个不稳定版本 (3 个重大变更)
0.4.1 | 2024年6月15日 |
---|---|
0.4.0 | 2024年5月27日 |
0.3.3 | 2024年5月26日 |
0.2.0 | 2024年5月26日 |
0.1.0 | 2024年5月26日 |
#205 在 Cargo 插件 中
每月下载量 501 次
31KB
559 行
cargolanguagetool
[!WARNING]
该命令仍处于 alpha 阶段。不要期望太多。
提高你的文档质量。使用正确的英语单词和语法,让任何人都能理解你的文档,让任何人都能使用你的代码,并减少人们了解 crate 的工作原理和功能所需的时间。好的例子是必要的,但正确的拼写和易于理解的解释同样重要。
这是 cargo-grammarly
的分支。感谢 iddm
的前期工作。
Grammarly 已停止开发 API。因此,我决定切换到 LanguageTool。LanguageTool 是免费的、开源的,并有一个免费的公共 API。
安装
cargo install --git https://github.com/rnbguy/cargo-languagetool
使用
cargo languagetool
# or
cargo languagetool src/
$ cargo languagetool --help
A third-party cargo extension for checking grammar in the documentation and comments.
Usage: cargo languagetool [OPTIONS] [PATHS]...
Arguments:
[PATHS]... [default: .]
Options:
--hostname <HOSTNAME>
[env: LANGUAGETOOL_HOSTNAME=] [default: https://api.languagetoolplus.com]
-p, --port <PORT>
[env: LANGUAGETOOL_PORT=]
-u, --username <USERNAME>
[env: LANGUAGETOOL_USERNAME=]
-a, --api-key <API_KEY>
[env: LANGUAGETOOL_API_KEY=]
--disable-categories <DISABLE_CATEGORIES>
--enable-categories <ENABLE_CATEGORIES>
--disable-rules <DISABLE_RULES>
--enable-rules <ENABLE_RULES>
--enable-only
--language <LANGUAGE>
[default: en-US]
--picky
--no-cache
Disable cache query.
--show-all
Show all doc comments (even cached).
-h, --help
Print help
-V, --version
Print version
配置
该工具开箱即用。但是,如果您想使用自己的 高级密钥,您可能希望将其放入 .env
文件或作为环境变量
LANGUAGETOOL_USERNAME=jane@doe.com
LANGUAGETOOL_API_KEY=1234abcd
如果您想使用自己的服务器,可以将服务器 URL 放入 .env
或作为环境变量
LANGUAGETOOL_HOSTNAME=http://localhost
LANGUAGETOOL_PORT=8010
[!TIP]
您可以使用ltrs docker
(languagetool-rust
CLI) 启动一个本地的languagetool
docker 容器。
工作原理
该工具简单地从你的crate源代码中抓取所有文档注释(///
,//!
,#![doc = "text"]
和#[doc = "text"]
),并将其发送到languagetool
语法检查API。如果文本中存在任何错误,将使用rustc
编译器打印警告和错误的方式打印出来,使用annotate-snippets
crate。
文档注释使用syn
和proc_macro2
crates进行解析。这些crate专门用于确定这些注释在代码中的位置。使用正则表达式来做会浪费很多时间。
依赖关系
~12–27MB
~438K SLoC