vim.g.matchup_matchparen_offscreen = { method = {} } require('lspsaga').setup({ ui = { border = 'single', }, outline = { win_position = 'right', auto_preview = true, detail = true, auto_close = true, close_after_jump = true, layout = 'float', keys = { toggle_or_jump = '', quit = { 'q', '' }, jump = 'e', }, }, diagnostic = { show_code_action = true, show_layout = 'float', show_normal_height = 10, jump_num_shortcut = true, max_width = 0.8, max_height = 0.6, max_show_width = 0.9, max_show_height = 0.6, text_hl_follow = true, border_follow = true, wrap_long_lines = true, extend_relatedInformation = false, diagnostic_only_current = false, keys = { exec_action = 'o', quit = { 'q', '' }, toggle_or_jump = '', quit_in_show = { 'q', '' }, }, }, code_action = { num_shortcut = true, show_server_name = false, extend_gitsigns = true, only_in_cursor = false, max_height = 0.3, keys = { quit = { 'q', '' }, exec = '', }, }, finder = { max_height = 0.5, left_width = 0.4, methods = {}, default = 'ref+imp', layout = 'float', silent = false, filter = {}, fname_sub = nil, sp_inexist = false, sp_global = false, ly_botright = false, keys = { shuttle = '[w', toggle_or_open = '', vsplit = 's', split = 'i', tabe = 't', tabnew = 'r', quit = { 'q', '' }, close = 'k', }, }, definition = { width = 0.6, height = 0.5, save_pos = false, keys = { edit = 'o', vsplit = 'v', split = 'i', tabe = 't', tabnew = 'n', quit = { 'q', '' }, close = 'k', }, }, }) Nmap('', ':Lspsaga outline') Nmap('', ':Lspsaga show_buf_diagnostics') Nmap('', ':Lspsaga code_action') Nmap('ca', ':Lspsaga code_action') Nmap('gr', ':Lspsaga finder ref') Nmap('gi', ':Lspsaga finder imp') Nmap('gd', ':Lspsaga goto_definition') Nmap('gD', ':Lspsaga goto_type_definition')