6个版本
0.1.5 | 2023年7月18日 |
---|---|
0.1.4 | 2023年2月5日 |
0.1.3 | 2023年1月28日 |
#739 in 解析器实现
12KB
183 行
通用代码格式化工具
一个可以格式化任何代码的工具。
安装
使用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