diff options
feat: finally working LSP
Diffstat (limited to '')
| -rw-r--r-- | flake.nix | 6 | ||||
| -rw-r--r-- | lsp/lua-language-server.lua | 18 | ||||
| -rw-r--r-- | lua/config/init.lua | 3 | ||||
| -rw-r--r-- | lua/config/lsp.lua | 1 | ||||
| -rw-r--r-- | lua/config/plugins/completion.lua | 41 | ||||
| -rw-r--r-- | lua/config/plugins/init.lua | 1 | ||||
| -rw-r--r-- | lua/config/plugins/lsp.lua | 1 | 
7 files changed, 65 insertions, 6 deletions
| @@ -101,8 +101,9 @@        # at RUN TIME for plugins. Will be available to PATH within neovim terminal        # this includes LSPs        lspsAndRuntimeDeps = { -        general = with pkgs; [ -        ]; +        general = with pkgs; { +          lua = [ lua-language-server ]; +        };        };        # This is for plugins that will load at startup without using packadd: @@ -136,7 +137,6 @@            completion = [ blink-cmp ];            # NOTE: On NeoVim 0.11+ nvim-lspconfig is not required due to native API -          # lsp = [ nvim-lspconfig mason-nvim mason-lspconfig-nvim ];            lsp = [];            mini = [ mini-ai mini-align mini-move mini-pairs mini-surround ]; diff --git a/lsp/lua-language-server.lua b/lsp/lua-language-server.lua new file mode 100644 index 0000000..3f5f308 --- /dev/null +++ b/lsp/lua-language-server.lua @@ -0,0 +1,18 @@ +return { +  cmd = { "lua-language-server" }, +  root_markers = { ".luarc.json" }, +  filetypes = { "lua" }, + +  settings = { +    Lua = { +      runtime = { version = "LuaJIT" }, +      formatters = { ignoreComments = true }, +      signatureHelp = { enabled = true }, +      diagnostics = { +        globals = { "nixCats", "vim" }, +        disable = { "missing-fields" }, +      }, +      telemetry = { enabled = false }, +    }, +  }, +} diff --git a/lua/config/init.lua b/lua/config/init.lua index 0c5bcb6..3517725 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -3,4 +3,7 @@ require("config.options")  -- require("lze").register_handlers(require("nixCatsUtils.lzUtils").for_cat)  require("lze").register_handlers(require("lzextras").lsp) +vim.lsp.set_log_level("debug") +  require("config.plugins") +require("config.lsp") diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua new file mode 100644 index 0000000..c8444ef --- /dev/null +++ b/lua/config/lsp.lua @@ -0,0 +1 @@ +vim.lsp.enable("lua-language-server") diff --git a/lua/config/plugins/completion.lua b/lua/config/plugins/completion.lua index 7fd31c4..5b60993 100644 --- a/lua/config/plugins/completion.lua +++ b/lua/config/plugins/completion.lua @@ -3,7 +3,46 @@ return {      "blink.cmp",      event = "DeferredUIEnter",      after = function(_) -      require("blink.cmp").setup({}) +      require("blink.cmp").setup({ +        appearance = { +          use_nvim_cmp_as_default = false, +          nerd_font_variant = "mono", +        }, + +        completion = { +          documentation = { +            auto_show = true, +            auto_show_delay_ms = 500, +          }, + +          ghost_text = { enabled = true }, +        }, + +        sources = { default = { "lsp", "path", "snippets", "buffer" } }, + +        keymap = { +          ["<S-space>"] = { "show", "show_documentation", "hide_documentation" }, +          ["<C-e>"] = { "hide", "fallback" }, +          ["<CR>"] = { "accept", "fallback" }, + +          ["<Tab>"] = { "snippet_forward", "fallback" }, +          ["<S-Tab>"] = { "snippet_backward", "fallback" }, + +          ["<Up>"] = { "select_prev", "fallback" }, +          ["<Down>"] = { "select_next", "fallback" }, +          ["<C-p>"] = { "select_prev", "fallback_to_mappings" }, +          ["<C-n>"] = { "select_next", "fallback_to_mappings" }, + +          ["<C-b>"] = { "scroll_documentation_up", "fallback" }, +          ["<C-f>"] = { "scroll_documentation_down", "fallback" }, +        }, +      }) + +      -- NOTE: this is broken due to something +      -- local client_capabilities = vim.lsp.protocol.make_client_capabilities() +      -- local blink_capabilities = require("blink.cmp").get_lsp_capabilities() +      -- local capabilities = vim.tbl_deep_extend('force', client_capabilities, blink_capabilities) +      -- vim.lsp.config("*", { capabilities = capabilities })      end,    }  } diff --git a/lua/config/plugins/init.lua b/lua/config/plugins/init.lua index a93419f..a1492e7 100644 --- a/lua/config/plugins/init.lua +++ b/lua/config/plugins/init.lua @@ -29,6 +29,5 @@ require("lze").load({    { import = "config.plugins.treesitter" },    { import = "config.plugins.mini" },    { import = "config.plugins.completion" }, -  { import = "config.plugins.lsp" },    { import = "config.plugins.extra" },  }) diff --git a/lua/config/plugins/lsp.lua b/lua/config/plugins/lsp.lua deleted file mode 100644 index a564707..0000000 --- a/lua/config/plugins/lsp.lua +++ /dev/null @@ -1 +0,0 @@ -return {} | 
