From 8a151a6430435998c8c16d9dba9dc27b11f0f1d6 Mon Sep 17 00:00:00 2001 From: sudacode Date: Sun, 13 Apr 2025 00:30:16 -0700 Subject: [PATCH] update lsp config to use vim.lsp --- lazy-lock.json | 23 +++++++++-------- lua/core/options.lua | 6 +++-- lua/plugins/lspconfig.lua | 50 ++++++++++++++++++++----------------- lua/plugins/noice.lua | 33 +++++++++++++++++++++++++ lua/plugins/nui.lua | 1 + lua/plugins/odis.lua | 52 --------------------------------------- 6 files changed, 77 insertions(+), 88 deletions(-) create mode 100644 lua/plugins/nui.lua delete mode 100644 lua/plugins/odis.lua diff --git a/lazy-lock.json b/lazy-lock.json index 629f069..2aa24ac 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -9,16 +9,16 @@ "cmp-nvim-lsp-document-symbol": { "branch": "main", "commit": "f94f7ba948e32cd302caba1c2ca3f7c697fb4fcf" }, "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "codecompanion.nvim": { "branch": "main", "commit": "35b11dc4b292519a5c09fb2c0c0e8a8832e9e821" }, + "codecompanion.nvim": { "branch": "main", "commit": "9654cb31f10c9eda3e777d03d32b29df606ab0fe" }, "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, "copilot-cmp": { "branch": "master", "commit": "15fc12af3d0109fa76b60b5cffa1373697e261d1" }, "copilot-lualine": { "branch": "main", "commit": "6bc29ba1fcf8f0f9ba1f0eacec2f178d9be49333" }, - "copilot.lua": { "branch": "master", "commit": "2378a40e9cecbf3720b6f4f3d5d6b6d8994bd321" }, + "copilot.lua": { "branch": "master", "commit": "c62a2a7616a9789a7676b6b7a8d9263b1082cdc8" }, "dashboard-nvim": { "branch": "master", "commit": "000448d837f6e7a47f8f342f29526c4d7e49e9ce" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, - "gitsigns.nvim": { "branch": "main", "commit": "17ab794b6fce6fce768430ebc925347e349e1d60" }, + "gitsigns.nvim": { "branch": "main", "commit": "fcfa7a989cd6fed10abf02d9880dc76d7a38167d" }, "goto-preview": { "branch": "main", "commit": "d1faf6ea992b5bcaaaf2c682e1aba3131a01143e" }, "image.nvim": { "branch": "master", "commit": "2e2d28b7734b5efdfc1219f4da8a46c761587bc2" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, @@ -26,30 +26,29 @@ "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "lsp_lines.nvim": { "branch": "main", "commit": "a92c755f182b89ea91bd8a6a2227208026f27b4d" }, "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, - "lualine.nvim": { "branch": "master", "commit": "0ea56f91b7f51a37b749c050a5e5dfdd56b302b3" }, + "lualine.nvim": { "branch": "master", "commit": "86fe39534b7da729a1ac56c0466e76f2c663dc42" }, "mini.diff": { "branch": "main", "commit": "7e268d0241255abaa07b8aa0ddff028f7315fe21" }, - "mini.nvim": { "branch": "main", "commit": "82c895e58d893bbbde8300277d6ceee813b15f63" }, + "mini.nvim": { "branch": "main", "commit": "b418d585d99bd1c1a4b04dc8b2c585471665173a" }, "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, "none-ls.nvim": { "branch": "main", "commit": "8d99472fcccffd73d7501e54e9018bab5cb0c4ad" }, "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, - "nvim-autopairs": { "branch": "master", "commit": "2a406cdd8c373ae7fe378a9e062a5424472bd8d8" }, - "nvim-cmp": { "branch": "main", "commit": "059e89495b3ec09395262f16b1ad441a38081d04" }, + "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-html-css": { "branch": "main", "commit": "435b2aa62d651cda9535aae7854dbea371f0a46e" }, + "nvim-html-css": { "branch": "main", "commit": "1294109cba1dcc3ca1c0fc4f8e13e46e8951a4fd" }, "nvim-lint": { "branch": "master", "commit": "5b1bdf306bd3e565908145279e8bbfc594dac3b3" }, - "nvim-lspconfig": { "branch": "master", "commit": "4ea9083b6d3dff4ddc6da17c51334c3255b7eba5" }, + "nvim-lspconfig": { "branch": "master", "commit": "b6936cb85d1e95b5ff00016b1185ab1a14450579" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, "nvim-treesitter": { "branch": "master", "commit": "0e21ee8df6235511c02bab4a5b391d18e165a58d" }, "nvim-treesitter-context": { "branch": "master", "commit": "439789a9a8df9639ecd749bb3286b77117024a6f" }, - "nvim-web-devicons": { "branch": "master", "commit": "57dfa947cc88cdf1baa2c7e13ed31edddd8fb1d1" }, + "nvim-web-devicons": { "branch": "master", "commit": "c90dee4e930ab9f49fa6d77f289bff335b49e972" }, "obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" }, - "odis": { "branch": "master", "commit": "5176a07a729860d0c0cdefe96252fc7ff9e16d43" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "de39919a57e1a40a4c7dc5bae0de276f9c616ef3" }, - "render-markdown.nvim": { "branch": "main", "commit": "05e6a6d119f90b99829ecb7eb85428a226c0c05f" }, + "render-markdown.nvim": { "branch": "main", "commit": "8bb0d4725cc4909a603158d44ff28b6158ad9278" }, "telescope-color-names.nvim": { "branch": "main", "commit": "95b372b9a8ba0fc7cf6a67be637ee37453f322da" }, "telescope-file-browser.nvim": { "branch": "master", "commit": "626998e5c1b71c130d8bc6cf7abb6709b98287bb" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, diff --git a/lua/core/options.lua b/lua/core/options.lua index f2d2410..e4ba35b 100644 --- a/lua/core/options.lua +++ b/lua/core/options.lua @@ -67,5 +67,7 @@ local border = { } -- set border for floating windows and signature help -l.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = border }) -l.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = border }) +-- UNSUPPPORTED: https://github.com/neovim/neovim/issues/32242#issuecomment-2777120640 +-- l.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = border }) +-- l.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = border }) +o.winborder = "rounded" diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua index 24a3ec9..6c65ca8 100644 --- a/lua/plugins/lspconfig.lua +++ b/lua/plugins/lspconfig.lua @@ -20,27 +20,34 @@ return { "ansiblels", "docker_compose_language_service", } + -- Define the highlight color for float border + vim.api.nvim_set_hl(0, "FloatBorder", { fg = "#89b4fa", bold = true }) + local border = { + { "╭", "FloatBorder" }, + { "─", "FloatBorder" }, + { "╮", "FloatBorder" }, + { "│", "FloatBorder" }, + { "╯", "FloatBorder" }, + { "─", "FloatBorder" }, + { "╰", "FloatBorder" }, + { "│", "FloatBorder" }, + } for _, lsp in ipairs(servers) do if lsp == "lua_ls" then - lspconfig[lsp].setup({ - -- on_attach = require("lsp-format").on_attach, - on_attach = function() - vim.notify("Lua LSP attached", nil, { title = "LSP" }) - end, + vim.lsp.enable(lsp) + vim.lsp.config("lua_ls", { on_init = function(client) if client.workspace_folders then local path = client.workspace_folders[1].name if path ~= vim.fn.stdpath("config") - and ( - vim.loop.fs_stat(path .. "/.luarc.json") - or vim.loop.fs_stat(path .. "/.luarc.jsonc") - ) + and (vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat(path .. "/.luarc.jsonc")) then return end end + client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, { runtime = { -- Tell the language server which version of Lua you're using @@ -53,7 +60,7 @@ return { library = { vim.env.VIMRUNTIME, -- Depending on the usage, you might want to add additional paths here. - -- "${3rd}/luv/library" + -- "${3rd}/luv/library", -- "${3rd}/busted/library", }, -- or pull in all of 'runtimepath'. NOTE: this is a lot slower and will cause issues when working on your own configuration (see https://github.com/neovim/nvim-lspconfig/issues/3189) @@ -61,23 +68,22 @@ return { }, }) end, - callSnippet = "Replace", settings = { Lua = {}, }, - }) - elseif lsp == "docker_compose_language_service" then - lspconfig[lsp].setup({ - filetypes = { "dockerfile", "docker-compose", "yaml", "yml" }, - on_attach = function() - vim.notify("Docker Compose LSP attached", nil, { title = "LSP" }) - end, + handlers = {}, }) else - lspconfig[lsp].setup({ - on_attach = function() - vim.notify(lsp .. " LSP attached", nil, { title = "LSP" }) - end, + vim.lsp.enable(lsp) + -- vim.lsp.config(lsp, { + -- handlers = { + -- UNNSUUPPORTED + -- ["textDocument/signatureHelp"] = vim.lsp.with( + -- vim.lsp.handlers.signature_help, + -- { border = border } + -- ), + -- ["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = border }), + }, }) end end diff --git a/lua/plugins/noice.lua b/lua/plugins/noice.lua index 01f8300..536fd2c 100644 --- a/lua/plugins/noice.lua +++ b/lua/plugins/noice.lua @@ -48,6 +48,39 @@ return { inc_rename = false, -- enables an input dialog for inc-rename.nvim lsp_doc_border = true, -- add a border to hover docs and signature help }, + cmdline = { + enabled = true, -- enables the Noice cmdline UI + view = "cmdline_popup", -- view for rendering the cmdline. Change to `cmdline` to get a classic cmdline at the bottom + opts = {}, -- global options for the cmdline. See section on views + ---@type table + format = { + -- conceal: (default=true) This will hide the text in the cmdline that matches the pattern. + -- view: (default is cmdline view) + -- opts: any options passed to the view + -- icon_hl_group: optional hl_group for the icon + -- title: set to anything or empty string to hide + cmdline = { pattern = "^:", icon = "", lang = "vim" }, + search_down = { kind = "search", pattern = "^/", icon = " ", lang = "regex" }, + search_up = { kind = "search", pattern = "^%?", icon = " ", lang = "regex" }, + filter = { pattern = "^:%s*!", icon = "$", lang = "bash" }, + lua = { pattern = { "^:%s*lua%s+", "^:%s*lua%s*=%s*", "^:%s*=%s*" }, icon = "", lang = "lua" }, + help = { pattern = "^:%s*he?l?p?%s+", icon = "" }, + input = { view = "cmdline_input", icon = "󰥻 " }, -- Used by input() + -- lua = false, -- to disable a format, set to `false` + }, + }, + views = { + cmdline_popup = { + border = { + style = "none", + padding = { 0, 0 }, + }, + filter_options = {}, + win_options = { + winhighlight = "NormalFloat:NormalFloat,FloatBorder:FloatBorder", + }, + }, + }, }, dependencies = { -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries diff --git a/lua/plugins/nui.lua b/lua/plugins/nui.lua new file mode 100644 index 0000000..9b56f29 --- /dev/null +++ b/lua/plugins/nui.lua @@ -0,0 +1 @@ +return { "MunifTanjim/nui.nvim" } diff --git a/lua/plugins/odis.lua b/lua/plugins/odis.lua deleted file mode 100644 index af5e990..0000000 --- a/lua/plugins/odis.lua +++ /dev/null @@ -1,52 +0,0 @@ -return { - url = "https://gitea.suda.codes/sudacode/odis", - dependencies = { - "nvim-treesitter/nvim-treesitter", - "neovim/nvim-lspconfig", - }, - opts = { - opts = { - display = { - default_mode = "vsplit", - picker = true, - float = { - maxwidth = 80, - maxheight = 40, - border = "rounded", - title = true, - style = "minimal", - auto_focus = true, - anchor = "bottom_right", - offset = { row = -2, col = -2 }, - }, - window = { - width = 0.4, - height = 0.25, - position = "bottom|right", - floating = false, - border = "none", - }, - }, - integrations = { - treesitter = { - enabled = true, -- Enable Treesitter integration - highlight = true, -- Enable syntax highlighting - langs = { -- Language mapping for different doc types - lsp = "markdown", - man = "man", - help = "vimdoc", - }, - }, - }, - sources = { - lsp = { enabled = true }, - vim = { enabled = true }, - man = { enabled = true }, - }, - priority = { "LSP", "Vim", "Man" }, - mappings = { - close = "dc", - }, - }, - }, -}