From d53b19208ce0cc5c2d4f93ca8a01cb1625b3d15b Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Sat, 18 Oct 2025 12:19:29 +0545 Subject: [PATCH] refactor(lsp): improve lsp configuration and UI settings --- lua/plugins/lsp.lua | 77 +++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index b41a0b3..03cee36 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,32 +1,32 @@ return { -- default lsp configs { - "neovim/nvim-lspconfig", + 'neovim/nvim-lspconfig', config = function() end, }, -- lsp installer { - "williamboman/mason.nvim", + 'williamboman/mason.nvim', dependencies = { - "williamboman/mason-lspconfig.nvim", + 'williamboman/mason-lspconfig.nvim', }, - cmd = "Mason", + cmd = 'Mason', config = function() -- mason - require("mason").setup({ + require('mason').setup({ ui = { icons = { - package_installed = "✓", - package_pending = "➜", - package_uninstalled = "✗", + package_installed = '✓', + package_pending = '➜', + package_uninstalled = '✗', }, - border = "rounded", + border = 'rounded', backdrop = 100, }, }) - require("mason-lspconfig").setup({ - ensure_installed = require("config.extensions").lsp_server, + require('mason-lspconfig').setup({ + ensure_installed = require('config.extensions').lsp_server, automatic_installation = false, -- Don't auto-install or auto-configure }) end, @@ -34,24 +34,24 @@ return { -- improve neovim lsp experience { - "nvimdev/lspsaga.nvim", - event = "LspAttach", + 'nvimdev/lspsaga.nvim', + event = 'LspAttach', config = function() - require("lspsaga").setup({ + require('lspsaga').setup({ ui = { - theme = "round", - border = "rounded", + theme = 'round', + border = 'rounded', devicon = true, title = true, winblend = 1, - expand = " ", - collapse = " ", - preview = "", - code_action = "󰠠 ", - diagnostic = " ", - incoming = " ", - outgoing = " ", - hover = " ", + expand = ' ', + collapse = ' ', + preview = '', + code_action = '󰠠 ', + diagnostic = ' ', + incoming = ' ', + outgoing = ' ', + hover = ' ', }, }) end, @@ -59,42 +59,51 @@ return { -- inline diagnostic { - "rachartier/tiny-inline-diagnostic.nvim", - event = "VeryLazy", + 'rachartier/tiny-inline-diagnostic.nvim', + event = 'VeryLazy', priority = 1000, config = function() - require("tiny-inline-diagnostic").setup() + require('tiny-inline-diagnostic').setup({ + options = { + show_source = true, + multiple_diag_under_cursor = true, + -- break_line = { + -- enabled = true, + -- after = 60, + -- } + }, + }) vim.diagnostic.config({ virtual_text = false }) -- Disable default virtual text end, }, -- code action { - "rachartier/tiny-code-action.nvim", + 'rachartier/tiny-code-action.nvim', dependencies = { { - "folke/snacks.nvim", + 'folke/snacks.nvim', opts = { terminal = {}, }, }, }, - event = "LspAttach", + event = 'LspAttach', config = function() - local codeaction = require("tiny-code-action") + local codeaction = require('tiny-code-action') codeaction.setup({ picker = { - "buffer", + 'buffer', opts = { auto_preview = true, hotkeys = true, - hotkeys_mode = "sequential", + hotkeys_mode = 'sequential', }, }, }) - vim.keymap.set("n", ".", codeaction.code_action) + vim.keymap.set('n', '.', codeaction.code_action) end, }, }