Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

209
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda