1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
local status, saga = pcall(require, "lspsaga")
if not status then
return
end
saga.init_lsp_saga({
-- when cursor in saga window you config these to move
move_in_saga = { prev = "k", next = "j" },
diagnostic_header = { " ", " ", " ", " " },
scroll_in_preview = {
scroll_down = "<C-d>",
scroll_up = "<C-u>",
},
code_action_icon = "ﯦ ",
-- Same as nvim-lightbulb but async
code_action_lightbulb = {
sign = false,
virtual_text = true,
},
finder_icons = {
def = " ",
ref = " ",
link = " ",
},
finder_action_keys = {
open = "<CR>",
"o",
vsplit = "gv",
split = "gs",
tabe = "t",
quit = "gq",
scroll_down = "<C-f>",
scroll_up = "<C-b>",
},
-- Show symbols in winbar must be neovim 0.8.0,
-- Close it until neovim 0.8.0 become stable
symbol_in_winbar = {
in_custom = false,
--enable = enable_winbar,
separator = " ",
show_file = true,
click_support = false,
},
})
-- Mappings.
local map = vim.api.nvim_set_keymap
local opts = { noremap = true, silent = true }
map("n", "gd", "<Cmd>Lspsaga lsp_finder<CR>", opts) -- Press "o" to open the reference location
map("n", "gp", "<Cmd>Lspsaga peek_definition<CR>", opts)
map("n", "K", "<Cmd>Lspsaga hover_doc<CR>", opts)
map("n", "gk", "<Cmd>Lspsaga diagnostic_jump_prev<CR>", opts)
map("n", "gj", "<Cmd>Lspsaga diagnostic_jump_next<CR>", opts)
map("n", "gs", "<Cmd>Lspsaga signature_help<CR>", opts) -- Default is <C-k>
map("n", "go", "<Cmd>Lspsaga show_line_diagnostics<CR>", opts)
map("n", "gr", "<Cmd>Lspsaga rename<CR>", opts)
map("n", "ga", "<Cmd>Lspsaga code_action<CR>", opts)
map("n", "[d", "<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
map("n", "]d", "<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
|