This repo contains the grammar for the replace-this-with-the-track-name language. The repo comes with a tiny grammar that shows some basic grammar that you can tweak for your purposes.
"@codemirror/language": "^6.10.1",
"@lezer/highlight": "^1.2.0",
"@lezer/lr": "^1.4.0"
- NPM:
npm install @exercism/codemirror-lang-replace-this-with-the-track-slug
- Yarn:
yarn add @exercism/codemirror-lang-replace-this-with-the-track-slug
- Bun:
bun add @exercism/codemirror-lang-replace-this-with-the-track-slug
The repo's source files are defined in TypeScript.
The repo is structured as follows:
.
├── src
│ ├── index.ts (the main plugin)
│ ├── syntax.grammar (the Lezer grammar)
│ └── syntax.grammar.d.ts (the grammar typings)
├── test
│ ├── cases (test cases)
│ │ └ *.txt (test case)
│ └── grammar.test.ts (test file)
├── index.html (dev server file)
├── rollup.config.js (bundling config)
├── tsconfig.json (typescript confif)
└── vite.config.js (vite dev server config)
Run bun install
to install all dependencies.
To help with development, run bun run dev
.
This will start a Vite dev server (usually at http://localhost:5173/) that renders the index.html
file.
The #editor
element gets populated with some sample source code of your choosing and then it will get transformed by the grammar defined in src/syntax.grammar
.
Any changes to the grammar will auto-refresh the dev server's rendered contents.
The test/cases
directory contains the tests files.
Run bun test
to run these tests.
Note: test (case) files should be relatively small and focus on a single aspect of a grammar.
Run bun publish
to publish the plugin to NPM.