diff options
author | adisbladis <adisbladis@gmail.com> | 2022-04-24 02:41:43 +1200 |
---|---|---|
committer | adisbladis <adisbladis@gmail.com> | 2022-04-24 07:19:15 +1200 |
commit | b15c703495742190e6d5cf37ac0980391c323428 (patch) | |
tree | fc6748b9782590f8f6e2b67d1020d8ac66a76a32 /pkgs/applications/editors/emacs | |
parent | 00af59359fd4ce22922b438527ebe71fefea586e (diff) | |
download | nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar.gz nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar.bz2 nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar.lz nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar.xz nixlib-b15c703495742190e6d5cf37ac0980391c323428.tar.zst nixlib-b15c703495742190e6d5cf37ac0980391c323428.zip |
emacs.pkgs.tree-sitter-langs: Use grammars from nixpkgs and sources from melpa
Diffstat (limited to 'pkgs/applications/editors/emacs')
-rw-r--r-- | pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix | 94 |
1 files changed, 54 insertions, 40 deletions
diff --git a/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix index ffc3f5337496..93b4436e9520 100644 --- a/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix +++ b/pkgs/applications/editors/emacs/elisp-packages/tree-sitter-langs/default.nix @@ -6,52 +6,66 @@ , stdenv , fetchFromGitHub , writeText +, melpaStablePackages +, runCommand +, tree-sitter-grammars }: let - version = "0.10.14"; - tree-sitter-grammars = stdenv.mkDerivation { - name = "tree-sitter-grammars"; + inherit (melpaStablePackages) tree-sitter-langs; - inherit version; + # Note: Commented grammars are in upstream bundle but missing from our packaged grammars + grammars = [ + "agda" + "bash" + "c" + "c-sharp" + "cpp" + "css" + # "d" + "elixir" + "elm" + "fluent" + "go" + "haskell" + "hcl" + "html" + # "janet-simple" + "java" + "javascript" + "jsdoc" + "json" + "julia" + "nix" + "ocaml" + "ocaml-interface" + # "pgn" + "php" + "prisma" + "python" + "ruby" + "rust" + "scala" + "swift" + "tsx" + "typescript" + "verilog" + "zig" + ]; - src = fetchzip rec { - name = "tree-sitter-grammars-linux-${version}.tar.gz"; - url = "https://github.com/emacs-tree-sitter/tree-sitter-langs/releases/download/${version}/${name}"; - sha256 = "sha256-J8VplZWhyWN8ur74Ep0CTl4nPtESzfs2Gh6MxfY5Zqc="; - stripRoot = false; - }; + grammarDir = runCommand "emacs-tree-sitter-grammars" { + # Fake same version number as upstream language bundle to prevent triggering downloads + inherit (tree-sitter-langs) version; + } ('' + install -d $out/langs/bin + echo -n $version > $out/langs/bin/BUNDLE-VERSION + '' + lib.concatStringsSep "\n" (map (g: "ln -s ${tree-sitter-grammars."tree-sitter-${g}"}/parser $out/langs/bin/${g}.so") grammars)); - installPhase = '' - install -d $out/langs/bin - echo -n $version > $out/langs/bin/BUNDLE-VERSION - install -m444 * $out/langs/bin - ''; - }; - -in melpaBuild { - inherit version; - - pname = "tree-sitter-langs"; - commit = version; - - src = fetchFromGitHub { - owner = "emacs-tree-sitter"; - repo = "tree-sitter-langs"; - rev = version; - sha256 = "sha256-uKfkhcm1k2Ov4fSr7ALVnpQoX/l9ssEWMn761pa7Y/c="; - }; - - recipe = writeText "recipe" '' - (tree-sitter-langs - :repo "emacs-tree-sitter/tree-sitter-langs" - :fetcher github - :files (:defaults "queries")) - ''; - - postPatch = '' +in +melpaStablePackages.tree-sitter-langs.overrideAttrs(old: { + postPatch = old.postPatch or "" + '' substituteInPlace ./tree-sitter-langs-build.el \ - --replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir" "tree-sitter-langs-grammar-dir \"${tree-sitter-grammars}/langs\"" + --replace "tree-sitter-langs-grammar-dir tree-sitter-langs--dir" "tree-sitter-langs-grammar-dir \"${grammarDir}/langs\"" ''; -} +}) |