202 lines
4.4 KiB
Nix
202 lines
4.4 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
options = {
|
|
lspsaga.enable = lib.mkEnableOption "Enable lspsaga module";
|
|
};
|
|
config = lib.mkIf config.lspsaga.enable {
|
|
plugins.lspsaga = {
|
|
enable = true;
|
|
beacon = {
|
|
enable = true;
|
|
};
|
|
ui = {
|
|
border = "rounded"; # One of none, single, double, rounded, solid, shadow
|
|
codeAction = "💡"; # Can be any symbol you want 💡
|
|
};
|
|
hover = {
|
|
openCmd = "!floorp"; # Choose your browser
|
|
openLink = "gx";
|
|
};
|
|
diagnostic = {
|
|
borderFollow = true;
|
|
diagnosticOnlyCurrent = false;
|
|
showCodeAction = true;
|
|
};
|
|
symbolInWinbar = {
|
|
enable = true; # Breadcrumbs
|
|
};
|
|
codeAction = {
|
|
extendGitSigns = false;
|
|
showServerName = true;
|
|
onlyInCursor = true;
|
|
numShortcut = true;
|
|
keys = {
|
|
exec = "<CR>";
|
|
quit = [
|
|
"<Esc>"
|
|
"q"
|
|
];
|
|
};
|
|
};
|
|
lightbulb = {
|
|
enable = false;
|
|
sign = false;
|
|
virtualText = true;
|
|
};
|
|
implement = {
|
|
enable = false;
|
|
};
|
|
rename = {
|
|
autoSave = false;
|
|
keys = {
|
|
exec = "<CR>";
|
|
quit = [
|
|
"<C-k>"
|
|
"<Esc>"
|
|
];
|
|
select = "x";
|
|
};
|
|
};
|
|
outline = {
|
|
autoClose = true;
|
|
autoPreview = true;
|
|
closeAfterJump = true;
|
|
layout = "normal"; # normal or float
|
|
winPosition = "right"; # left or right
|
|
keys = {
|
|
jump = "e";
|
|
quit = "q";
|
|
toggleOrJump = "o";
|
|
};
|
|
};
|
|
scrollPreview = {
|
|
scrollDown = "<C-f>";
|
|
scrollUp = "<C-b>";
|
|
};
|
|
};
|
|
# keymaps = [
|
|
# {
|
|
# mode = "n";
|
|
# key = "gd";
|
|
# action = "<cmd>Lspsaga finder def<CR>";
|
|
# options = {
|
|
# desc = "Goto Definition";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
# {
|
|
# mode = "n";
|
|
# key = "gr";
|
|
# action = "<cmd>Lspsaga finder ref<CR>";
|
|
# options = {
|
|
# desc = "Goto References";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# # {
|
|
# # mode = "n";
|
|
# # key = "gD";
|
|
# # action = "<cmd>Lspsaga show_line_diagnostics<CR>";
|
|
# # options = {
|
|
# # desc = "Goto Declaration";
|
|
# # silent = true;
|
|
# # };
|
|
# # }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "gI";
|
|
# action = "<cmd>Lspsaga finder imp<CR>";
|
|
# options = {
|
|
# desc = "Goto Implementation";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "gT";
|
|
# action = "<cmd>Lspsaga peek_type_definition<CR>";
|
|
# options = {
|
|
# desc = "Type Definition";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "K";
|
|
# action = "<cmd>Lspsaga hover_doc<CR>";
|
|
# options = {
|
|
# desc = "Hover";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "<leader>cw";
|
|
# action = "<cmd>Lspsaga outline<CR>";
|
|
# options = {
|
|
# desc = "Outline";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "<leader>cr";
|
|
# action = "<cmd>Lspsaga rename<CR>";
|
|
# options = {
|
|
# desc = "Rename";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "<leader>ca";
|
|
# action = "<cmd>Lspsaga code_action<CR>";
|
|
# options = {
|
|
# desc = "Code Action";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "<leader>cd";
|
|
# action = "<cmd>Lspsaga show_line_diagnostics<CR>";
|
|
# options = {
|
|
# desc = "Line Diagnostics";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "[d";
|
|
# action = "<cmd>Lspsaga diagnostic_jump_next<CR>";
|
|
# options = {
|
|
# desc = "Next Diagnostic";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
#
|
|
# {
|
|
# mode = "n";
|
|
# key = "]d";
|
|
# action = "<cmd>Lspsaga diagnostic_jump_prev<CR>";
|
|
# options = {
|
|
# desc = "Previous Diagnostic";
|
|
# silent = true;
|
|
# };
|
|
# }
|
|
# ];
|
|
};
|
|
}
|