#文档 #语法 #拼写检查 #languagetool

bin+lib cargo-languagetool

用于检查文档和注释中语法的第三方 cargo 扩展

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日

#205Cargo 插件

Download history 318/week @ 2024-05-25 18/week @ 2024-06-01 2/week @ 2024-06-08 126/week @ 2024-06-15 2/week @ 2024-06-22 5/week @ 2024-06-29

每月下载量 501 次

MIT 许可证

31KB
559

cargolanguagetool

Crates.io Version MIT

[!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。

文档注释使用synproc_macro2 crates进行解析。这些crate专门用于确定这些注释在代码中的位置。使用正则表达式来做会浪费很多时间。

依赖关系

~12–27MB
~438K SLoC