forked from aylac.top/nixcfg
this repo has no description
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: { 7 options.myHome.programs.helix.enable = lib.mkEnableOption "helix"; 8 9 config = lib.mkIf config.myHome.programs.helix.enable { 10 programs.helix = { 11 enable = true; 12 13 settings = { 14 theme = "zed_onedark"; 15 16 editor = { 17 auto-completion = true; 18 auto-format = true; 19 auto-pairs = false; 20 auto-save = true; 21 color-modes = true; 22 cursorline = true; 23 24 cursor-shape = { 25 insert = "bar"; 26 normal = "block"; 27 select = "underline"; 28 }; 29 30 indent-guides.render = true; 31 32 lsp = { 33 display-inlay-hints = true; 34 display-messages = true; 35 }; 36 37 soft-wrap = { 38 enable = true; 39 wrap-at-text-width = true; 40 }; 41 42 statusline.center = ["position-percentage"]; 43 text-width = 100; 44 true-color = true; 45 46 whitespace.characters = { 47 newline = ""; 48 tab = ""; 49 }; 50 }; 51 52 keys = { 53 normal = { 54 n = "move_char_left"; 55 e = "move_line_down"; 56 i = "move_line_up"; 57 o = "move_char_right"; 58 59 j = "move_next_word_end"; 60 J = "move_next_long_word_end"; 61 k = "search_next"; 62 K = "search_prev"; 63 l = "insert_mode"; 64 L = "insert_at_line_start"; 65 66 h = "open_below"; 67 H = "open_above"; 68 }; 69 select = { 70 n = "extend_char_left"; 71 e = "extend_visual_line_down"; 72 i = "extend_visual_line_up"; 73 o = "extend_char_right"; 74 }; 75 }; 76 }; 77 languages = { 78 language-server = { 79 bash-language-server = { 80 command = "bash-language-server"; 81 args = ["start"]; 82 }; 83 84 vscode-css-languageserver = { 85 command = lib.getExe pkgs.vscode-css-languageserver; 86 args = ["--stdio"]; 87 }; 88 89 fish-lsp = { 90 command = lib.getExe pkgs.fish-lsp; 91 args = ["--stdio"]; 92 }; 93 94 lua-language-server = { 95 command = lib.getExe pkgs.lua-language-server; 96 args = ["--stdio"]; 97 }; 98 99 marksman = { 100 command = lib.getExe pkgs.marksman; 101 args = ["--stdio"]; 102 }; 103 104 nixd = { 105 command = lib.getExe pkgs.nixd; 106 }; 107 108 vscode-json-languageserver = { 109 command = lib.getExe pkgs.vscode-json-languageserver; 110 args = ["--stdio"]; 111 }; 112 113 typescript-language-server = with pkgs.nodePackages; { 114 command = "${typescript-language-server}/bin/typescript-language-server"; 115 args = ["--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib"]; 116 }; 117 118 superhtml = { 119 command = lib.getExe pkgs.superhtml; 120 args = ["--stdio"]; 121 }; 122 }; 123 124 language = [ 125 { 126 name = "bash"; 127 auto-format = true; 128 file-types = ["sh" "bash" "dash" "ksh" "mksh"]; 129 130 formatter = { 131 command = lib.getExe pkgs.shfmt; 132 args = ["-i" "2"]; 133 }; 134 135 language-servers = ["bash-language-server"]; 136 } 137 { 138 name = "css"; 139 auto-format = true; 140 formatter = {command = lib.getExe pkgs.prettier;}; 141 language-servers = ["vscode-css-languageserver"]; 142 } 143 { 144 name = "fish"; 145 auto-format = true; 146 language-servers = ["fish-lsp"]; 147 } 148 { 149 name = "html"; 150 auto-format = true; 151 formatter = {command = lib.getExe pkgs.prettier;}; 152 language-servers = ["superhtml"]; 153 } 154 { 155 name = "javascript"; 156 auto-format = true; 157 formatter = {command = lib.getExe pkgs.prettier;}; 158 language-servers = ["typescript-language-server"]; 159 } 160 { 161 name = "json"; 162 auto-format = true; 163 formatter = {command = lib.getExe pkgs.prettier;}; 164 language-servers = ["vscode-json-languageserver"]; 165 } 166 { 167 name = "lua"; 168 auto-format = true; 169 formatter = {command = lib.getExe pkgs.stylua;}; 170 language-servers = ["lua-language-server"]; 171 } 172 { 173 name = "markdown"; 174 auto-format = true; 175 formatter = {command = lib.getExe pkgs.mdformat;}; 176 language-servers = ["marksman"]; 177 } 178 { 179 name = "nix"; 180 auto-format = true; 181 formatter = {command = lib.getExe pkgs.alejandra;}; 182 language-servers = ["nixd"]; 183 } 184 { 185 name = "typescript"; 186 auto-format = true; 187 formatter = {command = lib.getExe pkgs.prettier;}; 188 language-servers = ["typescript-language-server"]; 189 } 190 ]; 191 }; 192 }; 193 }; 194}