From f7b05f4a5faf9c4411e2f313c44baa644379f0e4 Mon Sep 17 00:00:00 2001 From: "dpezto-release-please[bot]" <308209986+dpezto-release-please[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 08:41:02 +0000 Subject: [PATCH 1/2] chore(main): release 4.0.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 20 ++++++++++++++++++++ CITATION.cff | 4 ++-- CMakeLists.txt | 2 +- Cargo.toml | 2 +- Makefile | 2 +- package-lock.json | 4 ++-- package.json | 2 +- pyproject.toml | 2 +- 9 files changed, 30 insertions(+), 10 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index d4f6f29..e6f8775 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "3.0.0" + ".": "4.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index ac77ed2..10536f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,26 @@ All notable changes are documented here. This file is maintained automatically b [release-please](https://github.com/googleapis/release-please) from Conventional-Commit history; do not edit it by hand. +## [4.0.0](https://github.com/dpezto/tree-sitter-gnuplot/compare/v3.0.0...v4.0.0) (2026-07-26) + + +### ⚠ BREAKING CHANGES + +* eleven anonymous node types were removed and one tree shape changed, across two commits that were each described as non-breaking. + +### Bug Fixes + +* **citation:** let release-please maintain CITATION.cff ([#45](https://github.com/dpezto/tree-sitter-gnuplot/issues/45)) ([d9e43ea](https://github.com/dpezto/tree-sitter-gnuplot/commit/d9e43ea43b1e245c59588b53441506a28ec218bd)) +* **grammar:** bind the stats name/prefix value to the name field ([#44](https://github.com/dpezto/tree-sitter-gnuplot/issues/44)) ([acaeeed](https://github.com/dpezto/tree-sitter-gnuplot/commit/acaeeeddc8329b04b2fd1c240f0a7f5b025894f5)) +* **grammar:** correct four abbreviation minima, retire two declared conflicts ([#47](https://github.com/dpezto/tree-sitter-gnuplot/issues/47)) ([42db88d](https://github.com/dpezto/tree-sitter-gnuplot/commit/42db88d1533e07c6e4d1d310e966c5993de6dfc7)) +* **keywords:** fail loudly when a scanner tier is unregistered or contradicts grammar.js ([#38](https://github.com/dpezto/tree-sitter-gnuplot/issues/38)) ([37de22d](https://github.com/dpezto/tree-sitter-gnuplot/commit/37de22d314ddca38c56535ea6df5cdfb9c472dc3)) +* parse and highlight corrections from the 2026-07-25 audit ([#42](https://github.com/dpezto/tree-sitter-gnuplot/issues/42)) ([65ee6f8](https://github.com/dpezto/tree-sitter-gnuplot/commit/65ee6f8e8b3a0ae7e31ed8fdec6d90df59105013)) + + +### Miscellaneous Chores + +* record the breaking changes accumulated since 3.0.0 ([#48](https://github.com/dpezto/tree-sitter-gnuplot/issues/48)) ([ba563e5](https://github.com/dpezto/tree-sitter-gnuplot/commit/ba563e589459145b757c85f4918cd57367f593e7)) + ## [3.0.0](https://github.com/dpezto/tree-sitter-gnuplot/compare/v2.0.4...v3.0.0) (2026-07-25) diff --git a/CITATION.cff b/CITATION.cff index 2b630e1..4d3a695 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -21,5 +21,5 @@ keywords: - parser - grammar - syntax-highlighting -version: 3.0.0 # x-release-please-version -date-released: "2026-07-25" # x-release-please-date +version: 4.0.0 # x-release-please-version +date-released: "2026-07-26" # x-release-please-date diff --git a/CMakeLists.txt b/CMakeLists.txt index df99cf0..ede6cfb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.13) project(tree-sitter-gnuplot - VERSION "3.0.0" # x-release-please-version + VERSION "4.0.0" # x-release-please-version DESCRIPTION "A tree-sitter grammar for gnuplot" HOMEPAGE_URL "https://github.com/dpezto/tree-sitter-gnuplot" LANGUAGES C) diff --git a/Cargo.toml b/Cargo.toml index f271a49..de45456 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tree-sitter-gnuplot" description = "gnuplot grammar for the tree-sitter parsing library" -version = "3.0.0" # x-release-please-version +version = "4.0.0" # x-release-please-version keywords = ["incremental", "parsing", "gnuplot"] categories = ["parsing", "text-editors"] repository = "https://github.com/dpezto/tree-sitter-gnuplot" diff --git a/Makefile b/Makefile index b3f0acc..f241acb 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ endif LANGUAGE_NAME := tree-sitter-gnuplot HOMEPAGE_URL := https://github.com/dpezto/tree-sitter-gnuplot -VERSION := 3.0.0# x-release-please-version +VERSION := 4.0.0# x-release-please-version # repository SRC_DIR := src diff --git a/package-lock.json b/package-lock.json index 7501452..4fe4c1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tree-sitter-gnuplot", - "version": "3.0.0", + "version": "4.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "tree-sitter-gnuplot", - "version": "3.0.0", + "version": "4.0.0", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 095a3e8..fa4a204 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-sitter-gnuplot", - "version": "3.0.0", + "version": "4.0.0", "description": "Gnuplot grammar for tree-sitter", "main": "bindings/node", "types": "bindings/node", diff --git a/pyproject.toml b/pyproject.toml index 40a1646..22de749 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "tree-sitter-gnuplot" description = "A tree-sitter grammar for gnuplot" -version = "3.0.0" # x-release-please-version +version = "4.0.0" # x-release-please-version keywords = ["incremental", "parsing", "tree-sitter", "gnuplot"] classifiers = [ "Intended Audience :: Developers", From 6a77596a95f485617330a7e7824b47e671bc36dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dai=20L=C3=B3pez?= Date: Sun, 26 Jul 2026 02:57:06 -0600 Subject: [PATCH 2/2] docs(changelog): inline the 4.0.0 breaking detail release-please renders only the footer's first line, so the per-literal table and the two failure modes were reachable through ba563e5 but not visible to a reader skimming the changelog. Which node names to grep for is the question that section exists to answer. --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10536f2..8044658 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,36 @@ history; do not edit it by hand. * eleven anonymous node types were removed and one tree shape changed, across two commits that were each described as non-breaking. +Two failure modes, with opposite symptoms. + +**Removed anonymous node types.** A query naming one of these **fails to +compile** — `Invalid node type "close"` — and in Neovim a single invalid node +type takes down the whole query file, so the symptom is total loss of +highlighting rather than one capture quietly not matching. Ten of the eleven +match real gnuplot input and were retired into tier aliases; the eleventh never +could: + +| node type | reachable | example | +|---|---|---| +| `keypress` | yes | `pause mouse keypress` | +| `button1`, `button2`, `button3` | yes | `pause mouse button1` | +| `close` | yes | `pause mouse close` | +| `any` | yes | `pause mouse any` | +| `font` | yes | `set label 1 "x" font "Arial,10"` | +| `b`, `s`, `t` | yes | `set pm3d at b` | +| `$vgridname` | no | documentation placeholder; a real voxel grid name lexes as `datablock` | + +Every named tree is byte-identical, so nothing stops parsing. + +**Changed tree shape.** `set palette file "c.pal" using 1:2 "%lf"` now binds the +trailing scanf string inside `using` as `format:`, where it was previously a +palette body item. gnuplot treats it as the using format, so the new tree is +correct — but a palette query keyed on the old shape still **compiles and +silently stops matching**. + +Full per-literal detail and the reasoning are in ba563e5. + + ### Bug Fixes * **citation:** let release-please maintain CITATION.cff ([#45](https://github.com/dpezto/tree-sitter-gnuplot/issues/45)) ([d9e43ea](https://github.com/dpezto/tree-sitter-gnuplot/commit/d9e43ea43b1e245c59588b53441506a28ec218bd))