Docs · ide/textmate
VS Code
El módulo ide/textmate del repositorio
JonDotsoy/don contiene una gramática TextMate y su configuración de lenguaje. Sirve para VS
Code, Kiro o cualquier editor que consuma gramáticas TextMate, y da resaltado
de sintaxis a los archivos
.don y
.donly.
Instalación
La extensión se publica en el Marketplace como jondotsoy.don-textmate.
$ code --install-extension jondotsoy.don-textmate
También puedes usar la carpeta como extensión sin empaquetar o copiarla en
~/.vscode/extensions/.
Qué incluye
-
don.tmLanguage.jsonGramática TextMate (scopeName: source.don). -
language-configuration.jsonComentarios, pares de corchetes, cierre automático y patrón de palabra. -
package.jsonManifiesto de la extensión: registra el lenguaje don para .don y .donly. -
samples/Documentos de ejemplo para probar la gramática. -
scripts/validate-grammar.tsValidación estructural de la gramática. -
tests/unit/*.test.donPruebas de scopes con vscode-tmgrammar-test.
Scopes
La gramática cubre directivas, bloques, identifiers, strings, números (entero, decimal, hex, octal, binario y bigint), booleanos, null, heredocs y comentarios.
| Scope | Elemento |
|---|---|
| entity.name.function.directive.don | Nombre de la directiva |
| variable.parameter.don | Argumentos sin comillas (identifiers) |
| string.quoted.double.don / string.quoted.single.don | Strings |
| constant.character.escape.don | Secuencias de escape (\" y \') |
| constant.numeric.{integer,decimal,hex,octal,binary,bigint}.don | Números |
| constant.language.boolean.don | true y false |
| constant.language.null.don | null |
| keyword.operator.heredoc.don | El operador <<< |
| entity.name.tag.heredoc-descriptor.don | Delimitador del heredoc |
| string.unquoted.heredoc.don | Contenido del heredoc |
| punctuation.section.block.{begin,end}.don | Llaves { y } |
| comment.line.number-sign.don / comment.block.don | Comentarios # y /* */ |
Configuración del lenguaje
-
Comentarios: línea con
#y bloque con/* */. -
Pares de corchetes:
{ }y[ ]. - Cierre automático y envoltura de selección para llaves, corchetes y comillas dobles y simples.
Validación y pruebas
Desde la raíz del repositorio, la validación estructural revisa que el JSON sea válido, que cada expresión regular compile y que la regla de nombre de directiva coincida con los ejemplos:
$ bun ide/textmate/scripts/validate-grammar.ts
Las pruebas de scopes usan el motor real vscode-textmate y comprueban las aserciones de cada archivo tests/unit/*.test.don:
$ cd ide/textmate
$ bun install
$ bunx vscode-tmgrammar-test 'tests/unit/**/*.test.don' Publicación
Se empaqueta y publica con @vscode/vsce:
$ bunx vsce package
$ bunx vsce publish --pat "$VSCE_PAT"
Un workflow de CI automatiza la publicación: valida la gramática, empaqueta
el .vsix, lo publica y lo adjunta al release
textmate-v<version>. Se omite si ese
release ya existe y requiere el secreto VSCE_PAT.
Ejemplo
# Comentario
name "my-application"
port 0x1F90
enabled true
server {
host 'example.com'
banner <<<TEXT
Welcome
}