Desactivar el completado automático en Visual Studio Code

Aunque Visual Studio code, o más conocido como VSCode, ofrece multitud de herramientas automáticas para mejorar la experiencia mientras escribimos código algunas de estas herramientas pueden provocar conflictos con algunos productos de apoyo.

Es el caso de la herramienta de completado automático de código.

Esta herramienta muestra una ventana emergente que provoca conflictos con el foco de lectura de los lectores de pantalla provocando que se interrumpa la experiencia de introducción de código por parte del usuario.

Por suerte para los usuarios de lectores de pantalla esta herramienta se puede desactivar su aparición automática y los usuarios de lectores de pantalla pueden acceder al panel de sugerencias de completado de código de forma manual.

Editando la configuración de VSCode en JSON

Los ficheros de preferencias y configuración de VSCode están en formato JSON por lo que es sencillo su modificación.

Para acceder a nuestro fichero de configuración de VSCode sólo debemos seguir estos pasos:

  • Abrir VSCode
  • Pulsar la tecla F1 para acceder al asistente de ejecución de comandos de VSCode
  • En el cuadro de búsqueda escribir «preferencias json»  y elegir la opción Preferencias: Abrir configuración de usuario (JSON)Preferences: Open User Settings (JSON)

En VSCode aparecerá un fichero de texto con nuestras preferencias en formato JSON. Deberá ser algo parecido a esto:

{
  "editor.accessibilitySupport": "on",
  "workbench.startupEditor": "newUntitledFile",
  "workbench.activityBar.visible": false,
  "workbench.statusBar.visible": false,
  "editor.minimap.enabled": false,
  "workbench.editor.untitled.hint": "hidden",
  "breadcrumbs.enabled": false
}

Debemos incluir las opciones relacionadas con el completado automático de código.

La opción de editor.quickSuggestions controla si se debe abrir las sugerencias de completado mientras se escribe. Su formato es:

"editor.quickSuggestions": { "other": false, "comments": false, "strings": false },

La opción de editor.acceptSuggestionOnEnter controla si se deben aceptar las sugerencias automáticas pulsando la tecla enter. Es recomendable desactivar esta opción para que no haya forma de aceptar una sugerencia de forma involuntaria.

Su formato es:

"editor.acceptSuggestionOnEnter": "off",

La opción editor.quickSuggestionsDelay controla el tiempo de pausa que habrá para que aparezca una sugerencia en el código. Se recomienda un tiempo superior a 5 segundos si no queremos que haya posibilidad de cualquier sugerencia de forma automática. Su formato es:

"editor.quickSuggestionsDelay": 10,

La opción editor.wordBasedSuggestions activa un sistema de sugerencias por palabras. Es recomendable desactivar esta opción. 

Su formato es:

"editor.wordBasedSuggestions": false

Finalmente el código de nuestro JSON deberá quedar de la siguiente forma:

{
  "editor.accessibilitySupport": "on",
  "editor.quickSuggestions": {
    "other": false,
    "comments": false,
    "strings": false
  },
  "editor.acceptSuggestionOnEnter": "on",
  "editor.quickSuggestionsDelay": 10,
  "editor.wordBasedSuggestions": true,
  "workbench.startupEditor": "NewUntitledFile",
  "workbench.activityBar.visible": false,
  "workbench.statusBar.visible": false,
  "editor.minimap.enabled": false,
  "workbench.editor.untitled.hint": "hidden",
  "breadcrumbs.enabled": false
}

De esta forma la única posibilidad de utilizar la función de completado de código será pulsando el atajo de teclado Control+espacio para que aparezca la ventana con las sugerencias.

Trabajar de forma más accesible con VisualStudio Code usando lector de pantallas

El editor de código VisualStudio code o más conocido como VSCode incluye en sus últimas versiones la opción de activación del soporte de accesibilidad para usuarios de lectores de pantalla.

VSCode accesible en todas las plataformas

