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 命令行界面

Download history 98/week @ 2024-03-11 110/week @ 2024-03-18 39/week @ 2024-03-25 138/week @ 2024-04-01 27/week @ 2024-04-08 32/week @ 2024-04-15 64/week @ 2024-04-22 30/week @ 2024-04-29 33/week @ 2024-05-06 35/week @ 2024-05-13 132/week @ 2024-05-20 95/week @ 2024-05-27 53/week @ 2024-06-03 292/week @ 2024-06-10 41/week @ 2024-06-17 56/week @ 2024-06-24

每月 457 次下载
用于 9 工具包(直接使用 6 个)

Apache-2.0/MITLGPL-3.0-or-later

1.5MB
1.5K SLoC

prettyprint

Documentation CI

包含所有电池的语法高亮库。

⚠️ 对于新项目,您可能希望使用 bat 代替,它现在可以作为库使用。 prettyprint 现已进入维护模式,这意味着它不会再看到任何重大更新,但 pull 请求仍将得到审查,依赖关系也将保持更新。不过,您可能需要考虑迁移。

快速开始

Screenshot

上面的输出是通过以下代码创建的

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