return { 'nvimdev/lspsaga.nvim', dependencies = { 'nvim-tree/nvim-web-devicons', 'nvim-treesitter/nvim-treesitter', }, config = function() -- Setup lspsaga with your custom settings require('lspsaga').setup { use_saga_diagnostic_sign = true, error_sign = 'E', warn_sign = 'W', hint_sign = 'H', infor_sign = 'I', code_action_icon = '💡', finder_action_keys = { open = 'o', vsplit = 's', split = 'i', quit = 'q', scroll_down = '', scroll_up = '', }, code_action_keys = { quit = 'q', exec = '', }, rename_action_quit = '', definition_preview_icon = '🔍', border_style = 'round', rename_prompt_prefix = '➤', } -- Add custom key mappings for lspsaga local opts = { noremap = true, silent = true } -- Key mappings for lspsaga actions vim.api.nvim_set_keymap('n', 'ca', ':Lspsaga code_action', opts) -- Code action vim.api.nvim_set_keymap('n', 'rn', ':Lspsaga rename', opts) -- Rename vim.api.nvim_set_keymap('n', 'gh', ':Lspsaga hover_doc', opts) -- Hover doc vim.api.nvim_set_keymap('n', 'gd', ':Lspsaga lsp_finder', opts) -- LSP finder vim.api.nvim_set_keymap('n', '[e', ':Lspsaga diagnostic_jump_prev', opts) -- Previous diagnostic vim.api.nvim_set_keymap('n', ']e', ':Lspsaga diagnostic_jump_next', opts) -- Next diagnostic end, }