{ plugins = { lspsaga = { enable = true; settings = { beacon.enable = true; outline = { close_after_jump = true; layout = "normal"; # normal or float win_position = "right"; # left or right keys = { jump = "e"; quit = "q"; toggle_or_jump = "o"; }; }; symbol_in_winbar = { enable = true; # Breadcrumbs show_file = false; }; rename.keys = { exec = ""; quit = [ "" "" ]; select = "x"; }; scroll_preview = { scroll_up = ""; scroll_down = ""; }; lightbulb = { enable = true; sign = true; }; code_action = { show_server_name = true; num_shortcut = false; only_in_cursor = false; keys = { exec = ""; quit = [ "" "q" ]; }; }; ui.border = "rounded"; # One of none, single, double, rounded, solid, shadow hover = { openCmd = "!firfox"; openLink = "gx"; }; }; }; which-key.settings.spec = [ { __unkeyed-1 = "gp"; mode = "n"; group = "+peek"; } ]; }; keymaps = [ { mode = "n"; key = "K"; # action = "Lspsaga hover_doc"; action.__raw = '' function() local winid = require("ufo").peekFoldedLinesUnderCursor() if not winid then vim.cmd("Lspsaga hover_doc") end end ''; options = { desc = "Hover"; silent = true; }; } { mode = "n"; key = "lo"; action = "Lspsaga outline"; options = { desc = "Outline"; silent = true; }; } { mode = "n"; key = "lr"; action = "Lspsaga rename"; options = { desc = "Rename"; silent = true; }; } { mode = "n"; key = "ca"; action = "Lspsaga code_action"; options = { desc = "Code Action"; silent = true; }; } { mode = "n"; key = "cd"; action = "Lspsaga show_buf_diagnostics"; options = { desc = "Line Diagnostics"; silent = true; }; } { mode = "n"; key = "gd"; action = "Lspsaga goto_definition"; options = { desc = "Goto Definition"; silent = true; }; } { mode = "n"; key = "gt"; action = "Lspsaga goto_type_definition"; options = { desc = "Type Definitions"; silent = true; }; } { mode = "n"; key = "gpd"; action = "Lspsaga peek_definition"; options = { desc = "Peek Definitions"; silent = true; }; } { mode = "n"; key = "gpt"; action = "Lspsaga peek_type_definition"; options = { desc = "Peek Type Definitions"; silent = true; }; } { mode = "n"; key = "gl"; action = "Lspsaga show_line_diagnostics"; options = { desc = "Line Diagnostics"; silent = true; }; } { mode = "n"; key = "[d"; action = "Lspsaga diagnostic_jump_next"; options = { desc = "Next Diagnostic"; silent = true; }; } { mode = "n"; key = "]d"; action = "Lspsaga diagnostic_jump_prev"; options = { desc = "Previous Diagnostic"; silent = true; }; } ]; }