editor-syntaxes

Synchronize Dang syntax definitions across VSCode, Zed, and Neovim.

23|9|Updated Jul 13, 2025
One-click install
npx skills add https://github.com/vito/dang --skill editor-syntaxes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: editor-syntaxes
Source: https://github.com/vito/dang/tree/main/.agents/skills/editor-syntaxes
Command: npx skills add https://github.com/vito/dang --skill editor-syntaxes

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Dang syntax definitions must stay in sync across three editors whenever the language grammar changes, preventing drift between VSCode, Zed, and Neovim.

Core Features & Use Cases

  • VSCode: editors/vscode/syntaxes/dang.tmLanguage.json — TextMate grammar; keywords are defined in a keyword-control pattern as a regex.
  • Zed: editors/zed/languages/dang/highlights.scm — tree-sitter highlights; submodule pointing to https://github.com/vito/zed-dang; update the submodule pointer after committing inside the submodule.
  • Neovim: editors/nvim/queries/dang/highlights.scm — tree-sitter highlights; submodule pointing to https://github.com/vito/dang.nvim; update the submodule pointer after committing inside the submodule.
  • Tree-sitter highlights: Zed and Neovim versions are nearly identical but use different capture names; update both when grammar changes.
  • Checklist: Committing steps involve first updating submodules, then committing pointers in the parent, and finally updating the parent repository.

Quick Start

Update all three editor syntax definitions in a coordinated change and commit the updated submodule pointers in the parent repository.

Frequently Asked Questions about editor-syntaxes

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I keep syntax highlighting consistent across VSCode, Zed, and Neovim?

To keep syntax highlighting consistent across VSCode, Zed, and Neovim, update Dang grammar definitions across TextMate files and tree-sitter queries, then commit submodule pointers in the parent repository to prevent editor drift.

What is the correct workflow for updating tree-sitter submodules in editor plugins?

Updating tree-sitter submodules requires committing grammar changes inside the submodule first, then updating the submodule pointer in the parent repository, and finally committing the parent repository to validate cross-editor consistency.

Do Zed and Neovim use the same tree-sitter highlight capture names?

Zed and Neovim tree-sitter highlights are nearly identical but use different capture names. When grammar changes occur, you must update both highlight files to maintain consistent syntax definitions across editors.

How do I update Dang language grammar in VSCode?

To update Dang language grammar in VSCode, modify the TextMate grammar file at editors/vscode/syntaxes/dang.tmLanguage.json, defining keyword-control patterns as regex, and commit the changes to sync with other editors.

Why do my syntax definitions drift between editors after a grammar update?

Syntax definitions drift between editors after a grammar update when submodule pointers are not updated in the parent repository. You must commit changes inside the submodule first, then update and commit the pointer in the parent repository.