{ config, lib, ... }: let inherit (lib.nix2lua) call; in { fn.lspconfig-eslint-on-attach = { args = [ "client" "bufnr" ]; content = { bufnr, ... }: { vim.augroup.eslint-fix = { event = "BufWritePre"; buffer = bufnr; command = "silent! EslintFixAll"; }; }; }; plugins.language-server.lspconfig.serverSettings = { nil_ls = { }; rust_analyzer = { settings.rust-analyzer = { "server.path" = "rust-analyzer"; "updates.prompt" = false; "updates.checkOnStartup" = false; "checkOnSave.enable" = true; "checkOnSave.command" = "clippy"; "cargo.autoreload" = true; }; }; tsserver = rec { filetypes = [ "javascript" "javascriptreact" "typescript" "typescriptreact" "vue" ]; init_options.plugins = [ { name = "@vue/typescript-plugin"; location = "./node_modules/@vue/typescript-plugin"; languages = filetypes; } ]; }; eslint = { on_attach = config.fn.lspconfig-eslint-on-attach.lambda; }; volar = { init_options = { typescript.tsdk = "./node_modules/typescript/lib"; }; }; ltex = { language = "en-US"; languageToolHttpServerUri = "http://localhost:8081"; }; pylsp = { }; denols = { root_dir = call "${config.plugin.nvim-lspconfig.varName}.util.root_pattern" [ "deno.json" "deno.jsonc" ]; }; jdtls = { cmd = [ "jdtls" ]; }; jsonls = { }; }; }