2 个版本

0.1.1 2024年4月14日
0.1.0 2024年1月9日

#184 in 值格式化

Download history 1/week @ 2024-05-26

86 每月下载次数
templrfmt 中使用

Apache-2.0

225KB
6K SLoC

templrfmt

Latest version Documentation

用于 templr 模板库的格式化器。

安装

cargo install templrfmt

用法

Usage: templrfmt [OPTIONS] [INPUT_PATTERNS]...

Arguments:
  [INPUT_PATTERNS]...  A space separated list of file, directory or glob

Options:
  -s, --stdin    Format stdin and write to stdout
  -r, --rustfmt  Format with rustfmt
  -q, --quiet
  -h, --help     Print help
  -V, --version  Print version

与 Rust Analyzer 一起使用

您可以为 rust-analyzer.rustfmt.overrideCommand 设置指定。

  "rust-analyzer.rustfmt.overrideCommand": ["templrfmt", "--stdin", "--rustfmt"]

美化打印算法

美化打印器基于 Philip Karlton 的 Mesa 美化打印器,如 Derek C. Oppen,"美化打印" (1979),斯坦福计算机科学系 STAN-CS-79-770 的附录中所述。此算法的实现取自 prettyplease,它改编自 rustc_ast_pretty

该算法从长度为 n 的输入流和一个具有边缘宽度 m 的输出设备中获取信息,算法需要时间 O(n) 和空间 O(m)。算法用两个并行过程来描述;第一个扫描输入流以确定打印逻辑令牌块所需的空间;第二个使用这些信息来决定文本行的换行位置;两个过程通过大小为 o(m) 的缓冲区进行通信。算法不等待整个流输入完毕,而是在收到一行输入后立即开始打印。

依赖项

~2.5–4MB
~73K SLoC