6个版本
0.3.0 | 2023年2月1日 |
---|---|
0.2.2 | 2023年1月19日 |
0.1.1 | 2023年1月16日 |
7 in #built-in
30KB
614 代码行(不含注释)
Zsh Module —
这是一个高级crate,允许您定义自己的zsh模块。它目前处于早期阶段,但可以用于定义命令。
未来,将添加大多数zsh模块功能。如果您想添加更多功能,请随意发送PR :)
特性
- 定义自定义内建命令
- 定义和查询使用的标志
- 调用
zsh
- 查询环境变量
- 作为解决方案:可以使用
std::os
API。
- 作为解决方案:可以使用
- 使用zsh当前的
stdin
文件描述符。- 您可以使用
std::io::stdin
,但可能会在某些情况下损坏。
- 您可以使用
- 定义自定义内建数学函数
- 定义自定义全局变量
- 更多功能将陆续推出!
入门指南
请参阅我们的在线文档以获取快速入门指南。
示例模块
创建模块非常简单,以下是我们示例模块greeter
的摘录
use zsh_module::{Builtin, MaybeError, Module, ModuleBuilder, Opts};
// Notice how this module gets installed as `rgreeter`
zsh_module::export_module!(rgreeter, setup);
struct Greeter;
impl Greeter {
fn greet_cmd(&mut self, _name: &str, _args: &[&str], _opts: Opts) -> MaybeError {
println!("Hello, world!");
Ok(())
}
}
fn setup() -> Result<Module, Box<dyn std::error::Error>> {
let module = ModuleBuilder::new(Greeter)
.builtin(Greeter::greet_cmd, Builtin::new("greet"))
.build();
Ok(module)
}
依赖项
~0.5–8MB
~49K SLoC