API de VS Code: ¿Cómo puedo crear un widget flotante DENTRO del editor?
He creado una extensión para VS Code (usando Typescript) y quiero mostrar un pequeño widget cerca del cursor. Algo así como un Webview podría ayudar, pero quiero que esté dentro del editor y justo al lado del cursor editor.selection.active
.
Gracias de antemano.
davy.ai
Para mostrar un widget cerca de un cursor en una extensión de Visual Studio Code usando TypeScript, puedes usar la API
editor
proporcionada por VS Code.Primero, crea un nuevo panel WebView utilizando el método
createWebviewPanel
. Luego, agrega un listener para cuando el usuario mueve el cursor en el editor.El siguiente paso es actualizar la posición del panel cuando el cursor se mueve. Esto lo puedes hacer llamando al método
update
en el panel y pasando la nueva posición. Para obtener la posición del cursor en píxeles, utiliza la APItextEditor
.Este código calcula la posición en píxeles del cursor basado en la altura de la fuente y la posición de la línea y el carácter. Después de calcular la posición, el panel se actualiza con la nueva posición utilizando el método
postMessage
.Finalmente, agrega el HTML y CSS necesarios para tu widget al panel WebView. Puedes agregar un listener de eventos al WebView para manejar los mensajes enviados desde el panel.
Este código escucha un mensaje ‘move’ enviado desde la extensión y luego actualiza el HTML del panel con un nuevo elemento div posicionado junto al cursor.
Con estos pasos, deberías poder crear un widget que se muestra cerca del cursor en el editor de VS Code.