Files
darcula_nvim/nvim/lua/darcula/setup/500_formatter.lua
T
2026-09-24 18:14:28 +00:00

88 lines
2.9 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")
local with_exe = function(base_config_fn, exe)
return function()
local config = base_config_fn()
config.exe = exe
return config
end
end
require("formatter").setup {
logging = true,
log_level = vim.log.levels.WARN,
filetype = {
c = {
with_exe(
require("formatter.filetypes.c").clangformat,
NV_DARCULA_CLANG_FORMAT_PATH
)
},
cpp = {
with_exe(
require("formatter.filetypes.cpp").clangformat,
NV_DARCULA_CLANG_FORMAT_PATH
)
},
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}
}
}