{ 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 = "cw"; lspBufAction = "workspace_symbol"; } { key = "cr"; lspBufAction = "rename"; } ]; }; }