9个不稳定版本
0.5.1 | 2022年3月4日 |
---|---|
0.5.0 | 2021年2月20日 |
0.4.2 | 2020年7月26日 |
0.4.1 | 2020年6月15日 |
0.1.1 | 2019年5月20日 |
在Cargo插件中排名第273
每月下载量259次
2MB
663 行
包含(ZIP文件,580KB) 扩展名/cargo-play-0.0.1.vsix
cargo-play
cargo-play
是一个工具,可以帮助您在没有手动设置Cargo项目的情况下运行Rust代码文件。
查看实际效果
安装
cargo install cargo-play
用法
只需运行cargo play <files>
即可。您可以在文件开头使用前缀//
指定外部依赖项。它接受与Cargo.toml
相同的TOML语法。
示例
$ cat serde_json.rs
//# serde_json = "*"
use serde_json::{Result, Value};
fn main() -> Result<()> {
// Some JSON input data as a &str. Maybe this comes from the user.
let data = r#"
{
"name": "John Doe",
"age": 43,
"phones": [
"+44 1234567",
"+44 2345678"
]
}"#;
// Parse the string of data into serde_json::Value.
let v: Value = serde_json::from_str(data)?;
// Access parts of the data by indexing with square brackets.
println!("Please call {} at the number {}", v["name"], v["phones"][0]);
Ok(())
}
$ cargo play serde_json.rs
Updating crates.io index
Compiling serde v1.0.91
Compiling ryu v0.2.8
Compiling itoa v0.4.4
Compiling serde_json v1.0.39
Compiling gvzcg8yviqmd_euq3xti4-zbkrs v0.1.0 (/var/folders/nq/608n9lcx02n_mzx33_3z5wyw0000gn/T/cargo-play.GVzCg8yviQmd_EUq3Xti4-ZbKRs)
Finished dev [unoptimized + debuginfo] target(s) in 10.23s
Running `/var/folders/nq/608n9lcx02n_mzx33_3z5wyw0000gn/T/cargo-play.GVzCg8yviQmd_EUq3Xti4-ZbKRs/target/debug/gvzcg8yviqmd_euq3xti4-zbkrs`
Please call "John Doe" at the number "+44 1234567"
它还支持同时运行多个文件
$ cat tests/multi/entry.rs
mod hello;
fn main() {
println!("Hello {}", hello::world());
}
$ cat tests/multi/hello.rs
pub fn world() -> String {
"World".into()
}
$ cargo play tests/multi/*
Compiling qvsjdw04fxh5cgpdkdvg6ite_ak v0.1.0 (/var/folders/nq/608n9lcx02n_mzx33_3z5wyw0000gn/T/cargo-play.QVSJDw04FxH5CGpDkDvg6itE_ak)
Finished dev [unoptimized + debuginfo] target(s) in 0.30s
Running `/var/folders/nq/608n9lcx02n_mzx33_3z5wyw0000gn/T/cargo-play.QVSJDw04FxH5CGpDkDvg6itE_ak/target/debug/qvsjdw04fxh5cgpdkdvg6ite_ak`
Hello World
子目录下的文件将被复制并放置在第一个文件的相关位置。试试
cargo play tests/subdirs/**/*.rs
待办事项
- 编辑器插件
- Vim
- VS Code
- 工具链支持
- 版本支持
编辑器支持
Vim
将此行添加到您的.vimrc
或init.vim
command! CargoPlay !cargo play %
当您的代码文件打开时,运行:CargoPlay
将允许您在自动生成的Cargo项目中测试当前文件。
VSCode
安装VSCode扩展
或者
打开命令面板并选择配置任务
- 这将创建新的tasks.json或打开现有的tasks.json
添加以下任务
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "CargoPlay",
"command": "cargo",
"args": [
"play",
"${file}",
],
"problemMatcher": [
"$rustc"
]
}
]
}
现在打开命令面板,选择运行任务,然后运行新的CargoPlay任务
Micro
将其添加到您的micro ~/.config/micro/init.lua
local config = import("micro/config")
local shell = import("micro/shell")
function init()
config.TryBindKey("Alt-b", "lua:initlua.play", true)
config.MakeCommand("cargoplay", play, config.NoComplete)
end
function play(bp)
bp:Save()
if bp.Buf:FileType() == "rust" then
shell.RunInteractiveShell("cargo play " .. bp.Buf.Path, true, false)
end
end
然后您可以按下 Alt + b 来 构建 当前文件,使用 cargo play
,或者您可以使用 Ctrl + E 并在命令行中输入 cargoplay
致谢
本项目灵感来源于 play.rust-lang.org 和 RustPlayground。
依赖项
~2.3–3MB
~55K SLoC