Visual Studio Code: Extensiones, configuración y personalización

Continuando con VS Code, en el artículo anterior te mencionaba 66 atajos de teclado que te podrían facilitar el día a día y hacerte mucho más productivo. Hoy, en este artículo te quiero hablar sobre las configuraciones y extensiones que tengo en mi editor.

Configuración

Personalmente me gusta que mi editor sea minimalista, que tenga una interfaz limpia y sin muchos elementos en pantalla. Prefiero usar los atajos de teclado a usar la interfaz. Mi configuración esta dedica principalmente en cubrir ese aspecto y otras configuraciones que me facilitan el crear código.

La interfaz actual de mi editor
Nota

Si quieres ver todas las configuraciones sin ir paso a paso, puedes ver el documento final aquí.

Para entrar a los ajustes solo hay que usar el atajo  Ctrl/ + , y después dar click en ajustes (JSON), en la parte superior derecha.

Editor

Me gustaría empezar por la parte del editor, como me gusta que VS Code maneje el código y también los primeros pasos de cómo quiero que se vea la interfaz.

Te recomiendo probar cada opción en tu editor para que puedas visualizar los cambios que se aplican al momento, de cualquier manera, te daré una pequeña referencia de que es lo que se está haciendo.

Formato

{
  "editor.formatOnPaste": true, // Formatea el código al pegarlo
  "editor.formatOnSave": true, // Formatea el código al guardar
  "editor.formatOnType": true, // Formatea una línea después de escribirla
}

Fuentes

{
  "editor.fontFamily": "Dank Mono", // Familia de la fuente
  "editor.fontLigatures": true, // Activa las ligaduras en las fuentes
  "editor.fontSize": 16, // Tamaño de fuente de 16px
}

¿No utilizas una fuente especial para programar? Puedes ver mi Bit: 8 Fuentes para programar.

Código/Texto

