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.

معلومات المصدر

المستودع
jmacdonald/amp
آخر نشاط في المصدر
٤ أبريل ٢٠٢٦ في ٢١:٢٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤٬١٣١
التفرعات
١١١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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.
عرض على GitHub