Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

208
Vistas
Ampliación del resaltado de sintaxis de VSCode Markdown para que coincida con el código Javascript anidado

Estoy tratando de extender el resaltador de sintaxis Markdown de VSCode para resaltar algunos Javascript anidados envueltos en una sintaxis personalizada. Por ejemplo, el siguiente archivo Markdown

 # Example @@$ var value = 10; The result is @@{value}.

se convertiría en

 # Example The result is 10.

Me gustaría que lo siguiente se resalte como Javascript en VSCode, como si estuvieran envueltos en un bloque de código cercado:

  • El contenido de una línea que comienza con @@$ .

  • El contenido envuelto entre @@{ y } .

Intenté modificar markdown.tmLanguage.json para agregar estos:

 "fenced_code_block_majsdown2": { "begin": "(^|\\G)(@@$)", "name": "markup.fenced_code.block.markdown", "end": "(^|\\G)(\\r\\n|\\r|\\n)\\s*$", "patterns": [{ "include": "source.js" }] }, "fenced_code_block_majsdown": { "begin": "(^|\\G)(@@{)", "name": "markup.fenced_code.block.markdown", "end": "(^|\\G)(})\\s*$", "patterns": [{ "include": "source.js" }] },

El código se resalta correctamente, pero parece que se ignora el bit "end" y no entiendo por qué: a partir de @@$ o @@{ , todo el documento se resalta como Javascript. Probé varias combinaciones de expresiones regulares e intenté eliminar la parte inicial ( (^|\\G) ), pero no pude entender por qué el resaltador es tan codicioso.

¿Cómo puedo lograr mi objetivo deseado?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Terminé resolviendo el problema de esta manera:

 { "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "Majsdown", "patterns": [ { "include": "#majsdown_inject_expression" }, { "include": "#majsdown_execute_statement" }, { "include": "text.html.markdown" } ], "repository": { "majsdown_inject_expression": { "begin": "(.*?)(@@\\{)", "name": "test", "end": "(\\})", "beginCaptures": { "2": { "name": "keyword.control.majsdown" } }, "endCaptures": { "1": { "name": "keyword.control.majsdown" } }, "patterns": [ { "include": "source.js" } ] }, "majsdown_execute_statement": { "begin": "(.*?)(@@\\$)", "name": "test", "end": "(\\r\\n|\\r|\\n)", "beginCaptures": { "2": { "name": "keyword.control.majsdown" } }, "patterns": [ { "include": "source.js" } ] } }, "scopeName": "source.majsdown" }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda