#cargo-toml #cli #json-file #youcompleteme #none-cargo

app rvi

一个小工具,允许您使用 rust-analyzer 在不使用 cargo 的情况下编写 Rust 代码。

5 个版本

0.1.4 2022 年 5 月 17 日
0.1.3 2022 年 4 月 26 日
0.1.2 2022 年 4 月 20 日
0.1.1 2022 年 4 月 20 日
0.1.0 2022 年 4 月 20 日

#114 in #json-file

MIT 许可证

13KB
213

rvi

一个小工具,允许您使用 vimrust-analyzer 在不使用 cargo 的情况下编写 Rust 代码。

  • 假设您使用 vimrust analyzer
  • 当您使用 vim 和 rust-analyzer 编辑单个 Rust 文件时,您会发现 rust-analyzer 工作不正常,代码补全和代码检查都失败了。
  • 然后,您必须在文件的目录中添加 rust-project.json,正如 手册 所示。此时,代码补全将正常工作,但代码检查仍然失败。它只是抱怨 无法在 / 或任何父目录中找到 Cargo.toml,因此您必须在文件的目录中添加一个 Cargo.toml,如下所示
[package]
name = "test"
version = "0.1.0"
edition = "2021"

[lib]
path= "test.rs"

[dependencies]
..
  • 然后您会发现,每次您编辑不同的 Rust 文件时,都必须将 rust-project.json 中的字段 root_moduleCargo.toml 中的字段 path 替换为您正在编辑的 Rust 文件的名字,这非常无聊且浪费时间。

  • 这个工具会帮您,您只需要 rvi your_file_name.rs

安装

发行版页面 下载

或者

cargo install rvi

配置

1. 将 rvi.toml 复制到 $HOME/.config/,您可以根据您的实际环境进行编辑。

2. 如果您使用 Youcompleteme,您必须在上面的文件中填写 ycm_extra_conf 字段,配置文件类似于 .ycm_extra_conf.py.example,您应该将其放在您的目录中,并将其重命名为 .ycm_extra_conf.py。该工具会自动将其复制到您的项目目录。

3.如果您不使用 Youcompleteme,您应该将 rust-analyzer.checkOnSave.overrideCommand 配置项转移到 rust-analyzer lsp,正如您的客户端解释的那样。以下为官方描述:

请注意,当使用 rust-project.json 时,默认禁用了对 cargo check 的调用,因此编译错误和警告将不再发送到您的 LSP 客户端。要启用这些编译错误,您需要明确指定 rust-analyzer 应运行的命令以执行检查,使用 checkOnSave.overrideCommand 配置。以下配置示例明确设置了 cargo check 作为 checkOnSave 命令。


{ "rust-analyzer.checkOnSave.overrideCommand": ["cargo", "check", "--message-format=json"] }

checkOnSave.overrideCommand 需要指定的命令输出 json 错误消息供 rust-analyzer 消费。--message-format=json 标志为 cargo check 做这件事,因此您使用的任何命令都必须以这种格式输出错误。请参阅 配置 部分,获取更多信息。

用法

rvi your_file.rs

依赖关系

~0.7–1.6MB
~32K SLoC