6个版本

0.1.5 2023年7月18日
0.1.4 2023年2月5日
0.1.3 2023年1月28日

#739 in 解析器实现

MIT 协议

12KB
183

通用代码格式化工具

Latest Version

一个可以格式化任何代码的工具。

安装

使用cargo

cargo install ucf

Arch linux

ucf 在aur 这里 可用。使用aur助手如 yay,可以安装

yay -S ucf

用法

ucf <file_name>

注意: ucf 会原地修改文件,目前没有将输出输出到stdout的选项。

ucf --help

打印帮助信息。

内部工作原理

ucf 是一个简单的程序。它会确定文件扩展名,并调用预定的代码格式化器对文件进行修改,具体格式化器及其参数如表所示。 被调用的格式化器应在系统的 PATH 中存在

当前使用的格式化器

调用的格式化器 文件扩展名
black .py
clang-format .c, .cpp, .cc, .cs, .cxx, .cp, .cs, .h, .hpp, .hxx .java, .json, .m (objective c, not matlab)
cmake-format .cmake
gofmt .go
ocamlformat .ocaml
prettier .css, .gfm, .graphql, .gql, .html, .js, .jsx, .less, .md, .mdx, .prettierrc, .sass, .scss, .svelte, .ts, .vue, .yaml
rustfmt .rs
shfmt .sh, .ebuild
stylua .lua
stylish-haskell .hs
taplo .toml
xmllint .xml
zig fmt .zig

编辑器集成

vim / neovim

保存文件后,将 ucf 作为shell命令运行在文件上。

:!ucf %

这可以通过许多方式自动化,例如,要将 <F5> 绑定到保存和格式化文件,请在 init.lua 中添加以下行:

vim.keymap.set('n', '<F5>', ':w | :!ucf % <CR><CR>', {noremap=true, silent=true})

配置文件

要在 $XDG_CONFIG_HOME/ucf/config.toml 文件中的 ignored_extensions 数组中忽略某些文件扩展名,请添加没有点的扩展名。如果提供了自定义格式化器,ucf 会覆盖配置文件来格式化代码。

待办事项

  • 添加读取文件夹并运行格式化器的选项
  • 添加格式化 SQL 的选项
  • 显示适当的错误消息(错误)

面向打包者

如果您想要为任何发行版打包 ucf,请确保将上表提供的二进制文件包添加为可选依赖项。

贡献

所有补丁都欢迎。克隆仓库,进行您的更改,并提交一个拉取请求。

依赖项

~1.4–2.5MB
~45K SLoC