AGSLint is the world's first open-sourced VS Code extension for linting and validating AGS3 and AGS4 .ags files for geotechnical engineers. This repo currently targets local and private extension use, with AGS reference data stored in the repo and editor diagnostics provided directly by the extension.
This project is built with clear respect for the AGS Python Library maintained by the AGS Data Format Working Group. Their work on reading, writing, and checking AGS files, together with the surrounding documentation and standards guidance, has materially improved the AGS tooling ecosystem and helped establish a stronger foundation for projects like this one.
- Registers the
agslanguage and.agsfile extension in VS Code - Provides AGS syntax highlighting through the bundled TextMate grammar
- Detects AGS3 versus AGS4 content and resolves bundled AGS4 dictionary editions from
TRAN_AGS - Reports diagnostics for structural, schema, and formatting issues against the matching AGS schema edition
- Provides quick fixes for selected lint findings
- Adds these command palette commands:
AGSLint: Run Lint on FileAGSLint: Show AGS Version
src/contains the extension entrypoint, linter, parsers, references, and testsref/contains raw AGS reference files used as source data, including bundled AGS4 standard dictionaries for 4.0.3, 4.0.4, 4.1, 4.1.1, and 4.2generated/contains optional derived JSON outputs produced from the reference datasyntaxes/contains the TextMate grammar for AGS syntax highlightingscripts/contains helper scripts for reference generation and file linting.changeset/contains pending release notes and Changesets configuration.github/workflows/contains CI and release automation
Install dependencies:
npm ciRun the test suite:
npm testRebuild the generated reference JSON:
npm run build-referencesCreate a changeset for a pull request that changes shipped behavior or release output:
npm run changesetBuild a private VSIX artifact and checksum:
npm run package:vsixCreate a local release build with an automatic version bump:
npm run release:localThis defaults to a patch bump. You can also use npm run release:local -- minor, npm run release:local -- major, or npm run release:local -- 0.2.0.
Run the release verification flow locally:
npm run release:verifyTo run the extension in VS Code, open this repo in VS Code and start the existing Run AGSLint Extension launch configuration from .vscode/launch.json.
This repo now packages AGSLint as a private .vsix and uses Changesets to manage version bumps and changelog updates.
- VSIX packaging is handled by
@vscode/vsce - packaged artifacts are written to
dist/ - release notes are tracked through
.changeset/*.md CHANGELOG.mdis the release history source of truth- GitHub is set up for automated release PRs and tagged releases from
main - local fallback release steps are documented in RELEASING.md
Implemented diagnostics are documented in DIAGNOSTICS.md.
- The extension is intentionally packaged for private VSIX distribution, not Marketplace publishing
- Plain VSIX distribution does not provide VS Code Marketplace-style in-product auto-update
- Reference data is sourced from files committed under
ref/ generated/is rebuildable helper output, not the primary runtime source of truth- Packaging and changelog automation assume the configured CI platform is available for workflow execution