aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development/nixvim/plugins/lsp.nix
blob: 6c64a3775170cd0e240a6239252486bdefe8d5e1 (plain)
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
# Language Server Protocol configuration
{ config, lib, ... }:
{
  config.programs.nixvim.plugins.lsp = lib.mkIf config.development.nixvim.enable {
    enable = true;
    inlayHints = true;
    autoLoad = true;

    keymaps = {
      lspBuf = {
        "<leader>lh" = "hover";
        "<leader>lr" = "references";
        "<leader>ld" = "definition";
        "<leader>li" = "implementation";
        "<leader>lt" = "type_definition";
        "<leader>lD" = "declaration";
        "<leader>lR" = "rename";
        "<leader>la" = "code_action";
        "<leader>lf" = "format";
        "<leader>ls" = "signature_help";
        "<leader>lwa" = "add_workspace_folder";
        "<leader>lwr" = "remove_workspace_folder";
        "<leader>lwl" = "list_workspace_folders";
      };
      diagnostic = {
        "<leader>le" = "open_float";
        "<leader>lq" = "setloclist";
        "[d" = "goto_prev";
        "]d" = "goto_next";
      };
    };
  };
}