formatter.nvim
项目核心内容总结:
Formatter.nvim 是一个为 Neovim 设计的代码格式化工具,支持异步执行、缓冲区锁定、条件格式化等功能。用户可通过 Lua 配置格式化规则,支持多种文件类型(如 Lua、JavaScript 等)的默认格式化方案,并允许自定义配置。
主要特性:
- 异步执行格式化操作,提升效率
- 缓冲区锁定机制防止格式化时内容被修改
- 支持按文件类型(如 Lua)或通用规则(
*)配置格式化器 - 提供“格式化前/后”钩子(Hook)执行自定义逻辑
- 支持条件格式化(如根据文件名动态选择规则)
使用方法:
- 安装:支持 Packer、Vim-Plug 等主流插件管理器安装。
- 配置:通过 Lua 脚本定义格式化规则,例如:
require("formatter").setup {filetype = {lua = { require("formatter.filetypes.lua").stylua },["*"] = { require("formatter.filetypes.any").remove_trailing_whitespace }}}
- 快捷键映射:绑定
Format(格式化当前内容)和FormatWrite(保存时自动格式化)命令。 - 自动触发:通过
BufWritePost自动触发保存后格式化。
注意事项:
- 默认无预设格式化器,需手动启用或自定义配置。
- 支持通过
transform函数对格式化结果进行二次处理(如 Ruby 的 Rubocop 配置示例)。