Skip to main content 홈 크리에이터 vamseeachanta workspace-hub vscode-extensions
vscode-extensions VS Code productivity optimization with essential extensions, settings sync, profiles, keybindings, snippets, and workspace configuration
설치로 이동 Skills Marketplace 커뮤니티가 만든 AI 스킬을 발견하고 탐색하세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/vamseeachanta/workspace-hub --skill vscode-extensions명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Zip 다운로드 다운로드 중... 이 저장소의 다른 Skills Write outbound email and external messages in Vamsee Achanta's voice — a subtle offer to help, never bold or rash claims. Load before drafting ANY email, LinkedIn/Collide reply, proposal note, or outreach sent under his name.
Save/publish analysis or computation results from ANY ecosystem repo to Hugging Face as a queryable, viewer-renderable dataset. Use when the user wants to "save results to hugging face", "publish dataset to HF", "hugging face data saving", "save analysis results", "hf dataset", "make results queryable", or "render via datasets-server API". Reshapes nested results into flat parquet tables, writes a dataset card with a viewer `configs:` block and provenance, applies license/public-vs-private routing, enforces a domain data-quality gate (faithful-to-source != correct), publishes to `aceengineer/<repo>-<projection>`, and verifies via the datasets-server API.
Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.
name vscode-extensions version 1.0.0 description VS Code productivity optimization with essential extensions, settings sync, profiles, keybindings, snippets, and workspace configuration author workspace-hub category devtools type skill capabilities ["extension_management","settings_configuration","profile_management","keybinding_customization","snippet_creation","workspace_settings","task_automation","debugging_configuration","theme_customization","remote_development"] tools ["code","code-insiders","codium"] tags ["vscode","ide","extensions","productivity","editor","development","settings","profiles"] platforms ["linux","macos","windows"] related_skills ["cli-productivity","git-advanced","docker"]
VS Code Extensions Skill
Master VS Code productivity with essential extensions, optimal settings, custom keybindings, and workspace configuration. This skill covers extension recommendations by category, settings sync, profiles, snippets, tasks, and debugging configurations.
When to Use This Skill
USE when:
Setting up a new development environment
Optimizing VS Code for specific languages/frameworks
Creating consistent team configurations
Building custom snippets and tasks
Configuring debugging for complex applications
Managing multiple project profiles
Automating repetitive editor tasks
DON'T USE when:
Need full IDE features (use JetBrains IDEs)
Working exclusively in terminal (use vim/neovim)
Resource-constrained environments (use lighter editors)
Pair programming with different editors (standardize first)
Prerequisites
Installation
brew install --cask visual-studio-code
sudo snap install code --classic
winget install Microsoft.VisualStudioCode
code --version
code .
code file.txt
code --diff file1 file2
code --goto file:10:5
CLI Extension Management
code --list-extensions
code --install-extension ms-python.python
code --uninstall-extension extension-id
cat extensions.txt | xargs -L 1 code --install-extension
code --list-extensions > extensions.txt
extensions.txt | xargs -L 1 code --install-extension
cat
Core Capabilities
1. Essential Extensions by Category
cat > install-extensions.sh << 'EOF'
install_base () {
code --install-extension esbenp.prettier-vscode
code --install-extension dbaeumer.vscode-eslint
code --install-extension editorconfig.editorconfig
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension usernamehw.errorlens
code --install-extension gruntfuggly.todo-tree
code --install-extension aaron-bond.better-comments
code --install-extension christian-kohler.path-intellisense
code --install-extension eamodio.gitlens
code --install-extension mhutchie.git-graph
code --install-extension pkief.material-icon-theme
code --install-extension github.github-vscode-theme
}
install_python () {
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension ms-python.black-formatter
code --install-extension charliermarsh.ruff
code --install-extension ms-python.debugpy
code --install-extension njpwerner.autodocstring
code --install-extension littlefoxteam.vscode-python-test-adapter
}
install_javascript () {
code --install-extension esbenp.prettier-vscode
code --install-extension dbaeumer.vscode-eslint
code --install-extension dsznajder.es7-react-js-snippets
code --install-extension bradlc.vscode-tailwindcss
code --install-extension prisma.prisma
code --install-extension wallabyjs.quokka-vscode
}
install_typescript () {
install_javascript
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension pmneo.tsimporter
code --install-extension stringham.move-ts
}
install_rust () {
code --install-extension rust-lang.rust-analyzer
code --install-extension serayuzgur.crates
code --install-extension tamasfe.even-better-toml
code --install-extension vadimcn.vscode-lldb
}
install_go () {
code --install-extension golang.go
code --install-extension zxh404.vscode-proto3
}
install_docker () {
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-kubernetes-tools.vscode-kubernetes-tools
code --install-extension redhat.vscode-yaml
}
install_web () {
code --install-extension ritwickdey.liveserver
code --install-extension formulahendry.auto-rename-tag
code --install-extension pranaygp.vscode-css-peek
code --install-extension zignd.html-css-class-completion
code --install-extension ecmel.vscode-html-css
}
install_data () {
code --install-extension ms-toolsai.jupyter
code --install-extension mechatroner.rainbow-csv
code --install-extension randomfractalsinc.vscode-data-preview
code --install-extension mtxr.sqltools
code --install-extension cweijan.vscode-database-client2
}
install_remote () {
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-wsl
code --install-extension ms-vscode.remote-explorer
}
install_ai () {
code --install-extension github.copilot
code --install-extension github.copilot-chat
code --install-extension continue.continue
}
case "$1 " in
base) install_base ;;
python) install_base && install_python ;;
javascript|js) install_base && install_javascript ;;
typescript|ts) install_base && install_typescript ;;
rust) install_base && install_rust ;;
go) install_base && install_go ;;
docker) install_base && install_docker ;;
web) install_base && install_web ;;
data) install_base && install_data ;;
remote) install_remote ;;
ai) install_ai ;;
all) install_base && install_python && install_typescript && install_docker && install_remote ;;
*)
echo "Usage: $0 {base|python|javascript|typescript|rust|go|docker|web|data|remote|ai|all}"
exit 1
;;
esac
echo "Extensions installed successfully!"
EOF
chmod +x install-extensions.sh
2. Settings Configuration
{
"editor.fontSize" : 14 ,
"editor.fontFamily" : "'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, monospace" ,
"editor.fontLigatures" : true ,
"editor.lineHeight" : 1.6 ,
"editor.letterSpacing" : 0.5 ,
"editor.cursorBlinking" : "smooth" ,
"editor.cursorSmoothCaretAnimation" : "on" ,
"editor.smoothScrolling" : true ,
"editor.lineNumbers" : "relative" ,
"editor.rulers" : [ 80 , 120 ] ,
"editor.wordWrap" : "off" ,
"editor.minimap.enabled" : false ,
"editor.renderWhitespace" : "boundary" ,
"editor.bracketPairColorization.enabled" : true ,
"editor.guides.bracketPairs" : "active" ,
"editor.stickyScroll.enabled" : true ,
"editor.inlineSuggest.enabled" : true ,
"editor.formatOnSave" : true ,
"editor.formatOnPaste" : true ,
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.codeActionsOnSave" : {
"source.fixAll" : "explicit" ,
"source.organizeImports" : "explicit"
} ,
"editor.tabSize" : 4 ,
"editor.insertSpaces" : true ,
"editor.detectIndentation" : true ,
"editor.trimAutoWhitespace" : true ,
"editor.quickSuggestions" : {
"other" : true ,
"comments" : false ,
"strings" : true
} ,
"editor.suggestSelection" : "first" ,
"editor.acceptSuggestionOnEnter" : "on" ,
"editor.snippetSuggestions" : "top" ,
"files.autoSave" : "onFocusChange" ,
"files.trimTrailingWhitespace" : true ,
"files.insertFinalNewline" : true ,
"files.trimFinalNewlines" : true ,
"files.exclude" : {
"**/.git" : true ,
"**/.DS_Store" : true ,
"**/node_modules" : true ,
"**/__pycache__" : true ,
"**/.pytest_cache" : true ,
"**/venv" : true ,
"**/.venv" : true
} ,
"files.watcherExclude" : {
"**/node_modules/**" : true ,
"**/.git/objects/**" : true
} ,
"search.exclude" : {
"**/node_modules" : true ,
"**/dist" : true ,
"**/build" : true ,
"**/coverage" : true ,
"**/.next" : true
} ,
"search.useIgnoreFiles" : true ,
"search.smartCase" : true ,
"terminal.integrated.fontSize" : 13 ,
"terminal.integrated.fontFamily" : "'JetBrains Mono', 'MesloLGS NF', monospace" ,
"terminal.integrated.cursorStyle" : "line" ,
"terminal.integrated.defaultProfile.osx" : "zsh" ,
"terminal.integrated.defaultProfile.linux" : "bash" ,
"terminal.integrated.scrollback" : 10000 ,
"git.autofetch" : true ,
"git.confirmSync" : false ,
"git.enableSmartCommit" : true ,
"git.openRepositoryInParentFolders" : "always" ,
"gitlens.currentLine.enabled" : true ,
"gitlens.hovers.currentLine.over" : "line" ,
"workbench.startupEditor" : "none" ,
"workbench.editor.enablePreview" : false ,
"workbench.editor.tabCloseButton" : "right" ,
"workbench.colorTheme" : "GitHub Dark Default" ,
"workbench.iconTheme" : "material-icon-theme" ,
"workbench.tree.indent" : 20 ,
"workbench.tree.renderIndentGuides" : "always" ,
"breadcrumbs.enabled" : true ,
"breadcrumbs.filePath" : "on" ,
"explorer.confirmDelete" : false ,
"explorer.confirmDragAndDrop" : false ,
"explorer.compactFolders" : false ,
"explorer.sortOrder" : "type" ,
"zenMode.hideLineNumbers" : false ,
"zenMode.centerLayout" : true ,
"errorLens.enabled" : true ,
"errorLens.enabledDiagnosticLevels" : [ "error" , "warning" ] ,
"todo-tree.general.tags" : [ "TODO" , "FIXME" , "BUG" , "HACK" , "XXX" , "NOTE" ] ,
"telemetry.telemetryLevel" : "off"
}
3. Language-Specific Settings
{
"[python]" : {
"editor.defaultFormatter" : "ms-python.black-formatter" ,
"editor.formatOnSave" : true ,
"editor.tabSize" : 4 ,
"editor.codeActionsOnSave" : {
"source.organizeImports" : "explicit"
}
} ,
"python.analysis.typeCheckingMode" : "basic" ,
"python.analysis.autoImportCompletions" : true ,
"python.terminal.activateEnvironment" : true ,
"python.testing.pytestEnabled" : true ,
"python.testing.unittestEnabled" : false ,
"ruff.organizeImports" : true ,
"[javascript]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[typescript]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[typescriptreact]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[javascriptreact]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"typescript.preferences.importModuleSpecifier" : "relative" ,
"typescript.updateImportsOnFileMove.enabled" : "always" ,
"[json]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[jsonc]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[yaml]" : {
"editor.defaultFormatter" : "redhat.vscode-yaml" ,
"editor.tabSize" : 2 ,
"editor.autoIndent" : "advanced"
} ,
"yaml.schemas" : {
"https://json.schemastore.org/github-workflow.json" : ".github/workflows/*.yml"
} ,
"[markdown]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.wordWrap" : "on" ,
"editor.quickSuggestions" : {
"other" : true ,
"comments" : false ,
"strings" : true
}
} ,
"markdown.preview.fontSize" : 14 ,
"[html]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[css]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[scss]" : {
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2
} ,
"[go]" : {
"editor.defaultFormatter" : "golang.go" ,
"editor.formatOnSave" : true ,
"editor.codeActionsOnSave" : {
"source.organizeImports" : "always"
}
} ,
"go.lintTool" : "golangci-lint" ,
"go.testOnSave" : true ,
"[rust]" : {
"editor.defaultFormatter" : "rust-lang.rust-analyzer" ,
"editor.formatOnSave" : true
} ,
"rust-analyzer.checkOnSave.command" : "clippy" ,
"[shellscript]" : {
"editor.defaultFormatter" : "foxundermoon.shell-format" ,
"editor.tabSize" : 4
}
}
4. Keybindings Configuration
[
{
"key" : "ctrl+shift+e" ,
"command" : "workbench.view.explorer"
} ,
{
"key" : "ctrl+shift+g" ,
"command" : "workbench.view.scm"
} ,
{
"key" : "ctrl+shift+f" ,
"command" : "workbench.view.search"
} ,
{
"key" : "ctrl+shift+d" ,
"command" : "workbench.view.debug"
} ,
{
"key" : "ctrl+shift+x" ,
"command" : "workbench.view.extensions"
} ,
{
"key" : "ctrl+`" ,
"command" : "workbench.action.terminal.toggleTerminal"
} ,
{
"key" : "ctrl+shift+`" ,
"command" : "workbench.action.terminal.new"
} ,
{
"key" : "ctrl+shift+c" ,
"command" : "workbench.action.terminal.openNativeConsole"
} ,
{
"key" : "ctrl+tab" ,
"command" : "workbench.action.nextEditor"
} ,
{
"key" : "ctrl+shift+tab" ,
"command" : "workbench.action.previousEditor"
} ,
{
"key" : "alt+left" ,
"command" : "workbench.action.navigateBack"
} ,
{
"key" : "alt+right" ,
"command" : "workbench.action.navigateForward"
} ,
{
"key" : "alt+up" ,
"command" : "editor.action.moveLinesUpAction" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "alt+down" ,
"command" : "editor.action.moveLinesDownAction" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "shift+alt+up" ,
"command" : "editor.action.copyLinesUpAction" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "shift+alt+down" ,
"command" : "editor.action.copyLinesDownAction" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "ctrl+shift+k" ,
"command" : "editor.action.deleteLines" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "ctrl+l" ,
"command" : "expandLineSelection" ,
"when" : "editorTextFocus"
} ,
{
"key" : "ctrl+d" ,
"command" : "editor.action.addSelectionToNextFindMatch" ,
"when" : "editorFocus"
} ,
{
"key" : "ctrl+shift+l" ,
"command" : "editor.action.selectHighlights" ,
"when" : "editorFocus"
} ,
{
"key" : "ctrl+alt+up" ,
"command" : "editor.action.insertCursorAbove" ,
"when" : "editorTextFocus"
} ,
{
"key" : "ctrl+alt+down" ,
"command" : "editor.action.insertCursorBelow" ,
"when" : "editorTextFocus"
} ,
{
"key" : "ctrl+." ,
"command" : "editor.action.quickFix" ,
"when" : "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
} ,
{
"key" : "f2" ,
"command" : "editor.action.rename" ,
"when" : "editorHasRenameProvider && editorTextFocus && !editorReadonly"
} ,
{
"key" : "f12" ,
"command" : "editor.action.revealDefinition" ,
"when" : "editorHasDefinitionProvider && editorTextFocus"
} ,
{
"key" : "alt+f12" ,
"command" : "editor.action.peekDefinition" ,
"when" : "editorHasDefinitionProvider && editorTextFocus"
} ,
{
"key" : "shift+f12" ,
"command" : "editor.action.goToReferences" ,
"when" : "editorHasReferenceProvider && editorTextFocus"
} ,
{
"key" : "shift+alt+f" ,
"command" : "editor.action.formatDocument" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "ctrl+k ctrl+f" ,
"command" : "editor.action.formatSelection" ,
"when" : "editorHasDocumentSelectionFormattingProvider && editorTextFocus && !editorReadonly"
} ,
{
"key" : "ctrl+/" ,
"command" : "editor.action.commentLine" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "shift+alt+a" ,
"command" : "editor.action.blockComment" ,
"when" : "editorTextFocus && !editorReadonly"
} ,
{
"key" : "ctrl+shift+[" ,
"command" : "editor.fold" ,
"when" : "editorTextFocus"
} ,
{
"key" : "ctrl+shift+]" ,
"command" : "editor.unfold" ,
"when" : "editorTextFocus"
} ,
{
"key" : "ctrl+k ctrl+0" ,
"command" : "editor.foldAll"
} ,
{
"key" : "ctrl+k ctrl+j" ,
"command" : "editor.unfoldAll"
} ,
{
"key" : "ctrl+b" ,
"command" : "workbench.action.toggleSidebarVisibility"
} ,
{
"key" : "ctrl+shift+b" ,
"command" : "workbench.action.toggleAuxiliaryBar"
} ,
{
"key" : "ctrl+j" ,
"command" : "workbench.action.togglePanel"
} ,
{
"key" : "ctrl+n" ,
"command" : "workbench.action.files.newUntitledFile"
} ,
{
"key" : "ctrl+w" ,
"command" : "workbench.action.closeActiveEditor"
} ,
{
"key" : "ctrl+shift+w" ,
"command" : "workbench.action.closeAllEditors"
} ,
{
"key" : "ctrl+shift+g b" ,
"command" : "gitlens.toggleFileBlame"
} ,
{
"key" : "ctrl+shift+g h" ,
"command" : "gitlens.showQuickFileHistory"
} ,
{
"key" : "ctrl+shift+o" ,
"command" : "workbench.action.gotoSymbol"
} ,
{
"key" : "ctrl+t" ,
"command" : "workbench.action.showAllSymbols"
}
]
5. Custom Snippets
{
"Python Main Block" : {
"prefix" : "main" ,
"body" : [
"def main():" ,
" ${1:pass}" ,
"" ,
"" ,
"if __name__ == \"__main__\":" ,
" main()"
] ,
"description" : "Python main block"
} ,
"Python Class" : {
"prefix" : "class" ,
"body" : [
"class ${1:ClassName}:" ,
" \"\"\"${2:Class description.}\"\"\"" ,
"" ,
" def __init__(self, ${3:args}):" ,
" ${4:pass}" ,
"" ,
" def ${5:method}(self):" ,
" ${6:pass}"
] ,
"description" : "Python class definition"
} ,
"Python Dataclass" : {
"prefix" : "dataclass" ,
"body" : [
"from dataclasses import dataclass" ,
"" ,
"" ,
"@dataclass" ,
"class ${1:ClassName}:" ,
" \"\"\"${2:Description.}\"\"\"" ,
"" ,
" ${3:field}: ${4:str}"
] ,
"description" : "Python dataclass"
} ,
"Python Type Hints" : {
"prefix" : "typed" ,
"body" : [
"def ${1:function_name}(" ,
" ${2:param}: ${3:str}" ,
") -> ${4:None}:" ,
" \"\"\"${5:Description.}\"\"\"" ,
" ${6:pass}"
] ,
"description" : "Typed function signature"
} ,
"Python Pytest Test" : {
"prefix" : "test" ,
"body" : [
"def test_${1:name}():" ,
" # Arrange" ,
" ${2:pass}" ,
"" ,
" # Act" ,
" ${3:result = None}" ,
"" ,
" # Assert" ,
" assert ${4:result is not None}"
] ,
"description" : "Pytest test function"
} ,
"ABOUTME Comment" : {
"prefix" : "aboutme" ,
"body" : [
"# ABOUTME: ${1:Brief description of file purpose}" ,
"# ABOUTME: ${2:Additional detail about what the file does}"
] ,
"description" : "ABOUTME file header comment"
}
}
{
"React Functional Component" : {
"prefix" : "rfc" ,
"body" : [
"interface ${1:ComponentName}Props {" ,
" ${2:prop}: ${3:string};" ,
"}" ,
"" ,
"export function ${1:ComponentName}({ ${2:prop} }: ${1:ComponentName}Props) {" ,
" return (" ,
" <div>" ,
" ${4:content}" ,
" </div>" ,
" );" ,
"}"
] ,
"description" : "React Functional Component with TypeScript"
} ,
"React useState Hook" : {
"prefix" : "usestate" ,
"body" : [
"const [${1:state}, set${1/(.*)/${1:/capitalize}/}] = useState<${2:string}>(${3:''});"
] ,
"description" : "React useState hook with TypeScript"
} ,
"React useEffect Hook" : {
"prefix" : "useeffect" ,
"body" : [
"useEffect(() => {" ,
" ${1:// effect}" ,
"" ,
" return () => {" ,
" ${2:// cleanup}" ,
" };" ,
"}, [${3:dependencies}]);"
] ,
"description" : "React useEffect hook"
} ,
"TypeScript Interface" : {
"prefix" : "interface" ,
"body" : [
"interface ${1:InterfaceName} {" ,
" ${2:property}: ${3:type};" ,
"}"
] ,
"description" : "TypeScript interface"
} ,
"TypeScript Type" : {
"prefix" : "type" ,
"body" : [
"type ${1:TypeName} = {" ,
" ${2:property}: ${3:type};" ,
"};"
] ,
"description" : "TypeScript type alias"
} ,
"Async Function" : {
"prefix" : "asyncfn" ,
"body" : [
"async function ${1:functionName}(${2:params}): Promise<${3:void}> {" ,
" try {" ,
" ${4:// implementation}" ,
" } catch (error) {" ,
" console.error(error);" ,
" throw error;" ,
" }" ,
"}"
] ,
"description" : "Async function with error handling"
}
}
6. Workspace Configuration
{
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.formatOnSave" : true ,
"python.defaultInterpreterPath" : "${workspaceFolder}/.venv/bin/python" ,
"python.testing.pytestPath" : "${workspaceFolder}/.venv/bin/pytest" ,
"python.testing.pytestArgs" : [ "tests" ] ,
"python.analysis.extraPaths" : [ "${workspaceFolder}/src" ] ,
"files.associations" : {
"*.env.*" : "dotenv" ,
"Dockerfile.*" : "dockerfile"
} ,
"search.exclude" : {
"**/node_modules" : true ,
"**/.venv" : true ,
"**/dist" : true ,
"**/coverage" : true
} ,
"editor.rulers" : [ 88 , 120 ] ,
"cSpell.words" : [
"pytest" ,
"asyncio" ,
"pydantic"
]
}
{
"recommendations" : [
"ms-python.python" ,
"ms-python.vscode-pylance" ,
"ms-python.black-formatter" ,
"charliermarsh.ruff" ,
"esbenp.prettier-vscode" ,
"dbaeumer.vscode-eslint" ,
"eamodio.gitlens" ,
"usernamehw.errorlens"
] ,
"unwantedRecommendations" : [ ]
}
{
"version" : "2.0.0" ,
"tasks" : [
{
"label" : "Run Tests" ,
"type" : "shell" ,
"command" : "pytest" ,
"args" : [ "tests/" , "-v" , "--cov=src" ] ,
"group" : {
"kind" : "test" ,
"isDefault" : true
} ,
"presentation" : {
"reveal" : "always" ,
"panel" : "new"
} ,
"problemMatcher" : [ ]
} ,
{
"label" : "Lint" ,
"type" : "shell" ,
"command" : "ruff" ,
"args" : [ "check" , "src/" ] ,
"group" : "build" ,
"presentation" : {
"reveal" : "silent" ,
"panel" : "shared"
} ,
"problemMatcher" : {
"owner" : "ruff" ,
"fileLocation" : [ "relative" , "${workspaceFolder}" ] ,
"pattern" : {
"regexp" : "^(.+):(\\d+):(\\d+): (\\w+) (.+)$" ,
"file" : 1 ,
"line" : 2 ,
"column" : 3 ,
"severity" : 4 ,
"message" : 5
}
}
} ,
{
"label" : "Format" ,
"type" : "shell" ,
"command" : "black" ,
"args" : [ "src/" , "tests/" ] ,
"group" : "build" ,
"presentation" : {
"reveal" : "silent"
}
} ,
{
"label" : "Build Docker" ,
"type" : "shell" ,
"command" : "docker" ,
"args" : [ "build" , "-t" , "${workspaceFolderBasename}:latest" , "." ] ,
"group" : "build" ,
"presentation" : {
"reveal" : "always"
}
} ,
{
"label" : "Start Dev Server" ,
"type" : "shell" ,
"command" : "python" ,
"args" : [ "-m" , "uvicorn" , "src.main:app" , "--reload" ] ,
"isBackground" : true ,
"problemMatcher" : {
"pattern" : {
"regexp" : "."
} ,
"background" : {
"activeOnStart" : true ,
"beginsPattern" : "^.*Uvicorn running.*$" ,
"endsPattern" : "^.*Application startup complete.*$"
}
}
}
]
}
{
"version" : "0.2.0" ,
"configurations" : [
{
"name" : "Python: Current File" ,
"type" : "debugpy" ,
"request" : "launch" ,
"program" : "${file}" ,
"console" : "integratedTerminal" ,
"cwd" : "${workspaceFolder}"
} ,
{
"name" : "Python: FastAPI" ,
"type" : "debugpy" ,
"request" : "launch" ,
"module" : "uvicorn" ,
"args" : [ "src.main:app" , "--reload" , "--port" , "8000" ] ,
"jinja" : true ,
"justMyCode" : true ,
"env" : {
"PYTHONPATH" : "${workspaceFolder}"
}
} ,
{
"name" : "Python: pytest" ,
"type" : "debugpy" ,
"request" : "launch" ,
"module" : "pytest" ,
"args" : [ "tests/" , "-v" , "-s" ] ,
"console" : "integratedTerminal"
} ,
{
"name" : "Node: Current File" ,
"type" : "node" ,
"request" : "launch" ,
"program" : "${file}" ,
"console" : "integratedTerminal"
} ,
{
"name" : "Node: npm start" ,
"type" : "node" ,
"request" : "launch" ,
"runtimeExecutable" : "npm" ,
"runtimeArgs" : [ "run" , "dev" ] ,
"console" : "integratedTerminal"
} ,
{
"name" : "Attach to Docker" ,
"type" : "debugpy" ,
"request" : "attach" ,
"connect" : {
"host" : "localhost" ,
"port" : 5678
} ,
"pathMappings" : [
{
"localRoot" : "${workspaceFolder}" ,
"remoteRoot" : "/app"
}
]
}
] ,
"compounds" : [
{
"name" : "Full Stack" ,
"configurations" : [ "Python: FastAPI" , "Node: npm start" ]
}
]
}
7. Profile Management
code --profile Python --export-default-profile > python-profile.json
code --profile Python --import-profile python-profile.json
Integration Examples
Git Workflow Integration
{
"git.autofetch" : true ,
"git.confirmSync" : false ,
"git.enableSmartCommit" : true ,
"git.postCommitCommand" : "push" ,
"git.fetchOnPull" : true ,
"git.pruneOnFetch" : true ,
"gitlens.views.repositories.branches.layout" : "tree" ,
"gitlens.views.commits.files.layout" : "tree" ,
"gitlens.codeLens.enabled" : true ,
"gitlens.codeLens.recentChange.enabled" : true ,
"gitlens.currentLine.enabled" : true ,
"gitlens.hovers.currentLine.over" : "line" ,
"gitlens.blame.format" : "${author|10} ${date}" ,
"gitlens.blame.heatmap.enabled" : true
}
Remote Development
{
"remote.SSH.remotePlatform" : {
"server1" : "linux" ,
"server2" : "linux"
} ,
"remote.SSH.defaultExtensions" : [
"ms-python.python" ,
"ms-python.vscode-pylance"
] ,
"dev.containers.defaultExtensions" : [
"ms-python.python" ,
"eamodio.gitlens"
] ,
"remote.WSL.fileWatcher.polling" : true
}
{
"name" : "Python Dev" ,
"image" : "mcr.microsoft.com/devcontainers/python:3.12" ,
"features" : {
"ghcr.io/devcontainers/features/docker-in-docker:2" : { }
} ,
"customizations" : {
"vscode" : {
"extensions" : [
"ms-python.python" ,
"ms-python.vscode-pylance" ,
"ms-python.black-formatter" ,
"charliermarsh.ruff"
] ,
"settings" : {
"python.defaultInterpreterPath" : "/usr/local/bin/python"
}
}
} ,
"postCreateCommand" : "pip install -e '.[dev]'" ,
"forwardPorts" : [ 8000 ]
}
Best Practices
1. Extension Management
code --list-extensions | wc -l
2. Performance Optimization {
"files.watcherExclude" : {
"**/node_modules/**" : true ,
"**/.git/objects/**" : true ,
"**/venv/**" : true
} ,
"search.exclude" : {
"**/node_modules" : true ,
"**/dist" : true
} ,
"editor.minimap.enabled" : false ,
"editor.codeLens" : false ,
"editor.quickSuggestions" : {
"other" : true ,
"comments" : false ,
"strings" : false
}
}
3. Team Consistency
{
"editor.formatOnSave" : true ,
"editor.defaultFormatter" : "esbenp.prettier-vscode" ,
"editor.tabSize" : 2 ,
"editor.insertSpaces" : true ,
"files.eol" : "\n"
}
Troubleshooting
Common Issues Issue: Extensions not loading
code --uninstall-extension extension-id
code --install-extension extension-id
rm -rf ~/.config/Code/CachedData
code --prof-startup
code --disable-extensions
Issue: IntelliSense not working
rm -rf .vscode/.ropeproject
rm -rf __pycache__
Issue: Settings not applying
Version History Version Date Changes 1.0.0 2026-01-17 Initial release with comprehensive VS Code configuration
Resources
This skill provides production-ready VS Code configurations for maximum developer productivity across multiple languages and frameworks.