yep, more dotfiles

helix: add ebnf language grammar and ls

wiro.world 83777605 397cbb61

verified
+41 -13
+39 -11
home-manager/fragments/helix.nix
··· 113 113 yaml-language-server 114 114 ] 115 115 ++ lib.optionals (!flags.onlyCached) [ 116 + lpkgs.ebnfer 116 117 lpkgs.wakatime-ls 117 118 ]; 118 119 ··· 122 123 check.command = "clippy"; 123 124 }; 124 125 125 - ltex-ls.command = "ltex-ls"; 126 + ebnfer.command = "ebnfer"; 127 + 126 128 typos-ls.command = "typos-lsp"; 127 129 wakatime-ls.command = "wakatime-ls"; 128 130 }; 129 131 130 132 language = 131 133 let 132 - global-lsps = [ 134 + global-language-servers = [ 133 135 "wakatime-ls" 134 136 "typos-ls" 135 137 ]; ··· 137 139 name: language-servers: extra: 138 140 { 139 141 inherit name; 140 - language-servers = language-servers ++ global-lsps; 142 + language-servers = language-servers ++ global-language-servers; 141 143 } 142 144 // extra; 143 145 in 144 146 [ 147 + (mk-lang "html" [ "vscode-html-language-server" ] { }) 148 + (mk-lang "markdown" [ "marksman" ] { }) 149 + (mk-lang "nix" [ "nil" ] { }) 150 + (mk-lang "ocaml" [ "ocamllsp" ] { }) 151 + (mk-lang "python" [ "ruff" "jedi" "pylsp" ] { }) 152 + (mk-lang "rust" [ "rust-analyzer" ] { }) 153 + (mk-lang "typescript" [ "typescript-language-server" ] { }) 154 + (mk-lang "zig" [ "zls" ] { }) 155 + 145 156 (mk-lang "c" [ "clangd" ] { 146 157 formatter = { 147 158 command = lib.getExe' pkgs.clang-tools "clang-format"; 148 159 args = [ ]; 149 160 }; 150 161 }) 151 - (mk-lang "markdown" [ "marksman" ] { }) 152 162 153 - (mk-lang "html" [ "vscode-html-language-server" ] { }) 154 - (mk-lang "nix" [ "nil" ] { }) 155 - (mk-lang "ocaml" [ "ocamllsp" ] { }) 156 - (mk-lang "python" [ "ruff" "jedi" "pylsp" ] { }) 157 - (mk-lang "rust" [ "rust-analyzer" ] { }) 158 - (mk-lang "typescript" [ "typescript-language-server" ] { }) 159 - (mk-lang "zig" [ "zls" ] { }) 163 + # TODO: remove when merged upstream 164 + (mk-lang "ebnf" [ "ebnfer" ] { 165 + scope = "source.ebnf"; 166 + injection-regex = "ebnf"; 167 + file-types = [ "ebnf" ]; 168 + indent = { 169 + tab-width = 4; 170 + unit = " "; 171 + }; 172 + block-comment-tokens = { 173 + start = "(*"; 174 + end = "*)"; 175 + }; 176 + }) 160 177 ]; 178 + 179 + grammar = [ 180 + { 181 + name = "ebnf"; 182 + source = { 183 + git = "https://github.com/RubixDev/ebnf/"; 184 + rev = "8e635b0b723c620774dfb8abf382a7f531894b40"; 185 + subpath = "crates/tree-sitter-ebnf"; 186 + }; 187 + } 188 + ]; 161 189 }; 162 190 }; 163 191
+2 -2
pkgs/ebnfer.nix
··· 5 5 6 6 rustPlatform.buildRustPackage rec { 7 7 pname = "ebnfer"; 8 - version = "0.14.0"; 8 + version = "1.0.0"; 9 9 10 10 src = fetchFromGitHub { 11 11 owner = "DanielHauge"; ··· 15 15 hash = "sha256-CSe2HCToYW7ivH6jpJwqHKH/yZDZgW8el8FVCmq75cU="; 16 16 }; 17 17 18 - cargoHash = "sha256-URT4jTKkCkK7Mr94ll1DloSEcrbkUJk8HFxkTmePf/w="; 18 + cargoHash = "sha256-K+6pYv8hHTXlTs32HHYiBs6WFKXeRBlAEJWEaQ+HrV8"; 19 19 20 20 meta = { 21 21 description = "A language server for EBNF";