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.

Informações da origem

Repositório
jmacdonald/amp
Última atividade na origem
4 de abril de 2026 às 21:23
Idioma detectado do SKILL.md
inglês
Estrelas
4.131
Forks
111

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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.
Ver no GitHub