added toml formatter, split each language into lsp and format
This commit is contained in:
parent
56d2fe2922
commit
67c8d10658
4 changed files with 184 additions and 125 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -55,43 +55,51 @@ in {
|
|||
tree-sitter
|
||||
];
|
||||
lang = {
|
||||
lua = [
|
||||
lua-language-server
|
||||
stylua
|
||||
];
|
||||
nix = [
|
||||
nil
|
||||
nix-doc # TODO: i forgot what this is for
|
||||
alejandra
|
||||
];
|
||||
rust = [
|
||||
cargo
|
||||
mpkgs.rust-analyzer
|
||||
lua = {
|
||||
lsp = [lua-language-server];
|
||||
format = [stylua];
|
||||
};
|
||||
nix = {
|
||||
lsp = [nil];
|
||||
format = [alejandra];
|
||||
docs = [nix-doc]; # TODO: i forgot how to integrate this into neovim
|
||||
};
|
||||
rust = {
|
||||
lsp = [cargo mpkgs.rust-analyzer];
|
||||
# nightly rustfmt has nicer features :3
|
||||
inputs.fenix.packages.${system}.complete.rustfmt
|
||||
];
|
||||
zig = [
|
||||
zls
|
||||
];
|
||||
elixir = [
|
||||
elixir-ls
|
||||
];
|
||||
gleam = [
|
||||
gleam
|
||||
];
|
||||
haskell = [
|
||||
haskell-language-server
|
||||
ormolu
|
||||
];
|
||||
java = [
|
||||
jdt-language-server
|
||||
javaPackages.compiler.openjdk17
|
||||
javaPackages.compiler.openjdk21
|
||||
];
|
||||
protobuf = [
|
||||
protols
|
||||
buf
|
||||
];
|
||||
format = [inputs.fenix.packages.${system}.complete.rustfmt];
|
||||
};
|
||||
zig = {
|
||||
lsp = [zls];
|
||||
# TODO: needs formatter field
|
||||
};
|
||||
elixir = {
|
||||
lsp = [elixir-ls];
|
||||
# TODO: needs formatter field
|
||||
};
|
||||
gleam = {
|
||||
lsp = [gleam];
|
||||
# TODO: needs formatter field
|
||||
};
|
||||
haskell = {
|
||||
lsp = [haskell-language-server];
|
||||
format = [ormolu];
|
||||
};
|
||||
java = {
|
||||
lsp = [
|
||||
jdt-language-server
|
||||
javaPackages.compiler.openjdk17
|
||||
javaPackages.compiler.openjdk21
|
||||
];
|
||||
# TODO: needs formatter field
|
||||
};
|
||||
protobuf = {
|
||||
lsp = [protols];
|
||||
format = [buf];
|
||||
};
|
||||
toml = {
|
||||
format = [taplo];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -239,15 +247,47 @@ in {
|
|||
git = false; # not really setup yet
|
||||
|
||||
lang = {
|
||||
lua = true;
|
||||
nix = true;
|
||||
rust = true;
|
||||
zig = true;
|
||||
elixir = true;
|
||||
gleam = true;
|
||||
haskell = true;
|
||||
java = true;
|
||||
protobuf = true;
|
||||
lua = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
nix = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
docs = true;
|
||||
};
|
||||
rust = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
zig = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
elixir = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
gleam = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
haskell = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
java = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
protobuf = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
toml = {
|
||||
lsp = true;
|
||||
format = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue