Skip to content

Commit d9035f0

Browse files
authored
Cut v0.3.0 release (#57)
- Aggregate the CHANGELOG [0.3.0] section: the field catalogue, linter, tree-sitter highlight/locals/tags queries, pygls language server, and VS Code extension (#19#25). - Bump gmat-script (PyPI), tree-sitter-gmat (npm), and the VS Code extension to 0.3.0 in lockstep, and regenerate parser.c for the embedded version stamp. - Refresh the VS Code extension and file-type icons, and add the Marketplace / Open VSX demo GIF. Closes #26
1 parent 2cf6540 commit d9035f0

14 files changed

Lines changed: 67 additions & 18 deletions

File tree

CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,50 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88
## [Unreleased]
99

10+
## [0.3.0] — 2026-06-08
11+
12+
gmat-script grows from a parser and formatter into a full editor toolchain: a GMAT field catalogue
13+
reflected from R2026a, a linter that checks scripts against it, a Language Server Protocol server,
14+
and a VS Code extension on the Marketplace and Open VSX. Everything still runs with no GMAT install —
15+
the catalogue ships as data inside the wheel — and the grammar is unchanged, so every byte-for-byte
16+
round-trip from earlier releases still holds.
17+
18+
### Added
19+
20+
- **Field catalogue (`gmat_script.catalog`)** — the semantics GMAT defines but the permissive grammar
21+
deliberately ignores: every resource type, its fields, and each field's type, default, allowed
22+
values, units, and reference target. Reflected from GMAT R2026a through `gmatpy` by a
23+
`tools/gen_catalog.py` generator and shipped as a version-pinned, provenance-stamped data file
24+
(`data/fields-R2026a.json`, 102 resource types and 2614 fields) inside the wheel, loaded by
25+
`load_catalog()`. Adding another GMAT release is a new data file, not a code change, and nothing
26+
downstream needs a GMAT install (#19).
27+
- **Linter (`gmat-script lint`)** — a structural checker that reads the field catalogue: it flags
28+
unknown resource fields, enum and type violations, references to undeclared resources, duplicate
29+
names, and more, with inline suppression comments and `ruff`-style severities and exit codes. Each
30+
diagnostic carries a rule id, a location, and a message, and the engine is shared verbatim with the
31+
language server (#20).
32+
- **Tree-sitter queries**`highlights`, `locals`, and `tags` queries packaged with the
33+
`tree-sitter-gmat` grammar, giving editors resource / command / field highlighting, scope-aware
34+
local resolution, and a symbol index with no extra setup (#21).
35+
- **Language server (`gmat-script[lsp]`)** — a `pygls` server, launched as `gmat-script-lsp` or
36+
`python -m gmat_script.lsp`, that brings the catalogue and linter to any LSP-capable editor: hover
37+
docs for a field's type, default, allowed values, and units; live diagnostics as you type;
38+
completion of resource names, the fields valid for the resource under the cursor, and enum values;
39+
go-to-definition and find-all-references; a document outline; and format-on-save via the canonical
40+
formatter (#22).
41+
- **VS Code extension****GMAT Script**, published to the Visual Studio Marketplace and Open VSX.
42+
Bundled TextMate highlighting works the moment it installs; the richer language features come from
43+
the language server (`pip install "gmat-script[lsp]"`). `.script` and `.gmf` files get a file icon,
44+
comment / bracket configuration, and format-on-save on by default (#23).
45+
- **Documentation** — new guide pages for the field catalogue, the linter, the language server, and
46+
the VS Code extension, plus README sections on editor tooling and the GMAT-free catalogue (#25).
47+
48+
### Changed
49+
50+
- `gmat-script` (PyPI) and `tree-sitter-gmat` (npm) continue to release in version lockstep, now at
51+
0.3.0. The grammar and generated parser are unchanged since 0.2.0; the npm package is republished
52+
to carry the new editor queries — an expanded `highlights.scm` and a new `locals.scm` (#21).
53+
1054
## [0.2.0] — 2026-06-08
1155

1256
A typed AST overlay over the v0.1 parse tree, a lossless mutation API, a canonical formatter, and a

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ add the repo to your `.pre-commit-config.yaml`:
8080
```yaml
8181
repos:
8282
- repo: https://github.com/astro-tools/gmat-script
83-
rev: v0.2.0
83+
rev: v0.3.0
8484
hooks:
8585
- id: gmat-script-format # auto-format on commit
8686
# - id: gmat-script-format-check # or: check only, never write (CI)

editors/vscode/.vscodeignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ tsconfig.json
1313
**/*.ts
1414
.gitignore
1515
.eslintrc*
16+
images/README.md

editors/vscode/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ Language support for [GMAT](https://gmat.atlassian.net/wiki/spaces/GW/overview)
44
`.script` and `.gmf` files — built on the [`gmat-script`](https://github.com/astro-tools/gmat-script)
55
tree-sitter grammar and language server.
66

7-
<!-- A short highlighting + diagnostics demo lands here for the release.
8-
![GMAT Script in VS Code](images/demo.gif) -->
7+
![GMAT Script in VS Code](images/demo.gif)
98

109
## Features
1110

editors/vscode/icons/gmat-file.svg

Lines changed: 11 additions & 6 deletions
Loading
67.4 KB
Loading

editors/vscode/images/demo.gif

118 KB
Loading

editors/vscode/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

editors/vscode/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "gmat-script",
33
"displayName": "GMAT Script",
44
"description": "Highlighting, hover docs, diagnostics, go-to-definition, completion, and format-on-save for GMAT mission scripts (.script / .gmf).",
5-
"version": "0.2.0",
5+
"version": "0.3.0",
66
"publisher": "astro-tools",
77
"license": "MIT",
88
"icon": "icons/gmat-script.png",

src/gmat_script/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@
3535
"load_catalog",
3636
"parse",
3737
]
38-
__version__ = "0.2.0"
38+
__version__ = "0.3.0"

0 commit comments

Comments
 (0)