summaryrefslogtreecommitdiff
path: root/common/home/programs/nixvim/plugins/lsp.nix
blob: 47e229fa2484c2f8643be81f969bba795b5e3e46 (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
34
35
36
37
38
39
40
41
42
43
{ pkgs, ... }:
{
  enable = true;
  servers = {

    bashls = {
      enable = true;
      package = pkgs.unstable.bash-language-server;
    };

    clangd.enable = true;

    nixd = {
      enable = true;
      settings.formatting.command = [ "nixfmt" ];
    };

    rust_analyzer = {
      enable = true;
      installCargo = true;
      installRustc = true;
    };

    pyright.enable = true;

    ocamllsp = {
      enable = true;
      package = null;
      cmd = [ "ocamllsp" ];
    };
  };

  keymaps.lspBuf = {
    "gd" = "definition";
    "gD" = "references";
    "gt" = "type_definition";
    "gi" = "implementation";
    "K" = "hover";
    "rn" = "rename";
    "<space>ca" = "code_action";
    "<space>f" = "format";
  };
}