11 个版本 (7 个重大更新)
0.8.1 | 2020 年 4 月 20 日 |
---|---|
0.7.1 | 2019 年 8 月 29 日 |
0.7.0 | 2019 年 6 月 14 日 |
0.5.0 | 2019 年 3 月 31 日 |
0.2.0 | 2018 年 11 月 30 日 |
#412 in 命令行界面
每月 457 次下载
用于 9 个 工具包(直接使用 6 个)
1.5MB
1.5K SLoC
prettyprint
包含所有电池的语法高亮库。
⚠️ 对于新项目,您可能希望使用
bat
代替,它现在可以作为库使用。prettyprint
现已进入维护模式,这意味着它不会再看到任何重大更新,但 pull 请求仍将得到审查,依赖关系也将保持更新。不过,您可能需要考虑迁移。
快速开始
上面的输出是通过以下代码创建的
let printer = PrettyPrinter::default()
.language("rust")
.build()?;
printer.file("fixtures/fib.rs")?;
注意,prettyprint
是一个 builder 并且可以自定义。例如,如果您不喜欢网格或标题,可以禁用这些功能
let printer = PrettyPrinter::default()
.header(false)
.grid(false)
.language("ruby")
.build()?;
let example = r#"
def fib(n)
return 1 if n <= 1
fib(n-1) + fib(n-2)
end
"#;
printer.string_with_header(example, "fib.rb")?;
"什么?!它还可以打印字符串,Matthias?这太疯狂了。"
这是真的。不客气。
安装
将此添加到您的 Cargo.toml
prettyprint = "*"
但是为什么?
syntect
是一个用于高亮文本的出色软件包。
但是,当编写打印文本的命令行工具时,您可能需要一些额外的功能。
- 行号
- 更多内置颜色主题
- 自动分页
- 适当的终端处理
- 显示不可打印字符
- 文件头部
- Windows 支持
prettyprint
在一个工具包中提供了所有这些功能(多亏了 bat)。
已知限制
- 不支持
no-std
目标。我没有计划支持这些。
致谢
prettyprint
仅仅是一个 bat
的分支,一些功能被移除并打包成一个库。我之所以创建它,是因为我需要为 cargo-inspect 使用它。所有荣誉都归功于原始作者。
依赖项
约13–24MB
约346K SLoC