From 9ccb867150bf2419a5b7443f9f8bd52f0b283bc5 Mon Sep 17 00:00:00 2001 From: Colin Date: Sun, 16 Mar 2025 00:29:35 +0000 Subject: [PATCH] fix to build against tree-sitter 0.15 --- default.nix | 22 +++++++++++--- flake.lock | 12 ++++---- tree-sitter-nix-shell/package.json | 29 ------------------ tree-sitter-nix-shell/tree-sitter.json | 41 ++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 39 deletions(-) delete mode 100644 tree-sitter-nix-shell/package.json create mode 100644 tree-sitter-nix-shell/tree-sitter.json diff --git a/default.nix b/default.nix index 4302a9d..7289a96 100644 --- a/default.nix +++ b/default.nix @@ -2,14 +2,28 @@ pkgs.tree-sitter.buildGrammar { src = ./.; - version = "0.1.0"; + version = "0.2.0"; language = "nix-shell"; generate = true; location = "tree-sitter-nix-shell"; - checkPhase = '' - (cd ..; make test) - ''; nativeCheckInputs = with pkgs; [ htmlq ]; + checkPhase = '' + runHook preCheck + (cd ..; make test) + runHook postCheck + ''; doCheck = true; + + nativeInstallCheckInputs = with pkgs; [ tree ]; + installCheckPhase = '' + runHook preInstallCheck + + # make sure that all files i expect to be installed are actually installed + (test -x $out/parser && test -f $out/queries/highlights.scm && test -f $out/queries/injections.scm) || \ + (tree $out; echo "expected output to contain /parser and /queries/"; false) + + runHook postInstallCheck + ''; + doInstallCheck = true; } diff --git a/flake.lock b/flake.lock index 9016b99..0fa0c9a 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1688590700, - "narHash": "sha256-ZF055rIUP89cVwiLpG5xkJzx00gEuuGFF60Bs/LM3wc=", + "lastModified": 1741851582, + "narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f292b4964cb71f9dfbbd30dc9f511d6165cd109b", + "rev": "6607cf789e541e7873d40d3a8f7815ea92204f32", "type": "github" }, "original": { diff --git a/tree-sitter-nix-shell/package.json b/tree-sitter-nix-shell/package.json deleted file mode 100644 index bc7948e..0000000 --- a/tree-sitter-nix-shell/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "tree-sitter-nix-shell", - "version": "0.0.1", - "description": "nix-shell grammar for tree-sitter", - "main": "bindings/node", - "keywords": [ - "parsing", - "incremental" - ], - "dependencies": { - "nan": "^2.12.1" - }, - "devDependencies": { - "tree-sitter-cli": "^0.20.8" - }, - "scripts": { - "test": "tree-sitter test" - }, - "tree-sitter": [ - { - "first-line-regex": "^#!.*\\bnix-shell\\b.*$", - "content-regex": "^\b$nix-shell wraps other languages so intentionally fail against (and yield to) those other language matches", - "injection-regex": "^(nix[-_]?shell)$", - "scope": "source.nix_shell", - "injections": [ "queries/injections.scm" ], - "highlights": [ "queries/highlights.scm" ] - } - ] -} diff --git a/tree-sitter-nix-shell/tree-sitter.json b/tree-sitter-nix-shell/tree-sitter.json new file mode 100644 index 0000000..9ddf665 --- /dev/null +++ b/tree-sitter-nix-shell/tree-sitter.json @@ -0,0 +1,41 @@ +{ + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/config.schema.json", + "grammars": [ + { + "name": "nix_shell", + "camelcase": "NixShell", + "title": "NixShell", + "scope": "source.nix_shell", + "class-name": "TreeSitterNixShell", + "file-types": [ ], + "first-line-regex": "^#!.*\\bnix-shell\\b.*$", + "content-regex": "^\b$nix-shell wraps other languages so intentionally fail against (and yield to) those other language matches", + "injection-regex": "^(nix[-_]?shell)$", + "injections": [ "queries/injections.scm" ], + "highlights": [ "queries/highlights.scm" ] + } + ], + "metadata": { + "version": "0.2.0", + "description": "understands languages encoded in #!nix-shell shebangs", + "authors": [ + { + "name": "Colin", + "email": "colin@uninsane.org", + "url": "https://uninsane.org/" + } + ], + "links": { + "repository": "https://git.uninsane.org/colin/tree-sitter-nix-shell" + } + }, + "bindings": { + "c": true, + "go": true, + "node": true, + "python": true, + "rust": true, + "swift": true, + "zig": false + } +}