main
1# Modify from https://github.com/NixOS/nixpkgs/blob/c4e0120b295daaac44f245f1c50ec06e844fe53b/pkgs/by-name/st/steelix/package.nix
2{
3 lib,
4 callPackage,
5 helix,
6 tree-sitter-grammars,
7 lockedGrammars ? lib.filterAttrs (name: _: tree-sitter-grammars ? "tree-sitter-${name}") (lib.importJSON ./grammars.json),
8 steelix-unwrapped ? callPackage ./unwrapped.nix {},
9}:
10(helix.override {
11 helix-unwrapped = steelix-unwrapped;
12 lockedGrammars = lockedGrammars;
13 grammarsOverlay = final: prev: {
14 tree-sitter-agda = prev.tree-sitter-agda.override {
15 excludeBrokenTreeSitterJson = false;
16 };
17 tree-sitter-beancount = prev.tree-sitter-beancount.override {
18 excludeBrokenTreeSitterJson = false;
19 };
20 tree-sitter-git-rebase = prev.tree-sitter-git-rebase.overrideAttrs {
21 dontPatch = true;
22 };
23 tree-sitter-glimmer = prev.tree-sitter-glimmer.override {
24 excludeBrokenTreeSitterJson = false;
25 };
26 tree-sitter-janet-simple = prev.tree-sitter-janet-simple.override {
27 excludeBrokenTreeSitterJson = false;
28 };
29 tree-sitter-qmljs = prev.tree-sitter-qmljs.overrideAttrs {
30 dontCheckForBrokenSymlinks = true;
31 };
32 tree-sitter-sql = prev.tree-sitter-sql.override {
33 generate = false;
34 };
35 tree-sitter-strace = prev.tree-sitter-strace.override {
36 excludeBrokenTreeSitterJson = false;
37 };
38 tree-sitter-tact = prev.tree-sitter-tact.override {
39 excludeBrokenTreeSitterJson = false;
40 };
41 tree-sitter-tlaplus = prev.tree-sitter-tlaplus.overrideAttrs {
42 dontPatch = true;
43 };
44 tree-sitter-vue = prev.tree-sitter-vue.override {
45 excludeBrokenTreeSitterJson = false;
46 };
47 tree-sitter-wit = prev.tree-sitter-wit.override {
48 excludeBrokenTreeSitterJson = false;
49 };
50 tree-sitter-yuck = prev.tree-sitter-yuck.override {
51 excludeBrokenTreeSitterJson = false;
52 };
53 };
54}).overrideAttrs
55(
56 _: previousAttrs: {
57 pname = "steelix";
58 strictDeps = true;
59
60 meta =
61 previousAttrs.meta
62 // {
63 description = "Helix editor with Steel (Scheme) scripting support";
64 longDescription = ''
65 Steelix is a fork of the Helix editor with Steel (Scheme) scripting support.
66 '';
67 homepage = "https://github.com/mattwparas/helix";
68 changelog = "https://github.com/mattwparas/helix/blob/${steelix-unwrapped.src.rev}/CHANGELOG.md";
69 license = lib.licenses.mpl20;
70 mainProgram = "hx";
71 };
72 }
73)