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

290
Vistas
¿Cómo obtener un rango de palabras personalizadas en mi extensión de código VS?

Quiero obtener el rango de una palabra personalizada en mi extensión de VS Code, si paso el mouse sobre ella y si la línea de texto coincide con un patrón. Esto es lo que he escrito hasta ahora:

 vscode.languages.registerHoverProvider('.mylanguage', { provideHover(document, position, token) { // define `hoverRange` somewhere here const hoverLineText = document.lineAt(position.line).text; const pattern = new RegExp("\\w+\\s{0,}\\(.{0,}\\s{0,}\\)"); if(pattern.test(hoverLineText)){ hoverRange = document.getWordRangeAtPosition(position, pattern); } console.log(hoverRange); //etc. ...

Espero que, si escribe en el editor algo como myFunction ( ) , y pasa el mouse sobre cualquier posición de esa cadena (por ejemplo, incluso en el espacio en blanco), la consola generará hoverRange , que tendrá en cuenta la posición del cierre paréntesis ) , también.

Sin embargo, si paso el mouse sobre el espacio en blanco, no se envía nada a la consola. En su lugar, necesito desplazarme sobre myFunction para poder obtener el rango completo de la cadena.

¿Cómo puedo hacer que mi extensión de VS Code trate myFunction ( ) como una sola palabra?

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

0

Esto funciona para mí:

 let disposable3 = vscode.languages.registerHoverProvider('plaintext', { provideHover(document, position) { let hoverRange; const hoverLineText = document.lineAt(position.line).text; const pattern = new RegExp("\\w+\\s*\\(.*\\s*\\)"); if (pattern.test(hoverLineText)){ hoverRange = document.getWordRangeAtPosition(position, pattern); if (hoverRange) return new vscode.Hover(document.getText(hoverRange), new vscode.Range(position, position)); else return null; } else return null; } }); context.subscriptions.push(disposable3);

Como puede ver, el desplazamiento funciona sobre espacios. Pero la expresión regular es demasiado indulgente para que recoja cosas como

if (asdasdasd)
while(adasd)

ya que también parecen llamadas a una función.

flotar con rango

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