The five keys above are the argument; this is the whole file, for when you want to paste it as it was written. The extras fall into four groups: Python analysis niceties (auto-import completions, inlay hints for return types), editor hygiene (tab size 4, insert spaces, trim trailing whitespace, insert a final newline), performance and noise control (no minimap, excluded caches such as __pycache__ and .pytest_cache, an explorer that hides .venv and node_modules), and git conveniences (git.autofetch, git.confirmSync, GitLens code lenses off to reduce clutter).
{
"python.analysis.typeCheckingMode": "basic",
"python.analysis.autoImportCompletions": true,
"python.analysis.inlayHints.functionReturnTypes": true,
"python.analysis.inlayHints.variableTypes": false,
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"black-formatter.args": ["--line-length", "88"],
"ruff.lint.run": "onSave",
"editor.rulers": [88, 120],
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.renderWhitespace": "trailing",
"editor.bracketPairColorization.enabled": true,
"editor.stickyScroll.enabled": true,
"editor.minimap.enabled": false,
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.exclude": {
"**/__pycache__": true,
"**/.ipynb_checkpoints": true,
"**/*.pyc": true,
"**/.pytest_cache": true,
"**/.mypy_cache": true,
"**/.ruff_cache": true
},
"notebook.output.scrolling": true,
"notebook.output.textLineLimit": 500,
"notebook.cellToolbarLocation": "right",
"terminal.integrated.scrollback": 10000,
"terminal.integrated.fontSize": 13,
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.linux": "bash",
"git.autofetch": true,
"git.confirmSync": false,
"gitlens.codeLens.enabled": false,
"search.exclude": {
"**/.venv": true,
"**/node_modules": true,
"**/__pycache__": true,
"**/dist": true,
"**/*.egg-info": true
}
}
One detail worth noticing: the format-on-save rule is scoped to [python] and names Black explicitly, so the setting only touches Python files and never fights another language’s formatter. editor.rulers, by contrast, is global — the 88-column guide follows Black’s default line length, but the 120 marker is useful in every language.