Skip to main content

syntax-definition

Create or update a Sublime Text 3 compatible `.sublime-syntax` grammar in the repository `syntaxes/` directory when asked for a specific language or format such as JSON, TypeScript, Elm, or Dockerfile.

Quellinformationen

Repository
jmacdonald/amp
Letzte Quellaktivität
4. April 2026 um 21:23
Erkannte Sprache von SKILL.md
Englisch
Sterne
4.131
Forks
111

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
syntax-definition
description
Create or update a Sublime Text 3 compatible `.sublime-syntax` grammar in the repository `syntaxes/` directory when asked for a specific language or format such as JSON, TypeScript, Elm, or Dockerfile.
# Syntax Definition Use this skill when asked to create or update a syntax definition for a named language or file format. ## Goal Create or update exactly one grammar file in the repository top-level `syntaxes/` directory: - `syntaxes/<Language>.sublime-syntax` Also create or update one fixture/expectations pair under `tests/fixtures/syntaxes/<language>/`: - `<sample>.<ext>` - `<sample>.<ext>.tokens.yml` Examples: - `JSON` -> `syntaxes/JSON.sublime-syntax` - `TypeScript` -> `syntaxes/TypeScript.sublime-syntax` - `Elm` -> `syntaxes/Elm.sublime-syntax` - `Dockerfile` -> `syntaxes/Dockerfile.sublime-syntax` If a matching file already exists, update it instead of creating a duplicate. ## Required Constraints - Only produce Sublime Text 3 compatible grammars. - Do not use Sublime Text 4+ only syntax features. - Keep the file as YAML with the usual `.sublime-syntax` structure. - Do not write the grammar anywhere except the top-level `syntaxes/` directory unless the user explicitly asks for something else. - Keep syntax regression fixtures under `tests/fixtures/syntaxes/`. When compatibility is uncertain, prefer conservative syntax features: - `%YAML 1.2` - `name` - `file_extensions` - `scope` - `variables` - `contexts` - `match` - `captures` - `scope` - `push` - `set` - `pop` - `include` - `meta_scope` - `meta_content_scope` ## Workflow 1. Identify the requested language or format name. 2. Inspect nearby files in `syntaxes/` to match the repository's existing style and naming conventions. 3. Create a practical first-pass grammar with the core building blocks for that language: - comments - strings - numbers - keywords - operators or punctuation - identifiers 4. Add one representative sample file under `tests/fixtures/syntaxes/<language>/`. 5. Add a YAML expectations file named `<sample>.<ext>.tokens.yml` with: - `buffer_path`: the virtual filename used to select the syntax - `expectations`: an ordered list of critical `(text, scope)` checks 6. Run `cargo test syntaxes` to test and fix issues with the generated/updated syntax. ## Output guidelines ### For generated/updated syntaxes - Use a stable top-level scope such as `source.<language>` or `text.<format>` as appropriate. - Keep contexts readable and modular rather than over-optimizing the grammar. - If the language details are incomplete, make the smallest reasonable set of assumptions and state them briefly. - The resulting syntax file should be directly usable by the repository's syntax-loading code. - Prefer correctness and compatibility over advanced grammar tricks. ### For syntax fixtures - Use critical-scope expectations only; do not snapshot every token unless the user explicitly asks for exhaustive coverage. - The fixture should be directly usable by the repository's `scribe::Workspace.current_buffer_tokens()` test harness.
Auf GitHub ansehen