Los sábados optimizamos nuestros espacios de trabajo. Hoy enfoque en VS Code: el editor que más usamos, pero que frecuentemente está suboptimizado. Una configuración inteligente puede transformar tu velocidad de desarrollo y calidad de código.
Configuración Base Optimizada
Tema y Visual Setup
// settings.json - Visual optimization
{
"workbench.colorTheme": "GitHub Dark Dimmed",
"editor.fontFamily": "'FiraCode Nerd Font', 'Cascadia Code', monospace",
"editor.fontSize": 14,
"editor.fontLigatures": true,
"editor.lineHeight": 1.6,
"editor.minimap.enabled": false,
"editor.renderWhitespace": "boundary",
"workbench.tree.indent": 15,
"workbench.iconTheme": "material-icon-theme"
}
Performance Settings
// Configuración para proyectos grandes
{
"files.exclude": {
"**/node_modules": true,
"**/.git": true,
"**/dist": true,
"**/build": true,
"**/.next": true,
"**/coverage": true
},
"search.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true
},
"files.watcherExclude": {
"**/node_modules/**": true,
"**/.git/objects/**": true,
"**/dist/**": true
}
}
Extensions Esenciales por Categoría
Desarrollo General
-
GitLens - Git insights directamente en el código
-
Thunder Client - Cliente REST integrado
-
Auto Rename Tag - Sincroniza etiquetas HTML automáticamente
-
Bracket Pair Colorizer 2 - Visualización de bloques de código
-
Path Intellisense - Autocompletado de rutas de archivos
JavaScript/TypeScript
-
ES7+ React/Redux Snippets - Snippets avanzados para React
-
TypeScript Importer - Imports automáticos organizados
-
Console Ninja - Console.log mejorado con preview
-
Pretty TypeScript Errors - Errores de TS más legibles
Productividad
-
Live Share - Colaboración en tiempo real
-
Code Spell Checker - Corrector ortográfico para código
-
Todo Tree - Gestión de TODOs en el proyecto
-
Bookmarks - Marcadores en líneas específicas
Frontend
-
Tailwind CSS IntelliSense - Autocompletado para Tailwind
-
CSS Peek - Preview de definiciones CSS
-
HTML CSS Support - Autocompletado CSS en HTML
-
Color Highlight - Visualización de colores en código
Snippets Personalizados que Ahorran Tiempo
React/Next.js Snippets
// react.json snippets
{
"React Functional Component": {
"prefix": "rfc",
"body": [
"interface ${1:Component}Props {",
" $2",
"}",
"",
"export default function ${1:Component}({ $3 }: ${1:Component}Props) {",
" return (",
" <div>",
" $0",
" </div>",
" );",
"}"
]
},
"useState Hook": {
"prefix": "us",
"body": [
"const [${1:state}, set${1/(.*)/${1:/capitalize}/}] = useState<$2>($3);"
]
},
"useEffect Hook": {
"prefix": "ue",
"body": [
"useEffect(() => {",
" $1",
"}, [$2]);"
]
}
}
Node.js/Express Snippets
// javascript.json snippets
{
"Express Route": {
"prefix": "route",
"body": [
"app.${1:get}('${2:/api/}', async (req, res) => {",
" try {",
" $3",
" res.json({ success: true });",
" } catch (error) {",
" res.status(500).json({ error: error.message });",
" }",
"});"
]
},
"Async Function": {
"prefix": "af",
"body": [
"const ${1:functionName} = async (${2:params}) => {",
" try {",
" $3",
" } catch (error) {",
" console.error('Error in ${1:functionName}:', error);",
" throw error;",
" }",
"};"
]
}
}
Workspace Settings por Tipo de Proyecto
Frontend/React Projects
// .vscode/settings.json
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.organizeImports": true
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"emmet.includeLanguages": {
"javascript": "javascriptreact",
"typescript": "typescriptreact"
},
"typescript.preferences.importModuleSpecifier": "relative",
"css.validate": false,
"scss.validate": false
}
Node.js/Backend Projects
// .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"files.associations": {
"*.env.*": "dotenv"
},
"jest.autoRun": "watch",
"jest.showCoverageOnLoad": true,
"typescript.preferences.importModuleSpecifier": "relative"
}
Tasks y Launch Configurations
Tasks Automatizadas
// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Install Dependencies",
"type": "shell",
"command": "npm install",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"panel": "new"
}
},
{
"label": "Start Dev Server",
"type": "shell",
"command": "npm run dev",
"group": "build",
"isBackground": true,
"presentation": {
"echo": true,
"reveal": "always",
"panel": "new"
}
},
{
"label": "Run Tests",
"type": "shell",
"command": "npm test",
"group": "test"
}
]
}
Debug Configurations
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Node.js",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/src/index.js",
"env": {
"NODE_ENV": "development"
},
"console": "integratedTerminal"
},
{
"name": "Debug React App",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/src"
}
]
}
Atajos de Teclado Personalizados
Keybindings Productivity
// keybindings.json
[
{
"key": "ctrl+shift+o",
"command": "workbench.action.quickOpen"
},
{
"key": "ctrl+shift+f",
"command": "workbench.action.findInFiles"
},
{
"key": "ctrl+shift+d",
"command": "editor.action.duplicateSelection"
},
{
"key": "ctrl+shift+k",
"command": "editor.action.deleteLines"
},
{
"key": "ctrl+shift+up",
"command": "editor.action.moveLinesUpAction"
},
{
"key": "ctrl+shift+down",
"command": "editor.action.moveLinesDownAction"
}
]
Multi-Root Workspaces para Monorepos
Configuración de Workspace Multi-Proyecto
// my-monorepo.code-workspace
{
"folders": [
{
"name": "Frontend",
"path": "./apps/frontend"
},
{
"name": "Backend",
"path": "./apps/backend"
},
{
"name": "Shared",
"path": "./packages/shared"
}
],
"settings": {
"typescript.preferences.includePackageJsonAutoImports": "on",
"typescript.workspaceSymbols.scope": "allOpenProjects"
},
"extensions": {
"recommendations": [
"bradlc.vscode-tailwindcss",
"esbenp.prettier-vscode",
"ms-vscode.vscode-typescript-next"
]
}
}
Settings Sync y Portabilidad
Configuración Portátil
# Backup de configuración completa
cp -r ~/.vscode/User/settings.json ~/dotfiles/vscode/
cp -r ~/.vscode/User/keybindings.json ~/dotfiles/vscode/
cp -r ~/.vscode/User/snippets/ ~/dotfiles/vscode/
# Script de restauración
#!/bin/bash
# restore-vscode.sh
ln -sf ~/dotfiles/vscode/settings.json ~/.vscode/User/settings.json
ln -sf ~/dotfiles/vscode/keybindings.json ~/.vscode/User/keybindings.json
ln -sf ~/dotfiles/vscode/snippets/ ~/.vscode/User/
Temas y Personalizaciones Avanzadas
Custom Color Scheme
// settings.json - Custom colors
{
"workbench.colorCustomizations": {
"editor.background": "#1a1a1a",
"sidebar.background": "#252526",
"terminal.background": "#1a1a1a",
"editor.lineHighlightBackground": "#2a2a2a",
"editorGroupHeader.tabsBackground": "#252526"
},
"editor.tokenColorCustomizations": {
"functions": "#82AAFF",
"keywords": "#C792EA",
"strings": "#C3E88D",
"numbers": "#F78C6C"
}
}
Métricas de Productividad
Tracking de Mejoras
Con estas optimizaciones, deberías notar:
-
50% menos tiempo navegando entre archivos
-
30% menos errores por autocompletado mejorado
-
40% más velocidad en refactoring por snippets
-
Cero tiempo en configuración manual por proyecto
Indicadores de un Setup Optimizado
-
Autocompletado instantáneo y preciso
-
Formatting automático sin intervención manual
-
Navegación de código sin usar mouse
-
Debug setup con un click
-
Git operations integradas fluidamente
Pro Tips Avanzados
Comandos Menos Conocidos
-
Ctrl+Shift+P
→ “Reload Window” - Reinicia VS Code manteniendo ventanas -
Ctrl+K Ctrl+S
- Abre atajos de teclado -
Ctrl+K Z
- Modo Zen para focus profundo -
Ctrl+Shift+E
- Explorador de archivos -
Ctrl+Shift+G
- Panel Git integrado
Workflow Optimization
// Auto-save inteligente
{
"files.autoSave": "onFocusChange",
"files.autoSaveDelay": 1000,
"editor.formatOnPaste": true,
"editor.formatOnType": true
}
Configuración del Futuro
AI-Powered Extensions
-
GitHub Copilot - Sugerencias de código inteligentes
-
Tabnine - Autocompletado predictivo
-
CodeWhisperer - Alternativa de Amazon a Copilot
Analytics y Métricas
-
WakaTime - Tracking de tiempo de programación
-
GitLens - Analytics de contribuciones Git
-
Code Time - Métricas de productividad
Setup Completo en 10 Minutos
Script de Instalación Rápida
#!/bin/bash
# vscode-setup.sh
# Instalar extensions esenciales
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension esbenp.prettier-vscode
code --install-extension bradlc.vscode-tailwindcss
code --install-extension ms-python.python
code --install-extension eamodio.gitlens
code --install-extension ms-vsliveshare.vsliveshare
# Aplicar configuración optimizada
curl -o ~/.vscode/User/settings.json https://raw.githubusercontent.com/tu-repo/dotfiles/main/vscode/settings.json
echo "🎉 VS Code optimization completed!"
Optimización Continua
Un setup de VS Code optimizado no es estático - evoluciona con tus necesidades y el ecosistema. La inversión inicial de configuración se amortiza rápidamente en productividad diaria.
Métricas de un setup exitoso:
-
Tiempo de navegación entre archivos < 2 segundos
-
Autocompletado con 90%+ accuracy
-
Búsqueda de código instantánea
-
Zero fatiga visual durante sesiones largas
-
Automatización de tareas repetitivas
¿Cuál es tu extensión de VS Code más valiosa? ¿Qué configuración les ha transformado más el workflow? ¿Tienen algún snippet personalizado que no pueden vivir sin él?
Compartamos nuestras configuraciones para inspirarnos mutuamente en la optimización continua.
#SaturdaySetup #VSCode #Productivity #DevTools #Extensions #Snippets #Workflow