{ ... }: { imports = [ ./nixvim/base.nix ./nixvim/cmp.nix ]; programs.nixvim = { extraConfigLuaPost = '' local _border = "rounded" vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with ( vim.lsp.handlers.signature_help, { border = _border } ) require('lspconfig.ui.windows').default_options = { border = _border } local signs = { Error = "󰅚 ", Warn = "󰀪 ", Hint = "󰌶 ", Info = " " } for type, icon in pairs(signs) do local hl = "DiagnosticSign" .. type vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) end local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) opts = opts or {} opts.border = opts.border or border return orig_util_open_floating_preview(contents, syntax, opts, ...) end vim.diagnostic.config ( { virtual_text = { prefix = '●', } } ) vim.diagnostic.config { float = { border = _border } } vim.diagnostic.config({ virtual_text = false }) ''; diagnostics.virtual_lines.only_current_line = true; plugins = { lsp-lines.enable = true; crates-nvim.enable = true; lspsaga = { enable = false; lightbulb.enable = false; ui.border = "rounded"; }; lsp = { enable = true; servers = { rust_analyzer = { enable = true; installCargo = true; installRustc = true; }; pylsp = { enable = true; autostart = true; settings = { plugins = { black = { enabled = true; preview = true; }; jedi_completion = { enabled = true; fuzzy = true; }; pylint.enabled = true; pylsp_mypy.enabled = true; }; }; }; nixd.enable = true; html.enable = true; cssls.enable = true; bashls.enable = false; tailwindcss.enable = true; svelte.enable = true; docker_compose_language_service.enable = true; marksman.enable = true; }; onAttach = '' vim.lsp.handlers["textDocument/hover"] = vim.lsp.with ( vim.lsp.handlers.hover, { border = "rounded", } ) ''; keymaps = { silent = true; diagnostic = { "lk" = { action = "goto_prev"; desc = "Go to prev"; }; "lj" = { action = "goto_next"; desc = "Go to next"; }; }; lspBuf = { K = { action = "hover"; desc = "Hover"; }; "lr" = { action = "references"; desc = "LSP [r]eferences"; }; "ld" = { action = "definition"; desc = "LSP [d]efinitions"; }; "li" = { action = "implementation"; desc = "LSP [i]implementations"; }; "lt" = { action = "type_definition"; desc = "LSP [t]ype definitions"; }; "la" = { action = "code_action"; desc = "LSP Code [A]ctions"; }; }; }; }; }; }; }