summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Mora Unie Youer <[email protected]>2025-03-06 20:54:40 +0300
committerLibravatar Mora Unie Youer <[email protected]>2025-03-06 20:54:40 +0300
commit1fa7dd0709e3372dfa9d547a23ea441fdaf32630 (patch)
treeb9381078e962961beb57a2be3b629ca4d377f631
parentfeat: add `notify` extension to `telescope` (diff)
downloadneovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.tar.gz
neovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.tar.bz2
neovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.tar.lz
neovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.tar.xz
neovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.tar.zst
neovim-configuration-1fa7dd0709e3372dfa9d547a23ea441fdaf32630.zip
feat: finally working LSP
Diffstat (limited to '')
-rw-r--r--flake.nix6
-rw-r--r--lsp/lua-language-server.lua18
-rw-r--r--lua/config/init.lua3
-rw-r--r--lua/config/lsp.lua1
-rw-r--r--lua/config/plugins/completion.lua41
-rw-r--r--lua/config/plugins/init.lua1
-rw-r--r--lua/config/plugins/lsp.lua1
7 files changed, 65 insertions, 6 deletions
diff --git a/flake.nix b/flake.nix
index 79094c6..9d55717 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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 {}