added toml formatter, split each language into lsp and format

This commit is contained in:
foxora 2026-03-05 05:50:50 +00:00
parent 56d2fe2922
commit 67c8d10658
4 changed files with 184 additions and 125 deletions

View file

@ -1,92 +1,110 @@
local servers = {}
servers.lua_ls = {
settings = {
Lua = {
formatters = {
ignoreComments = false,
if nixCats("lang.lua.lsp") then
servers.lua_ls = {
settings = {
Lua = {
formatters = {
ignoreComments = false,
},
signatureHelp = { enable = true },
diagnostics = {
globals = { "nixCats", "vim" },
-- disable = { 'missing-fields' },
},
workspace = {
-- make the server aware of the neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
},
},
telemetry = { enabled = false },
},
}
end
if nixCats("lang.nix.lsp") then
servers.nil_ls = {
settings = {},
}
end
if nixCats("lang.rust.lsp") then
local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD")
servers.rust_analyzer = {
cmd = { rust_analyzer_cmd },
settings = {
server = {
-- For debugging rust-analyzer, to see log location do :LspInfo in neovim
-- extraEnv = { {["RA_LOG"]="project_model=debug"} },
},
cargo = {
allFeatures = false,
allTargets = false,
buildScripts = { enable = true },
target = "x86_64-unknown-linux-gnu",
},
signatureHelp = { enable = true },
diagnostics = {
globals = { "nixCats", "vim" },
-- disable = { 'missing-fields' },
},
workspace = {
-- make the server aware of the neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
enable = true,
},
},
telemetry = { enabled = false },
},
}
}
end
servers.nil_ls = {
settings = {},
}
if nixCats("lang.zig.lsp") then
servers.zls = {
settings = {},
}
end
local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD")
servers.rust_analyzer = {
cmd = { rust_analyzer_cmd },
settings = {
server = {
-- For debugging rust-analyzer, to see log location do :LspInfo in neovim
-- extraEnv = { {["RA_LOG"]="project_model=debug"} },
},
cargo = {
allFeatures = false,
allTargets = false,
buildScripts = { enable = true },
target = "x86_64-unknown-linux-gnu",
},
diagnostics = {
enable = true,
},
},
}
if nixCats("lang.elixir.lsp") then
local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD")
servers.elixirls = {
cmd = { elixir_ls_cmd },
settings = {},
}
end
servers.zls = {
settings = {},
}
if nixCats("lang.gleam.lsp") then
servers.gleam = {
settings = {},
}
end
local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD")
servers.elixirls = {
cmd = { elixir_ls_cmd },
settings = {},
}
if nixCats("lang.haskell.lsp") then
servers.hls = {
settings = {},
}
end
servers.gleam = {
settings = {},
}
servers.hls = {
settings = {},
}
local java_home = os.getenv("JAVA_HOME")
servers.jdtls = {
settings = {
java = {
contentProvider = { preferred = "fernflower" },
configuration = {
runtimes = {
{
name = "OpenJDK 17",
path = os.getenv("OPENJDK_17"),
},
{
name = "OpenJDK 21",
path = os.getenv("OPENJDK_21"),
if nixCats("lang.java.lsp") then
local java_home = os.getenv("JAVA_HOME")
servers.jdtls = {
settings = {
java = {
contentProvider = { preferred = "fernflower" },
configuration = {
runtimes = {
{
name = "OpenJDK 17",
path = os.getenv("OPENJDK_17"),
},
{
name = "OpenJDK 21",
path = os.getenv("OPENJDK_21"),
},
},
},
},
},
},
}
}
end
servers.protols = {
settings = {},
}
if nixCats("lang.protobuf.lsp") then
servers.protols = {
settings = {},
}
end
-- Taken from nixCats example:
-- If you were to comment out this autocommand

View file

@ -56,11 +56,12 @@ return {
conform.setup({
formatters_by_ft = {
lua = nixCats("lang.lua") and { "stylua" } or nil,
nix = nixCats("lang.nix") and { "alejandra" } or nil,
rust = nixCats("lang.rust") and { "rustfmt", lsp_format = "fallback" } or nil,
haskell = nixCats("lang.haskell") and { "ormolu" } or nil,
proto = nixCats("lang.protobuf") and { "buf" } or nil,
lua = nixCats("lang.lua.format") and { "stylua" } or nil,
nix = nixCats("lang.nix.format") and { "alejandra" } or nil,
rust = nixCats("lang.rust.format") and { "rustfmt", lsp_format = "fallback" } or nil,
haskell = nixCats("lang.haskell.format") and { "ormolu" } or nil,
proto = nixCats("lang.protobuf.format") and { "buf" } or nil,
toml = nixCats("lang.toml.format") and { "taplo" } or nil,
},
format_on_save = {
timeout_ms = 500,

View file

@ -1,12 +1,12 @@
return {
{
"vim-fugitive",
for_cat = "git",
enabled = nixCats("git") or false,
cmd = { "Git", "Gvdiffsplit" },
},
{
"resolve-nvim",
for_cat = "git",
enabled = nixCats("git") or false,
event = { "BufReadPre", "BufNewFile" },
after = function(plugin)
require("resolve").setup({