Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

260
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!