{
  "editor.renderLineHighlight": "none", // Desactiva el resaltado de las líneas
  "editor.occurrencesHighlight": false, // Elimina el texto resaltado
  "editor.renderWhitespace": "all",  // Muestras siempre los espacios en el código

Indentación y espaciado

{
  "editor.detectIndentation": false, // Desactiva la indentación automática
  "editor.renderIndentGuides": false,  // Desactiva las líneas de indentación
  "editor.folding": false, // Elimina el espaciado
  "editor.glyphMargin": false, // Elimina el margen izquierdo (Se usa principalmente para depurar)
}
Advertencia

En mi caso desactivo la indentación automática de VS Code. Prettier que me ayuda con esa característica. En el apartado de extensiones explico esa parte.

Cursor

{
  "editor.cursorStyle": "line-thin", // Estilo del cursor: línea delgada
  "editor.cursorBlinking": "blink", // Animación del cursor
  "editor.hideCursorInOverviewRuler": true, // Oculta la marca del cursor en el editor
}

Extra

{
  "editor.matchBrackets": "never", // Elimina el resaltado de los corchetes
  "editor.colorDecorators": false, // Elimina los recuadros de color
  "editor.suggestSelection": "first", // Preselecciona la primera opción de las sugerencias
  "editor.minimap.enabled": false,  // Oculta el mini mapa de código
}
Advertencia

Al igual que con la indentación, desactivo el resaltado de los corchetes. Bracket Pair Colorizer 2 me ayuda con esa característica.

Hasta ahora el editor luce de la siguiente manera:

Archivos

Las configuraciones para especificar cómo queremos que se comporte el documento al guardarlo. Que líneas o espacios se debe de quitar o agregar.

{
  "files.trimFinalNewlines": true, // Remueve las líneas extras al final del archivo
  "files.insertFinalNewline": true, // Inserta una línea al final del archivo
  "files.trimTrailingWhitespace": true,  // Remueve los espacios extras al final de una línea
}

Interfaz

Para configurar todo el apartado de la interfaz y como se va a comportar el editor en la vista.

Tema e iconos

{
  "workbench.colorTheme": "Moonlight II", // Define el tema del editor
  "workbench.iconTheme": "helium-icon-theme", // Define un pack de iconos
}

De momento el tema que estoy utilizando es Moonlight II, aunque siempre suelo cambiarlo. Si te interesa, puedes ver mis temas favoritos en GitHub. También utilizo un pack de iconos llamado Helium Icon Theme, más adelante en el artículo lo explico.

Apariencia

{
  "workbench.startupEditor": "newUntitledFile", // Inicia una nueva sesión del editor con un archivo sin título
  "workbench.activityBar.visible": false, // Remueve la barra de actividades
  "workbench.editor.tabCloseButton": "off", // Remueve el icono para cerrar pestañas
}

Colores

{
  "workbench.colorCustomizations": { // Remplaza los colores del editor
      "statusBar.background": "#FFD166", // Cambia el color de fondo de la barra de status
      "statusBar.foreground": "#282B39" // Cambia el color del primer plano de la barra de status
  }
}

Estos cambios ya implican una verdadera mejora en la interfaz y en como se ve el editor.

Explorador

Para configurar toda la parte del explorador de archivos, es decir, la barra izquierda del editor.

{
  "explorer.sortOrder": "type", // Ordena los archivos y carpetas por sus extensiones, en orden alfabético
  "explorer.autoReveal": false, // Evita que se desplieguen los archivos al seleccionarlos
  "explorer.openEditors.visible": 0, // Evita que se muestren los archivos abiertos
}

Terminal

Configuraciones que únicamente aplican para la terminal integrada de VS Code.

{
  "terminal.integrated.fontSize": 15, // Tamaño de fuente
  "terminal.integrated.fontFamily": "SauceCodePro Nerd Font", // Familia de la fuente
  "terminal.external.osxExec": "iTerm.app", // Define iTerm como aplicación de ejecución
}

Extra

{
  "breadcrumbs.enabled": false, // Deshabilita las rutas de navegación
  "javascript.validate.enable": false, // Deshabilita la validación de JS
  "markdown.preview.fontFamily": "Victor Mono", // Familia de la fuente en el preview de Markdown
  "[markdown]": { // Configuraciones solo para markdown
    "files.trimTrailingWhitespace": false // Deja los espacios al final de una línea
  },
}
Advertencia

Deshabilito la validación de JS porque utilizo un linter para validar mi código.

El resultado final es el siguiente:

Todas las configuraciones

Al final el resultado de todas las configuraciones queda de la siguiente manera:

{
  "editor.formatOnPaste": false,
  "editor.formatOnSave": false,
  "editor.formatOnType": false,
  "editor.fontFamily": "Dank Mono",
  "editor.fontLigatures": true,
  "editor.fontSize": 23,
  "editor.renderLineHighlight": "none",
  "editor.occurrencesHighlight": false,
  "editor.renderWhitespace": "all",
  "editor.detectIndentation": false,
  "editor.renderIndentGuides": false,
  "editor.folding": false,
  "editor.glyphMargin": false,
  "editor.cursorStyle": "line-thin",
  "editor.cursorBlinking": "blink",
  "editor.hideCursorInOverviewRuler": true,
  "editor.matchBrackets": "never",
  "editor.colorDecorators": false,
  "editor.suggestSelection": "first",
  "editor.minimap.enabled": false,
  "files.trimFinalNewlines": true,
  "files.insertFinalNewline": true,
  "files.trimTrailingWhitespace": true,
  "workbench.colorTheme": "Moonlight II",
  "workbench.iconTheme": "helium-icon-theme",
  "workbench.startupEditor": "newUntitledFile",
  "workbench.activityBar.visible": false,
  "workbench.editor.tabCloseButton": "off",
  "workbench.colorCustomizations": {
      "statusBar.background": "#FFD166",
      "statusBar.foreground": "#282B39"
  },
  "explorer.sortOrder": "type",
  "explorer.autoReveal": false,
  "explorer.openEditors.visible": 0,
  "terminal.integrated.fontSize": 15,
  "terminal.integrated.fontFamily": "SauceCodePro Nerd Font",
  "terminal.external.osxExec": "iTerm.app",
  "breadcrumbs.enabled": false,
  "javascript.validate.enable": false,
  "markdown.preview.fontFamily": "Victor Mono",
  "[markdown]": {
    "files.trimTrailingWhitespace": false
  },
}

Extensiones

Llego el momento de hablar de las extensiones, ese complemento de VS Code para más fácil el crear código.

Auto Rename Tag

Como su nombre lo dice, esta extensión va a cambiar automáticamente el nombre de las etiquetas HTML/XML que coinciden.

Bracket Pair Colorizer 2

Como mencione en mis configuraciones, yo desactivo el emparejamiento de bloques nativo del editor, esto es porque utilizo esta extensión, que en mi opinión es visualmente más atractiva.

La extensión va a marcar los corchetes con colores y líneas, permitiéndote definir como quieres que se vean y que colores utilizar.

Code Runner

Para ejecutar fragmentos de código en un archivo, me es muy útil para hacer test rápidos, sin tener que usar la terminal directamente o la consola de Chrome.

Entre los lenguajes, esta C, C++, Java, JavaScript, PHP, Python y muchos más.

CodeSnap

Utilizo esta extensión casi a diario. Te permite tomar capturas de pantalla de tu código en VS Code.

La uso para mis bits, videos o cualquier contenido en donde los necesite.

Lo que más me gusta de esta extensión es la personalización que te permite, puedes definir si quieres un color de fondo, bordes redondeados, mostrar el número de líneas, etc. Las configuraciones que yo uso para mi contenido es la siguiente:

{
  "codesnap.boxShadow": "0", // Remueve la sombra de la imagen
  "codesnap.containerPadding": "0", // Remueve el padding externo de la imagen
  "codesnap.showWindowControls": false, // Oculta los controles de las ventanas
  "codesnap.showWindowTitle": false, // Oculta el título de la ventana
  "codesnap.showLineNumbers": false, // Oculta el número de líneas
  "codesnap.transparentBackground": true, // Define que el fondo sea transparente
}
Imagen creada con CodeSnap

Color Highlight

Para resaltar y mostrar los colores directamente en el editor.

ESLint

Lo que hace esta extensión es integrar ESLint en VS Code. Para ayudarte a encontrar y solucionar problemas en tu código JavaScript.

Nota

EsList es un linter que se debe de instalar por separado. La extensión solo va a ayudar a que se integre a VS Code. Si eres nuevo con ESLint, puedes ver su documentación.

Helium Icon Theme

El pack de iconos que utilizo para VS Code.

La única configuración extra que tengo respecto a esta extensión es el cambiar el color de las carpetas a azules.

{
  "helium-icon-theme.folders.color": "#42a5f5",
}

Indenticator

Resalta la profundidad de la indentación actual en tu código. Con la posibilidad de personalizar el resaltado.

Live server

Levanta un servidor local para tu sitio web, con la función de recargar el navegador cuando guardas tu código. Me ayuda a ver y trabajar rápidamente con un sitio web sencillo.

Path Intellisence

Para autocompletar automáticamente los nombres de archivos en tu proyecto o computadora.

Para usar Path Intellisence en lugar del autocompletado predeterminado, hay definir las siguientes opciones en las configuraciones:

{ 
  "typescript.suggest.paths": false, // Desactiva el autocompletado predeterminado en TypeScript
  "javascript.suggest.paths": false, // Desactiva el autocompletado predeterminado en JavaScript
}

Prettier

Prettier es un formateador de código, basado en una serie de reglas que tú defines. Te recomiendo mucho utilizar esta extensión si quieres que tu código luzca conforme a tus preferencias o las reglas del proyecto si estás trabajando en equipo.

Las reglas que yo tengo configuradas son las siguientes:

{
  "prettier.arrowParens": "always", // Para utilizar ( ) en funciones flecha con un solo parámetro
  "prettier.bracketSpacing": true, // Deja espacios entre los corchetes { ... }
  "prettier.jsxBracketSameLine": true, // Para colocar el símbolo > al final de la última línea en JSX
  "prettier.jsxSingleQuote": false, // Define comillas dobles para JSX
  "prettier.printWidth": 85, // Especifica la longitud máxima de las líneas del código
  "prettier.semi": true, // Define el punto y coma al final de las declaraciones
  "prettier.singleQuote": false,  // Define comillas dobles para el código
  "prettier.tabWidth": 4, // Específica el número de espacios para la indentación
  "prettier.useTabs": false, // Desactiva la indentación con tabulaciones
}

Te recomiendo ver todas las opciones que tiene Prettier para que definas tus propias reglas o entender mejor las que te muestro.

Rainbow CSV

Resalta archivos CSV y TSV con colores.

Remote SSH

Esta extensión me parece increíble, te permite abrir cualquier carpeta en una máquina remota usando SSH.

Settings Sync

¿Te ha pasado que cuando cambias de computadora o restauras la tuya, tienes que hacer un backup de tus configuraciones de VS Code? o ¿qué por accidente las llegas a perder?

Settings Sync sincroniza tus configuraciones, temas, pack de iconos, atajos de teclado, workspaces y extensiones de VS Code mediante GitHub Gist, para que siempre las tengas disponibles y nunca las pierdas.

Visual Studio Code IntelliCode

Proporciona funciones para el desarrollo de tu código usando IA (Inteligencia artificial). Funciona en Python, TypeScript, JavaScript y Java. La información esta basada en el contexto de tu código en conjunto con el aprendizaje automático.

Se parte de mi newsletter

Compartiré contigo las últimas novedades del sitio y otros recursos sobre desarrollo web que no te puedes perder.