aboutsummaryrefslogtreecommitdiff
path: root/modules/home/i3wm/nord-blue/helix.nix
blob: 435192fc29c836cf8f0f94cf37425ada526b0b58 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{ pkgs, config, lib, ... }:

{
  programs.helix = {
    enable = true;
    settings = {
      theme = "ayu_mirage";
      editor.cursor-shape = {
      normal = "block";
      insert = "bar";
      select = "underline";
      };
    };
    languages = {
      language-server = {
        # Bash
        "bash-language-server" = {
          command = "${pkgs.bash-language-server}/bin/bash-language-server";
          args = [ "start" ];
        };

        # Rust
        "rust-analyzer" = {
          command = "${pkgs.rust-analyzer}/bin/rust-analyzer";
        };

        # Python
        "pyright" = {
          command = "${pkgs.pyright}/bin/pyright";
        };

        # Nix
        "nil" = {
          command = "${pkgs.nil}/bin/nil";
        };

        # LaTeX
        "texlab" = {
          command = "${pkgs.texlab}/bin/texlab";
        };

        # Markdown
        "marksman" = {
          command = "${pkgs.marksman}/bin/marksman";
        };
      };
      language = [
        {
          name = "bash";
          language-servers = [ "bash-language-server" ];
          auto-format = true;
        }
        {
          name = "rust";
          language-servers = [ "rust-analyzer" ];
          auto-format = true;
        }
        {
          name = "python";
          language-servers = [ "pyright" ];
          auto-format = true;
        }
        {
          name = "nix";
          language-servers = [ "nil" ];
          auto-format = true;
        }
        {
          name = "latex";
          language-servers = [ "texlab" ];
          auto-format = true;
        }
        {
          name = "markdown";
          language-servers = [ "marksman" ];
            auto-format = true;
        }
      ];
    };
  };

  home.packages = with pkgs; [
  zathura
  ripgrep
  fd

  bash-language-server # LSP for Bash
  rust-analyzer # Rust LSP
    llvmPackages_latest.lldb # lldb-dap for Rust
  pyright # Python LSP
  nil # Nix LSP
  texlab # LaTeX LSP
  marksman # Markdown LSP
  ];

}