35个版本 (11个稳定版)
2.1.4 | 2023年8月10日 |
---|---|
2.1.3 | 2023年7月24日 |
2.1.2 | 2023年5月29日 |
2.1.0 | 2023年2月9日 |
0.0.18 | 2022年6月22日 |
在文本处理类别中排名87
每月下载量70次
在cargo-languagetool中使用
110KB
2K SLoC
LanguageTool-Rust
Rust语言绑定,用于连接到LanguageTool服务器API。
LanguageTool是一个开源的语法和风格检查器。它可以纠正30多种语言,并且免费使用,更多详情请访问languagetool.org。它提供了一个公开的API(免费层),但您也可以在本地托管自己的服务器。LanguageTool-Rust可以帮助您通过Rust代码轻松地与这些服务器进行通信!
关于
LanguageTool-Rust (LTRS) 既是可执行程序也是Rust库,旨在为LanguageTool API提供正确和安全的语言绑定。
免责声明:当前工作依赖于LanguageTool API的一个近似。我们尽可能地避免破坏性更改,但我们仍然高度依赖于LanguageTool的未来发展。
安装
您可以使用cargo
安装最新版本。
cargo install languagetool-rust --features full
AUR
如果您使用Arch Linux,您也可以使用您的AUR助手进行安装
paru -S languagetool-rust
CLI参考
LTRS的命令行界面允许您快速使用任何LanguageTool服务器来检查语法和风格错误。
CLI的参考可以通过ltrs --help
访问。
默认情况下,LTRS使用LanguageTool公开的API。
示例
> ltrs ping # to check if the server is alive
PONG! Delay: 110 ms
> ltrs languages # to list all languages
[
{
"name": "Arabic",
"code": "ar",
"longCode": "ar"
},
{
"name": "Asturian",
"code": "ast",
"longCode": "ast-ES"
},
# ...
]
> ltrs check --text "Some phrase with a smal mistake"
{
"language": {
"code": "en-US",
"detectedLanguage": {
"code": "en-US",
"confidence": 0.99,
"name": "English (US)",
"source": "ngram"
},
"name": "English (US)"
},
"matches": [
{
"context": {
"length": 4,
"offset": 19,
"text": "Some phrase with a smal mistake"
},
"contextForSureMatch": 0,
"ignoreForIncompleteSentence": false,
"length": 4,
"message": "Possible spelling mistake found.",
"offset": 19,
"replacements": [
{
"value": "small"
},
{
"value": "seal"
},
# ...
}
# ...
]
# ...
}
> ltrs --help # for more details
Docker
由于LanguageTool的安装可能并不简单,我们提供了一个基本的Docker集成,允许您通过几行代码来pull
、start
和stop
LanguageTool Docker容器。
ltrs docker pull # only once
ltrs docker start # start the LT server
ltrs --hostname https://127.0.0.1 -p 8010 check -t "Some tex"
# Other commands...
ltrs docker stop # stop the LT server
注意: Docker 是一种工具,它可以帮助您在不考虑依赖项、平台相关问题等的情况下运行应用程序。安装指南可在这里找到。在 Linux 平台上,您可能需要通过这样做来解决 sudo 权限问题。
API参考
如果您想在 Rust 应用程序或 crate 中集成 LTRS,我们建议您阅读文档。
要在您的 Rust 项目中使用 LanguageTool-Rust,请将以下内容添加到您的 Cargo.toml
[dependencies]
languagetool_rust = "^2.1"
示例
use languagetool_rust::{check::CheckRequest, server::ServerClient};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = ServerClient::from_env_or_default();
let req = CheckRequest::default()
.with_text("Some phrase with a smal mistake".to_string());
println!(
"{}",
serde_json::to_string_pretty(&client.check(&req).await?)?
);
Ok(())
}
功能标志
默认特性
- cli:为多个结构体添加与命令行相关的功能。此功能是安装 LTRS CLI 的必备条件,并启用以下特性:annotate、color、multithreaded。
- native-tls:启用由
native-tls
提供的 TLS 功能。
可选特性
- annotate:为检查请求的结果添加方法。
- cli-complete:为各种 shell 添加命令以生成完成文件。此特性还激活了 cli 特性。输入
ltrs completions --help
以获取安装完成文件的帮助。 - color:启用终端中的彩色输出。如果同时启用 cli 特性,将出现
--color=<WHEN>
选项。 - full:启用所有相互兼容的特性(即
cli-complete
、docker
和unstable
)。 - multithreaded:启用多线程请求。
- native-tls-vendored:启用
native-tls
的vendored
特性。如果您计划使用 HTTPS 服务器,则应激活此特性或native-tls
。 - unstable:向 JSON 响应中添加更多字段,这些字段不在 Model | Example Value 中存在,但在某些情况下可能存在。所有添加的字段都是可选的,因此用
Option
包围。
相关项目
以下是使用 LTRS 的项目列表。
null-ls
:内置 LTRS 的 Neovim 插件(查看 PR)languagetool-code-comments
:使用 LTRS 检查代码注释中的语法错误
您是否在项目中使用 LTRS?请与我联系,以便我将它添加到列表中!
贡献
依赖关系
~3–18MB
~287K SLoC