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

268
Visualizações
Extensión Vscode: cómo implementar una función de desplazamiento para agregar argumentos a los comandos, por ejemplo, para ejecutar el comando de búsqueda con consulta

Estoy tratando de desarrollar un botón personalizado en la función de desplazamiento de vscode. Es decir, si hago clic en el botón de acceso directo, irá a la barra lateral de búsqueda y tendrá una búsqueda de consulta específica. Consulte las dos imágenes que se cargan.

Botón de búsqueda flotante

Cambio en la barra lateral de resultados

En forma de comando vscode, el código de extensión se verá así. (Esto funciona bien, excepto que requiere ejecutarse desde la paleta de comandos)

 let disposable = vscode.commands.registerCommand('test-hover.helloWorldSearch', () => { var word = "i_want_to_search"; const searchOptions = { query: word, }; vscode.commands.executeCommand('workbench.action.findInFiles', searchOptions); }); context.subscriptions.push(disposable);

Después de eso, me convierto en hover usando vscode.languages.registerHoverProvider, y el código se ve así:

 let disposable1 = vscode.languages.registerHoverProvider('javascript', { provideHover(document, position, token) { var word = "i_want_to_search"; const searchOptions = { query: word, }; const commentCommandUri = vscode.Uri.parse(`command:workbench.action.findInFiles`); const contents = new vscode.MarkdownString(`[Search String](${commentCommandUri})`); contents.isTrusted = true; return new vscode.Hover(contents); } }); context.subscriptions.push(disposable1);

Este código es capaz de navegar por la barra lateral para buscar en el archivo PERO sin ninguna búsqueda de consulta. El problema es que no puedo pasar "opciones de búsqueda" al comando si estoy usando "vscode.Uri.parse". ¿Hay alguna otra forma de hacer la misma acción que el código anterior pero capaz de pasar la opción de búsqueda? He intentado buscar muchos ejemplos diferentes en Internet, pero la mayoría solo sale para ejecutar el comando sin la opción de búsqueda.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Los argumentos de su comando deben agregarse como una cadena codificada, como se muestra en command-uris .

 const searchCommandUri = vscode.Uri.parse( `command:workbench.action.findInFiles?${encodeURIComponent(JSON.stringify(searchOptions))}` ); const contents = new vscode.MarkdownString(`[Search String](${searchCommandUri})`);

Si desea obtener la palabra sobre la que se desplaza, pruebe este código:

 const word = document.getText(document.getWordRangeAtPosition(position));

Ahora su botón flotante "Buscar cadena" buscará la palabra sobre la que se está desplazando.

Luego cambie el texto: "Cadena de búsqueda" a la palabra real que buscará:

 const contents = new vscode.MarkdownString(`[Search: ${word}](${searchCommandUri})`);

desplace el cursor con una demostración del botón de búsqueda

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