#cli #terminal #开发工具 #rust

app dab

为 Rust 开发者日常任务设计的命令行工具

1 个不稳定版本

0.2.0 2022年6月6日
0.1.0 2022年1月25日

#16 in #开发工具

Apache-2.0

28KB
483

dab:为 Rust 开发者追求惰性

Crates.io Crates.io GitHub Workflow Status

dab 是一个命令行工具,旨在帮助 Rust 开发者在与 async 生命周期或 FFI 作斗争后,享受他们应得的惰性。目前,它只做一件非常简单的事情:创建模块。好吧,我在创建 Skytable 时,创建模块让我有些生气。愚蠢? 阅读这里

安装 🚀

只需运行

$ cargo install dab

用法

  • 基本用法示例: dab modname。这将创建一个 src/modname/mod.rs 文件,并在 "根文件" 中创建一个模块声明(如 mod modname),"根文件" 是 lib.rsmain.rs,具体取决于你的包类型
  • 高级用法示例: dab -skip -skip -skip -skip -public mymod:这将创建一个 src/mymod.rs 文件(注意不创建目录),跳过 "根文件" 中的许可协议头部(如果有的话),并将模块的可视性标记为 pub

特性 ✨

  • 在二进制/库包中创建模块
  • 选择模块是公开的还是私有的(默认为私有)
  • 在添加模块时忽略文件顶部的注释(例如许可协议头部)
  • 使用 syn 重新编写
  • 支持深层嵌套模块的完整路径
  • 如果不存在,则启用父目录的创建
  • 自动为新创建的模块添加文件头部注释(例如许可协议头部)
  • 提供 dab.toml 配置文件,该文件将用于确定设置
  • 在将 mod 条目添加到根文件时运行 rustfmt
  • 支持 cfg 属性
  • 支持工作区
    • 支持通过包名创建模块(例如 skyd::protocol
    • 检测工作区根目录并在任何其他目录中操作(类似于 cargo 所做的)
    • 支持在工作区中创建包
  • 打开代码编辑器到新创建的模块
  • 有想法吗? 创建一个问题!

背景

可以称之为我个人的痒点,在大型 Rust 项目中,我在创建模块时(尤其是在工作区中)非常烦恼。通常的顺序是

  1. mkdir<package>/src/path/to/module
  2. touch <package>/src/path/to/module/mod.rs
  3. 编辑 main.rslib.rs 以添加包名
  4. 打开代码编辑器并添加代码

我想将其简化为一步操作。因此,有了这个工具。

许可证

此工具根据 Apache-2.0 许可证 许可。

依赖项

~0.6–1.2MB
~28K SLoC