Files
darcula_nvim/nvim/lua/darcula/setup/500_formatter.lua
2026-03-26 16:44:10 -05:00

70 lines
2.6 KiB
Lua

-- The MIT License (MIT)
--
-- Copyright © 2026 Scott E. Graves <scott.e.graves@protonmail.com>
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-- and associated documentation files (the “Software”), to deal in the Software without restriction,
-- including without limitation the rights to use, copy, modify, merge, publish, distribute,
-- sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in all copies or
-- substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-- BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
local formatter_util = require("formatter.util")
require("formatter").setup {
logging = true,
log_level = vim.log.levels.WARN,
filetype = {
c = {require("formatter.filetypes.c").clangformat},
cpp = {require("formatter.filetypes.cpp").clangformat},
dart = {require("formatter.filetypes.dart").dartformat},
go = {require("formatter.filetypes.go").gofumpt},
java = {
function()
return {
exe = "google-java-format",
args = {
formatter_util.escape_path(
formatter_util.get_current_buffer_file_path()
),
"--replace"
},
stdin = true
}
end
},
javascript = {require("formatter.filetypes.javascript").prettier},
javascriptreact = {require("formatter.filetypes.javascriptreact").prettier},
json = {require("formatter.filetypes.json").prettier},
lua = {
require("formatter.filetypes.lua").luafmt,
function()
return {
exe = "luafmt",
args = {
"--stdin",
"-l",
"80",
"-i",
"2"
},
stdin = true
}
end
},
python = {require("formatter.filetypes.python").yapf},
sh = {require("formatter.filetypes.sh").shfmt},
typescript = {require("formatter.filetypes.typescript").prettier},
typescriptreact = {require("formatter.filetypes.typescriptreact").prettier},
xml = {require("formatter.filetypes.xml").tidy}
}
}