VS Code 1.51 lanzado con mejoras en las pestañas ancladas y más
Visual Studio Code es una aplicación popular para desarrolladores. Es un editor de código redefinido y optimizado para crear y depurar aplicaciones web y en la nube modernas. VS Code viene con una variedad de extensiones y ayudantes que realmente ahorran tiempo. Está disponible para todas las plataformas principales, incluidas Windows, MacOS y Linux. Microsoft lanzó hoy una nueva versión de la aplicación que trae mejoras a varias funciones de la aplicación, incluidas pestañas ancladas, integración de GitHub y mucho más.
VS Code 1.51 se destaca por los siguientes cambios.
Nota: Puede descargar la aplicación desde su sitio web oficial.
Banco de trabajo
Pestañas fijadas más prominentes
Las pestañas ancladas ahora siempre mostrarán su ícono de pin, incluso cuando estén inactivas, para que sean más fáciles de identificar. Si un editor está anclado y contiene cambios sin guardar, el icono refleja ambos estados.
Los árboles de extensión usan un desplazamiento personalizado
En lugar de usar la información sobre herramientas nativa en las vistas del árbol de extensiones, ahora usamos un hover personalizado que es coherente entre plataformas y se adapta mejor a la UX general.
Instalar una extensión sin sincronizar
Ahora puede instalar una extensión sin sincronizarla mientras la sincronización de configuración está habilitada.
Tema: Luz de GitHub
Instalar una extensión de Explorer
VS Code ahora admite la instalación de un archivo VSIX de extensión desde el Explorador haciendo clic con el botón derecho en un archivo VSIX y eligiendo el Instalar la extensión VSIX elemento del menú contextual.
Comando de desenfoque de entrada
Un nuevo interno workbench.action.blur
El comando ahora está disponible, que quita el foco de cualquier entrada enfocable. Puede asignar un método abreviado de teclado para este comando en el Preferencias de métodos abreviados de teclado.
Terminal integrado
Eco local
Hacer modificaciones en la terminal tradicionalmente requiere que la información se envíe al proceso de la terminal, se procese y se devuelva a VS Code para que se vea afectada. Esto puede ser lento cuando se trabaja en una conexión deficiente o distante a un Servidor SSH o Espacio de codigo.
Esta versión agrega un modo de "eco local" al terminal, que intenta predecir las modificaciones y los movimientos del cursor realizados localmente y mostrarlos en la interfaz de usuario sin requerir un viaje de ida y vuelta al servidor. De forma predeterminada, los caracteres predichos se muestran "atenuados":
Hay dos configuraciones que puede usar para configurar esto:
-
terminal.integrated.localEchoLatencyThreshold
configura el umbral de retardo detectado, en milisegundos, en el que se activará el eco local. Esto se puede configurar para0
para activar la función todo el tiempo, o-1
para deshabilitarlo. Predeterminado a30
. -
terminal.integrated.localEchoStyle
configura el estilo o color del carácter local, por defecto esoscuro
.
IntelliSense
Sugerencias de tamaño variable
En este hito, hemos realizado varias mejoras en la interfaz de usuario de sugerencias. En primer lugar, ahora se puede cambiar de tamaño. Arrastre los lados o las esquinas para cambiar el tamaño del control.
Tema: Luz de GitHub, Fuente: FiraCode
El tamaño de la lista de sugerencias se guardará y restaurará a lo largo de las sesiones. El tamaño del panel de detalles solo se guarda por sesión, ya que ese tamaño tiende a ser más variable. También el editor.suggest.maxVisibleSuggestions
la configuración se ha vuelto obsoleta.
Barra de estado para sugerencias
El control de sugerencias ahora también puede mostrar su propia barra de estado en la parte inferior de la ventana. Habilítelo usando el editor.suggest.showStatusBar
configuración. Simplifica la alternancia de detalles y muestra si una terminación admite la inserción, el reemplazo o ambos.
Tema: Luz de GitHub, Fuente: FiraCode
En el ejemplo anterior, seleccionar "Insertar" da como resultado Math.floorceil
y seleccionar "Reemplazar" da como resultado Math.floor
.
El nuevo editor.suggest.insertMode
El ajuste le permite configurar si prefiere insertar o reemplazar. Cuando una sugerencia admite ambos, su preferencia será la predeterminada.
Mueva el cursor para seleccionar sugerencias
Por último, pero no menos importante, ahora puede mover el cursor mientras se muestran las sugerencias. Por ejemplo, puede activar sugerencias al final de una palabra, moverse hacia la izquierda para ver más sugerencias y luego usar reemplazar para sobrescribir la palabra.
Tema: Luz de GitHub
Hormiga
Los fragmentos personalizados en Emmet están de vuelta. Además, los fragmentos ahora se actualizan automáticamente al guardar el archivo de fragmentos o al actualizar el emmet.extensionsPath
configuración.
Fuente de control
El cuadro de entrada de control de fuente guarda el historial de mensajes de confirmación
Esto se dirige a solicitud de función para navegar por el historial de confirmaciones de SCM. prensa ↑ (Windows, Linux Hasta) y ↓ (Windows, Linux Abajo) para mostrar las confirmaciones anteriores y siguientes, respectivamente. Para moverse directamente a la primera y última posición del cuadro de entrada, presione Alt junto con la tecla de flecha correspondiente.
Git: comandos de etiqueta en el submenú
Los comandos de Git relacionados con etiquetas se han agregado al ... Menú de Git.
Git: comando Rebase
Un nuevo Git: rama de Rebase ... Se ha agregado un comando que le permite reajustar una rama usando la interfaz de usuario.
Git: comando de clonación recursiva
Con el Git: Clon (recursivo) comando, ahora puede clonar de forma recursiva repositorios de Git, incluidos sus submódulos de Git anidados.
Línea de tiempo: representación de código corto de Emoji
Ahora renderizamos códigos cortos de emoji, como :sonrisa:
, en la vista de línea de tiempo.
Idiomas
Selección inteligente de Markdown
Expanda y reduzca la selección en los documentos de Markdown usando los siguientes comandos nuevos:
- Expandir: ⌃⇧⌘→ (Windows, Linux Mayús + Alt + Derecha)
- Encogerse: ⌃⇧⌘← (Windows, Linux Mayús + Alt + Izquierda)
La selección se aplica a lo siguiente y sigue un patrón jerárquico tradicional:
- Encabezados
- Liza
- Cotizaciones en bloque
- Bloques de código cercados
- Bloques de código HTML
- Párrafos
Opción de formato de llave vacía para JavaScript y TypeScript
El nuevo javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
y typecript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces
La opción de configuración de formato controla si se insertan espacios entre llaves vacías. El valor predeterminado de esta configuración es verdadero. Por ejemplo, para JavaScript:
clase Foo {doFoo () {} }
Configuración "javascript.format.insertSpaceAfterOpeningAndBeforeClosingEmptyBraces": falso
y formatear el código da como resultado:
class Foo {doFoo () {} // Observe que el espacio ha sido eliminado. }
Soporte del navegador
Descargar carpetas (Edge, Chrome)
Aprovechando lo nuevo Acceso al sistema de archivos API, VS Code que se ejecuta en un navegador ahora puede ofrecer una acción de descarga para carpetas desde el Explorador de archivos para descargar todos los archivos y carpetas al disco.
Nota: Esto requiere una versión reciente de Microsoft Edge o Google Chrome.
Notificación de espacio de trabajo abierto
Si abre una carpeta que contiene .code-espacio de trabajo
archivos en el nivel superior, ahora verá una notificación pidiéndole que lo abra. Este fue siempre el caso en VS Code para escritorio, y ahora también funcionará en el navegador.
Evitar el cierre accidental
Un nuevo escenario window.confirmBeforeClose
se agregó para mostrar un cuadro de diálogo de confirmación antes de cerrar o salir del banco de trabajo.
Los posibles valores son:
-
keyboardOnly
La confirmación solo se mostrará cuando utilice una combinación de teclas para cerrar (por ejemplo, ⌘W (Windows, Linux Ctrl + W)). (defecto) -
siempre
: El cuadro de diálogo de confirmación siempre se mostrará, incluso si cierra con un gesto del mouse. -
Nunca
: La confirmación nunca se mostrará.
Nota: Es posible que esta configuración no cubra todos los casos. Los navegadores aún pueden decidir cerrar una pestaña o ventana sin confirmación.
Contribuciones a extensiones
Problemas y solicitudes de extracción de GitHub
El trabajo continúa en el Problemas y solicitudes de extracción de GitHub extensión, que le permite trabajar, crear y administrar solicitudes de extracción y problemas.
Para conocer todas las nuevas funciones y actualizaciones, puede ver el registro de cambios para 0.22.0 liberación de la extensión.
Desarrollo Remoto
El trabajo continúa en el Extensiones de desarrollo remoto, que le permiten utilizar un contenedor, una máquina remota o el Subsistema de Windows para Linux (WSL) como un entorno de desarrollo con todas las funciones.
Las características destacadas en 1.51 incluyen:
- Posibilidad de persistir / reconectarse a sesiones de terminal.
- Experiencia de reenvío de puertos mejorada.
Puede obtener información sobre las nuevas funciones de extensión y las correcciones de errores en el Notas de la versión de desarrollo remoto.
Funciones de vista previa
Las funciones de vista previa no están listas para su lanzamiento, pero son lo suficientemente funcionales para su uso. Agradecemos sus primeros comentarios mientras están en desarrollo.
Sincronización de configuración
La sincronización de configuración ahora sincroniza el estado global de las extensiones. Las extensiones deberán proporcionar el estado para sincronizar utilizando el recién introducido setKeysForSync API.
Recuerde las credenciales de proxy
Estamos revisando el cuadro de diálogo de inicio de sesión que muestra cuando una conexión de red requiere autenticación con un proxy. Un nuevo escenario window.enableExperimentalProxyLoginDialog: true
, habilitará esta nueva experiencia que planeamos convertir en predeterminada en una versión futura.
Tema: Luz de GitHub
El cuadro de diálogo aparecerá dentro de la ventana de VS Code y ofrecerá una forma de recordar las credenciales para que no tenga que proporcionarlas cada vez que inicie VS Code. Las credenciales se almacenarán en el almacén de credenciales estándar del sistema operativo (llavero en macOS, Windows Credential Manager en Windows y llavero gnome en Linux).
Seguimos mostrando este cuadro de diálogo una vez por sesión, pero es posible que revisemos esta decisión en el futuro. Verá que el cuadro de diálogo aparece nuevamente en caso de que las credenciales que seleccionó para recordar no sean válidas. Proporcionarlos de nuevo le permite cambiarlos.
Habilite esta opción y avísenos si algo no funciona como se esperaba a través de nuestro rastreador de problemas.
Compatibilidad con TypeScript 4.1 beta
VS Code es compatible con TypeScript 4.1 beta y construcciones nocturnas. La actualización 4.1 trae algunas características nuevas del lenguaje TypeScript, como soporte para tipos condicionales recursivos, así como mejoras en las herramientas. Un área de enfoque ha sido agregando soporte inicial por @ver
etiquetas en los comentarios JSDoc.
Para comenzar a usar las compilaciones nocturnas de TypeScript 4.1, simplemente instale el Extensión TypeScript Nightly. Comparta sus comentarios y avísenos si encuentra algún error con TypeScript 4.1.
Creación de extensiones
Muestras de extensión actualizadas
Hemos actualizado algunos de nuestros muestras de extensión para incluir estilos predeterminados de VS Code que están conectados a nuestros tokens de tema de color. Esto significa que los elementos comunes (texto, botones, entradas) serán temáticos y coincidirán con los estilos predeterminados del producto. A continuación se muestran las extensiones que incluyen esto:
- muestra-editor-personalizado
- muestra-webview
- webview-view-sample
Colores codicón en árboles
Con la finalización del ThemeIcon
API de color, los autores de extensiones pueden usar colores de tema en codicones en vistas de árbol personalizadas.
Sincronizar estado global
Las extensiones ahora pueden sincronizar su estado global al proporcionar las claves, cuyos valores deben sincronizarse cuando la sincronización de configuración está habilitada, utilizando el recién introducido setKeysForSync
API en globalState
recuerdo.
/ ** * Establezca las claves cuyos valores deben sincronizarse entre dispositivos al sincronizar datos de usuario * como configuración, extensiones y recuerdos. * * Tenga en cuenta que esta función define todo el conjunto de claves cuyos valores están sincronizados: * - llamarlo con una matriz vacía detiene la sincronización para este recuerdo * - llamarlo con un La matriz no vacía reemplaza todas las claves cuyos valores están sincronizados * * Para cualquier conjunto de claves dado, esta función necesita ser llamada solo una vez pero no hay daño en * llamarla repetidamente. * * @param keys El conjunto de claves cuyos valores están sincronizados. */ setKeysForSync (claves: cadena []): void;
Comentario Las extensiones ahora pueden controlar la visibilidad del botón de respuesta en un hilo de comentarios con una nueva propiedad, CommentThread # canReply
. Cuando está configurado para falso
, los usuarios no verán el botón de respuesta o el cuadro de comentarios en el hilo de comentarios.
API de extensión propuestas
Cada hito viene con nuevas API propuestas y los autores de extensiones pueden probarlas. Como siempre, queremos sus comentarios. Esto es lo que debe hacer para probar una API propuesta:
- Debe utilizar Insiders porque las API propuestas cambian con frecuencia.
- Debe tener esta línea en el
package.json
archivo de su extensión:"enableProposedApi": verdadero
. - Copie la última versión del
vscode.proposed.d.ts
archivo en la ubicación de origen de su proyecto.
No puede publicar una extensión que utilice una API propuesta. Puede haber cambios importantes en la próxima versión y nunca queremos romper las extensiones existentes.
Los proveedores de gama plegable cambian de evento
Los proveedores de rangos plegables pueden indicar al editor que los rangos plegables deben actualizarse utilizando el onDidChangeFoldingRanges
evento.
Para obtener más detalles y enviar comentarios, utilice edición # 108929.
API de contraseña
Como parte del trabajo continuo en Proveedores de autenticación, hemos introducido API para almacenar y recuperar información confidencial. Internamente, esto actúa como un envoltorio del keytar biblioteca que VS Code usa para almacenar secretos.
/ ** * Recupera una contraseña que se almacenó con key. Devuelve undefined si * no hay una contraseña que coincida con esa clave. * @param key La clave en la que se almacenó la contraseña. */ función de exportación getPassword (clave: cadena): Thenable; / ** * Almacena una contraseña bajo una clave determinada. * @param key La clave para almacenar la contraseña en * @param value La contraseña * / función de exportación setPassword (clave: cadena, valor: cadena): Thenable; / ** * Eliminar una contraseña del almacenamiento. * @param key La clave en la que se almacenó la contraseña. */ función de exportación deletePassword (clave: cadena): Thenable; / ** * Se activa cuando se establece o elimina una contraseña. */ export const onDidChangePassword: Evento;
Ingenieria
Hacer que los tipos de confianza de VS Code sean compatibles
Hemos continuado el esfuerzo para que VS Code sea compatible con los "tipos de confianza". El objetivo es evitar vulnerabilidades de secuencias de comandos de sitios cruzados basadas en DOM. Puede obtener más información sobre los tipos de confianza en web.dev Sitio de Trusted Types y sigue nuestro progreso en edición # 103699.