nixvim/config/plugins/lsp/lsp.nix
Lander Van den Bulcke 14299bfb6d
feat: enable inlay hints
Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-10-01 14:47:22 +02:00

149 lines
3.3 KiB
Nix

{ pkgs, ... }:
let
puppet-editor-services = pkgs.callPackage ../../../pkgs/puppet-editor-services/package.nix { };
in
{
plugins = {
lspconfig = {
enable = true;
};
lsp-lines = {
enable = true;
};
lsp-format = {
enable = true;
};
helm = {
enable = true;
};
lspsaga = {
enable = true;
};
};
lsp = {
inlayHints = {
enable = true;
};
servers = {
html = {
enable = true;
};
lua_ls = {
enable = true;
};
nil_ls = {
enable = true;
};
ts_ls = {
enable = true;
};
marksman = {
enable = true;
};
pyright = {
enable = true;
};
gopls = {
enable = true;
};
terraformls = {
enable = true;
settings = {
terraform.path = "${pkgs.opentofu}/bin/tofu";
};
};
jsonls = {
enable = true;
};
hls = {
enable = true;
};
rubocop = {
enable = true;
};
ruby_lsp = {
enable = true;
};
texlab = {
enable = true;
};
puppet = {
enable = true;
package = puppet-editor-services;
settings.cmd = [
"${puppet-editor-services}/bin/puppet-languageserver"
"--stdio"
];
};
helm_ls = {
enable = true;
settings = {
"helm_ls" = {
yamlls = {
path = "${pkgs.yaml-language-server}/bin/yaml-language-server";
};
};
};
};
yamlls = {
enable = true;
settings = {
yaml = {
format = {
singleQuote = true;
};
schemas = {
kubernetes = "'*.yaml";
"http://json.schemastore.org/github-workflow" = ".github/workflows/*";
"http://json.schemastore.org/github-action" = ".github/action.{yml,yaml}";
"http://json.schemastore.org/ansible-stable-2.9" = "roles/tasks/*.{yml,yaml}";
"http://json.schemastore.org/kustomization" = "kustomization.{yml,yaml}";
"http://json.schemastore.org/ansible-playbook" = "*play*.{yml,yaml}";
"http://json.schemastore.org/chart" = "Chart.{yml,yaml}";
"https://json.schemastore.org/dependabot-v2" = ".github/dependabot.{yml,yaml}";
"https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json" =
"*docker-compose*.{yml,yaml}";
"https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json" =
"*flow*.{yml,yaml}";
};
};
};
};
};
keymaps = [
{
key = "gd";
lspBufAction = "definition";
}
{
key = "gr";
lspBufAction = "references";
}
{
key = "gD";
lspBufAction = "declaration";
}
{
key = "gI";
lspBufAction = "implementation";
}
{
key = "gT";
lspBufAction = "type_definition";
}
{
key = "K";
lspBufAction = "hover";
}
{
key = "<leader>cw";
lspBufAction = "workspace_symbol";
}
{
key = "<leader>cr";
lspBufAction = "rename";
}
];
};
}