Aunque VSCode parece que proporciona accesibilidad en todas las plataformas no lo hace con la misma calidad o estabilidad.

Accesibilidad en Windows

Según la documentación oficial el soporte de accesibilidad para lectores de pantalla incluye a JAWS y NVDA aunque para este último se recomienda el uso de NVDA en modo foco en lugar del modo navegación.

Además también para NVDA existe una extensión de NVDA para VSCode para mejorar su comportamiento con este lector de pantallas.

En cualquier caso y con cualquier lector de pantallas se recomienda la navegación por salto por tabulación y el uso de las teclas para navegar entre paneles, pestañas y ventanas hijas.

Accesibilidad en MacOS

Al abrirse VSCode se detecta la presencia de VoiceOver y se abre un diálogo para activar la compatibilidad con lectores de pantalla.

La interfaz, aunque generada con tecnología web, resulta bastante accesible con el modo de navegación por grupos de las opciones de Internet de VoiceOver.

Quizás lo más problemático sean los mensajes emergentes para completar el código de forma automática o revisar el resultado en un simulador. Por suerte para los usuarios de VoiceOver todas estas opciones se pueden configurar.

En MacOS existe una opción para ver el estado de accesibilidad de VSCode. Pulsando el atajo de teclado Opcion+F1 accederemos a esta información.

Accesibilidad en Linux

Aunque el soporte para el lector de pantallas Orca está incluido para VSCode hay que mencionar que la estabilidad del lector de pantalla es aún menor cuando abrimos varias pestañas en VSCode.

El area de edición de código si resulta legible con Orca pero otros paneles como los mensajes de depuración o los paneles para acceder a ciertos elementos de configuración o de instalación de extensiones resultan totalmente inaccesibles para este lector de pantallas.

Accesibilidad en ChromeOS

Aunque VSCode dice soportar todas las plataformas el uso de esta aplicación utilizando ChromeVox, el lector de pantallas de ChromeOS, resulta totalmente improductivo ya que la experiencia es la de utilizar una página web con multitud de áreas dinámicas que carecen de encabezados o marcas semánticas.

Además el uso del teclado es conflictivo entre Chromevox y los propios atajos de VSCode.

Navegación en el completado de código

Para la función de completado de código automático aparece un mensaje emergente con una lista de opciones. Podemos navegar en esta lista de opciones utilizando los atajos de teclado Control+Flecha arriba y Control+Flecha abajo para seleccionar una de las posibles opciones.

En el caso de MacOS con VoiceOver es suficiente utilizar las flechas de arriba o abajo para moverse por la lista.

En cualquier caso es recomendable desactivar el completado automático de código y usarlo de forma manual con el atajo de teclado Control+Espacio.

Documentación oficial

El equipo de VSCode ha publicado información útil sobre las características de accesibilidad de este editor para diversos perfiles de accesibilidad. Puedes leer toda esta información en la página en inglés de accesibilidad de VSCode.

Indentar el código en Visual studio Code

La herramienta de edición de código Visual studio code o más conocido como VSCode proporciona multitud de atajos de teclado y herramientas para hacer el trabajo de codificación más sencillo.

Ya vimos lo importante que es indentar bien el código fuente para que nuestro código sea más limpio y legible.

Una buena herramienta de edición de código debe incorporar algún mecanismo que nos permita corregir los errores de indentación de nuestro código y VSCode incorpora un atajo de teclado para ello.

Primero deberíamos seleccionar todo el código de nuestro fichero y luego pulsar el atajo de teclado correspondiente.

En el caso de Windows este atajo es Mayúsculas+Alt+F.

En el caso de MacOS el atajo es Mayúsculas+Opción+F.

Por último en el caso de Linux es Control+Mayúsculas+I.

Si tomamos como hábito antes de cerrar un fichero de código el corregir el nivel de indentación del mismo nos aseguraremos que todo nuestro código posee una buena indentación que mejora su legibilidad.