DevOps & verktyg
Visual Studio Code
Konfiguration, extensions och arbetsflöden för en snabbare editor
01 · Konfiguration
VS Code-konfiguration
Fyra konfigurationer som tar dig från standardinstallation till en editor anpassad efter ditt arbetssätt: kortkommandon, settings.json, debugging via launch.json och automatisering med tasks.json.
Essential Keyboard Shortcuts
Viktiga kortkommandon för effektiv kodning i VS Code.
// Windows/Linux | macOS
Ctrl+Shift+P | Cmd+Shift+P // Command Palette
Ctrl+P | Cmd+P // Quick Open (öppna filer)
Ctrl+Shift+F | Cmd+Shift+F // Sök i hela projektet
Ctrl+/ | Cmd+/ // Toggle kommentar
Alt+Up/Down | Opt+Up/Down // Flytta rad upp/ner
Shift+Alt+Down | Shift+Opt+Down // Duplicera rad
Ctrl+D | Cmd+D // Välj nästa förekomst
Ctrl+Shift+L | Cmd+Shift+L // Välj alla förekomster
F2 | F2 // Rename symbol
Ctrl+Space | Cmd+Space // Trigger IntelliSense
Ctrl+. | Cmd+. // Quick Fix
Alt+Shift+F | Opt+Shift+F // Formatera dokumentSitter de här i ryggmärgen kodar du märkbart snabbare.
Settings.json Configuration
Anpassa VS Code med kraftfulla inställningar.
{
// Editor inställningar
"editor.fontSize": 14,
"editor.fontFamily": "'Fira Code', 'Cascadia Code', monospace",
"editor.fontLigatures": true,
"editor.tabSize": 2,
"editor.wordWrap": "on",
"editor.minimap.enabled": true,
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.organizeImports": true
},
// Tema och utseende
"workbench.colorTheme": "One Dark Pro",
"workbench.iconTheme": "material-icon-theme",
// Terminal
"terminal.integrated.fontSize": 13,
"terminal.integrated.defaultProfile.windows": "PowerShell",
// Files
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
// Git
"git.autofetch": true,
"git.confirmSync": false,
// Extensions
"prettier.singleQuote": true,
"prettier.semi": true,
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"]
}Placera i .vscode/settings.json för projektspecifika inställningar.
Launch.json Debugging
Konfigurera debugging för olika miljöer.
{
"version": "0.2.0",
"configurations": [
{
// Node.js debugging
"type": "node",
"request": "launch",
"name": "Debug Node App",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/src/index.js",
"env": {
"NODE_ENV": "development"
}
},
{
// React debugging
"type": "chrome",
"request": "launch",
"name": "Debug React App",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}/src",
"sourceMapPathOverrides": {
"webpack:///src/*": "${webRoot}/*"
}
},
{
// Jest test debugging
"type": "node",
"request": "launch",
"name": "Debug Jest Tests",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["--runInBand", "--watchAll=false"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
// Python debugging
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}Placera i .vscode/launch.json för att konfigurera debugging sessioner.
Tasks.json Build Automation
Automatisera vanliga uppgifter med VS Code tasks.
{
"version": "2.0.0",
"tasks": [
{
"label": "Build TypeScript",
"type": "typescript",
"tsconfig": "tsconfig.json",
"problemMatcher": ["$tsc"],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "Run Tests",
"type": "npm",
"script": "test",
"group": "test",
"problemMatcher": []
},
{
"label": "Start Dev Server",
"type": "npm",
"script": "dev",
"isBackground": true,
"problemMatcher": []
},
{
"label": "Docker Compose Up",
"type": "shell",
"command": "docker-compose up -d",
"presentation": {
"reveal": "always",
"panel": "new"
}
},
{
"label": "Clean & Install",
"type": "shell",
"command": "rm -rf node_modules package-lock.json && npm install",
"windows": {
"command": "rmdir /s /q node_modules && del package-lock.json && npm install"
},
"problemMatcher": []
}
]
}Kör tasks med Ctrl+Shift+B eller via Command Palette.
02 · Extensions
Rekommenderade extensions
Extensions grupperade efter syfte: grundpaketet alla bör ha, språkstöd och rena produktivitetshöjare.
Essential Extensions
Must-have extensions för alla utvecklare.
- ESLint
dbaeumer.vscode-eslintJavaScript/TypeScript linting
- Prettier
esbenp.prettier-vscodeKodformatering
- GitLens
eamodio.gitlensGit supercharged
- Live Server
ritwickdey.LiveServerLokal utvecklingsserver
- Auto Rename Tag
formulahendry.auto-rename-tagSynka HTML/XML tags
Language Support
Språkspecifika extensions för bättre utvecklingsupplevelse.
- Python
ms-python.pythonPython språkstöd
- C/C++
ms-vscode.cpptoolsC/C++ IntelliSense
- Java Extension Pack
vscjava.vscode-java-packJava utveckling
- Go
golang.goGo språkstöd
- Vetur
octref.veturVue.js utveckling
Productivity Boosters
Extensions som ökar din produktivitet.
- GitHub Copilot
GitHub.copilotAI kod-assistent
- Thunder Client
rangav.vscode-thunder-clientREST API testing
- Docker
ms-azuretools.vscode-dockerDocker support
- Remote - SSH
ms-vscode-remote.remote-sshFjärrutveckling
- Project Manager
alefragnani.project-managerHantera projekt
03 · Snippets
Egna snippets
Snippets genererar återkommande kod på en prefix. Lägg till dem under Code > Preferences > User Snippets.
React Component Snippet
Language: javascriptreact
"React Functional Component": {
"prefix": "rfc",
"body": [
"import React from 'react';",
"",
"const ${1:ComponentName} = ({ ${2:props} }) => {",
" return (",
" <div className="${3:container}">",
" ${4:// Content here}",
" </div>",
" );",
"};",
"",
"export default ${1:ComponentName};"
],
"description": "Create a React functional component"
}Express Route Handler
Language: javascript
"Express Route Handler": {
"prefix": "route",
"body": [
"router.${1|get,post,put,delete|}('${2:/path}', async (req, res) => {",
" try {",
" ${3:// Route logic here}",
" res.status(200).json({",
" success: true,",
" data: ${4:result}",
" });",
" } catch (error) {",
" console.error('Error:', error);",
" res.status(500).json({",
" success: false,",
" error: error.message",
" });",
" }",
"});"
],
"description": "Create an Express route handler with error handling"
}Console Log with Label
Language: javascript
"Console Log": {
"prefix": "clg",
"body": [
"console.log('${1:label}:', ${2:value});"
],
"description": "Log to console with label"
}04 · Workspace
Workspace-hantering
- Multi-root Workspace
- Arbeta med flera projekt samtidigt
- Skapa en .code-workspace fil för att gruppera relaterade projekt
- Workspace Trust
- Kontrollera vilka workspace som får köra kod automatiskt
- Aktivera restricted mode för okända projekt
- Sync Settings
- Synkronisera inställningar mellan flera enheter
- Använd Settings Sync med GitHub-konto
- Profiles
- Skapa olika profiler för olika typer av utveckling
- Separata profiler för web, Python, och DevOps arbete
05 · Pro tips
VS Code pro tips
- Använd Command Palette flitigt
- Nästan allt i VS Code kan göras via Command Palette (Cmd/Ctrl+Shift+P).
- Lär dig Emmet shortcuts
- Skriv HTML och CSS mycket snabbare med Emmet abbreviations.
- Integrera terminal i arbetsflödet
- Använd integrerade terminalen istället för att byta mellan fönster.