# VS Code — full corpus # LLM Wiki An open-source template for building LLM-powered knowledge bases, following [Andrej Karpathy's "LLM Wiki" pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f). You provide raw sources. The LLM reads them, writes structured wiki pages, cross-links everything, and maintains it over time. You never edit the wiki directly — you curate sources and ask questions. ## How It Works The system has three layers: ``` raw/ Sources you collect (articles, transcripts, notes, PDFs) wiki/ LLM-written & maintained pages (summaries, concepts, entities, syntheses) CLAUDE.md Schema that tells the LLM how to structure everything ``` Three operations drive the workflow: | Operation | Trigger | What happens | |-----------|---------|--------------| | **Ingest** | "ingest raw/my-source.txt" | LLM reads the source, creates a summary page, creates/updates concept and entity pages, adds cross-links, updates the index and log | | **Query** | Ask any question | LLM searches the wiki, synthesizes an answer with citations, optionally creates a synthesis page for novel insights | | **Lint** | "lint" or "health check" | LLM audits all pages for orphans, contradictions, missing links, incomplete sections, and low-confidence claims — fixes what it can, reports the rest | ## Quick Start 1. **Clone this repo** ```bash git clone https://github.com/YOUR_USERNAME/llm-wiki.git my-knowledge-base cd my-knowledge-base ``` 2. **Customize CLAUDE.md** for your domain - Update the Purpose section with your topic - Replace the placeholder tagging taxonomy with your own categories - Adjust confidence level descriptions if needed - Everything else (workflows, page formats, linking rules) works as-is 3. **Drop sources into `raw/`** - Text files, transcripts, articles, notes — any plain text - These are immutable once added; the LLM never modifies them 4. **Tell the LLM to ingest** ``` ingest raw/my-first-source.txt ``` The LLM will create summary pages, concept pages, entity pages, cross-links, and update the index. 5. **Ask questions** ``` What are the key differences between X and Y? ``` The LLM answers from the wiki, citing specific pages. 6. **Run health checks** ``` lint ``` The LLM audits the wiki and fixes issues. ## Directory Structure ``` . ├── CLAUDE.md # Schema — the LLM's instructions ├── raw/ # Your source documents (immutable) └── wiki/ ├── index.md # Master catalog of all pages ├── log.md # Append-only activity log ├── dashboard.md # Dataview dashboard (Obsidian) ├── analytics.md # Charts View analytics (Obsidian) ├── flashcards.md # Spaced repetition cards ├── summaries/ # One page per source document ├── concepts/ # Concept and framework pages ├── entities/ # People, tools, organizations, etc. ├── syntheses/ # Cross-cutting analyses and comparisons ├── journal/ # Research/session journal entries │ └── template.md # Journal entry template └── presentations/ # Marp slide decks ``` ## Enhancements This template includes several extras beyond the core wiki pattern: ### Dataview Dashboard (`wiki/dashboard.md`) Live queries that surface low-confidence pages, recent updates, concepts by tag, and pages with the most sources. Requires the [Dataview](https://github.com/blacksmithgu/obsidian-dataview) Obsidian plugin. ### Charts View Analytics (`wiki/analytics.md`) Visual analytics with pie charts, bar charts, and word clouds. Requires the [Charts View](https://github.com/caronchen/obsidian-chartsview-plugin) Obsidian plugin. ### Mermaid Diagrams Use Mermaid code blocks in any wiki page to create flowcharts, sequence diagrams, or concept maps. Native support in Obsidian and GitHub. ### Marp Slides (`wiki/presentations/`) Create slide decks from markdown using [Marp](https://marp.app/). Drop presentation files in this directory. ### Research Journal (`wiki/journal/`) Track your research sessions, experiments, or applied work with the included template. The LLM can reference journal entries when answering queries. ### Spaced Repetition (`wiki/flashcards.md`) Flashcards in the format used by the [Spaced Repetition](https://github.com/st3v3nmw/obsidian-spaced-repetition) Obsidian plugin. Ask the LLM to generate flashcards from any wiki page. ### MCP Server This repo works with Claude Code's MCP server capabilities. Point an MCP-compatible client at this repo and the LLM can read/write the wiki programmatically. ## Customizing for Your Domain The schema in `CLAUDE.md` is domain-agnostic. To adapt it: 1. **Purpose** — Describe your knowledge domain in one paragraph 2. **Tagging taxonomy** — Replace placeholder categories with your own (e.g., for a cooking KB: `cuisine`, `technique`, `ingredient`, `equipment`) 3. **Confidence levels** — Adjust the descriptions to match your domain's evidence standards 4. **Entity types** — Update the entity page description to match what entities mean in your domain (people, tools, companies, etc.) 5. **Journal template** — Customize `wiki/journal/template.md` for your workflow Everything else — page format, linking conventions, workflows, rules — is universal and works across domains. ## Example Domains This template works for any knowledge-intensive topic: - **Research notes** — papers, experiments, methodologies - **Book analysis** — themes, characters, author techniques - **Competitive analysis** — companies, products, market trends - **Course notes** — lectures, readings, key concepts - **Personal development** — frameworks, habits, book summaries - **Technical documentation** — APIs, architectures, design patterns - **Hobby deep-dives** — any subject you want to master ## License MIT --- title: "Knowledge Base Index" type: index updated: 2026-06-19 --- # Knowledge Base Index Master catalog of all wiki pages. Every page in the wiki must have an entry here. ## Concepts | Page | Tags | Confidence | Updated | |------|------|------------|---------| | [what-is-vscode](concepts/what-is-vscode.md) | vscode, editor, overview | high | 2026-06-19 | | [editing-and-intellisense](concepts/editing-and-intellisense.md) | editing, intellisense, completion | high | 2026-06-19 | | [refactoring-and-navigation](concepts/refactoring-and-navigation.md) | refactoring, navigation, search | high | 2026-06-19 | | [settings-and-sync](concepts/settings-and-sync.md) | settings, configuration, sync | high | 2026-06-19 | | [keybindings-and-command-palette](concepts/keybindings-and-command-palette.md) | keybindings, command-palette | high | 2026-06-19 | | [extensions](concepts/extensions.md) | extensions, marketplace, security | high | 2026-06-19 | | [customization](concepts/customization.md) | themes, profiles, layout | high | 2026-06-19 | | [snippets](concepts/snippets.md) | snippets, templates | high | 2026-06-19 | | [workspaces-and-trust](concepts/workspaces-and-trust.md) | workspaces, multi-root, trust | high | 2026-06-19 | | [debugging-and-testing](concepts/debugging-and-testing.md) | debugging, breakpoints, testing | high | 2026-06-19 | | [tasks](concepts/tasks.md) | tasks, build, automation | high | 2026-06-19 | | [integrated-terminal](concepts/integrated-terminal.md) | terminal, shell-integration | high | 2026-06-19 | | [source-control](concepts/source-control.md) | git, source-control, github | high | 2026-06-19 | | [remote-development](concepts/remote-development.md) | remote, ssh, tunnels, wsl | high | 2026-06-19 | | [dev-containers](concepts/dev-containers.md) | devcontainers, docker | high | 2026-06-19 | ## Entities | Page | Tags | Updated | |------|------|---------| | [extension-api](entities/extension-api.md) | extension-api, lsp, dap | 2026-06-19 | ## Summaries | Page | Source | Key Topics | Created | |------|--------|------------|---------| | [docs-catalog](summaries/docs-catalog.md) | vscode-docs repo | area map + reference spaces | 2026-06-19 | ## Syntheses | Page | Pages Compared | Created | |------|----------------|---------| | [setup-and-troubleshooting](syntheses/setup-and-troubleshooting.md) | setup/CLI/remote/extension issues | 2026-06-19 | ## Statistics - **Total pages**: 18 - **Concepts**: 15 - **Entities**: 1 - **Summaries**: 1 - **Syntheses**: 1 - **Sources ingested**: 86 microsoft/vscode-docs pages (getstarted, editor, editing, configure, customization, debugtest, sourcecontrol, terminal, reference, remote, devcontainers, extension-docs, setup) - **High confidence**: 16 - **Medium confidence**: 2 --- title: "Customization: Themes, Profiles, Layout" type: concept tags: [themes, profiles, layout, locales] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-configure-themes-md.md, raw/github_doc-docs-configure-profiles-md.md, raw/github_doc-docs-configure-custom-layout-md.md, raw/github_doc-docs-configure-locales-md.md] --- # Customization: Themes, Profiles, Layout ## Themes - **Color themes** — change editor and UI colors (`Ctrl+K Ctrl+T` to pick); thousands on the Marketplace, plus `workbench.colorCustomizations` / `editor.tokenColorCustomizations` for tweaks. - **File icon themes** and **product icon themes** restyle the explorer and UI glyphs. ## Profiles **Profiles** bundle a complete configuration — [settings](settings-and-sync.md), [keybindings](keybindings-and-command-palette.md), [extensions](extensions.md), [snippets](snippets.md), and UI state — that you switch between as a unit. Use cases: a "Python" profile vs a "Web" profile vs a "Demo/teaching" profile, each with only the relevant extensions enabled (faster, less clutter). Profiles can be exported/shared and sync via [Settings Sync](settings-and-sync.md). ## Layout VS Code's workbench is rearrangeable: move the **panel** (terminal/problems) and **side bar** to any edge, drag editor groups into **splits** (horizontal/vertical/grid), use **Zen mode** and **centered layout** for focus, and toggle the activity bar/status bar. Custom layouts persist per [workspace](workspaces-and-trust.md). ## Locales The **display language** is changed via the `Configure Display Language` command, which installs a **Language Pack** extension (e.g. Spanish, Japanese). This localizes the UI; it's independent of the programming languages you edit. All of this customization travels with you through [Settings Sync](settings-and-sync.md) and Profiles. --- title: "Debugging & Testing" type: concept tags: [debugging, breakpoints, launch-json, testing] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-debugtest-debugging-md.md, raw/github_doc-docs-debugtest-debugging-configuration-md.md, raw/github_doc-docs-debugtest-testing-md.md] --- # Debugging & Testing ## Debugging VS Code has a built-in graphical **debugger** (the Run and Debug view, `Ctrl+Shift+D`): - **Breakpoints** — line, conditional, logpoints (log without stopping), and exception breakpoints. - **Stepping** — step over/into/out, continue, restart. - **Inspection** — Variables, Watch, Call Stack, and Debug Console for live expressions. - **Inline values** and hover evaluation while paused. Language support comes from **debugger extensions** (Node.js is built in; Python, C++, Go, etc. via extensions). ## launch.json Debug configurations live in **`.vscode/launch.json`**: each entry specifies `type` (debugger), `request` (`launch` or `attach`), program/args, env, and `preLaunchTask` (run a [task](tasks.md) first, e.g. build). You can `launch` a new process or `attach` to a running one (and to remote processes via [Remote Development](remote-development.md)). Compound configurations debug multiple targets at once. Variables like `${workspaceFolder}` and `${file}` parameterize configs ([tasks](tasks.md) shares this variable syntax). ## Testing The **Testing** view integrates test frameworks (via extensions) into a unified UI: discover tests in the explorer, run/debug individual tests or suites, see pass/fail gutters inline, and view output. It uses the Test API so any framework's extension can plug in. Debugging a failing test reuses the same debugger and breakpoints. Workspace Trust gates debugging/tasks in untrusted folders ([workspaces-and-trust](workspaces-and-trust.md)). --- title: "Dev Containers" type: concept tags: [devcontainers, docker, reproducible, devcontainer-json] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-devcontainers-containers-md.md, raw/github_doc-docs-devcontainers-create-dev-container-md.md, raw/github_doc-docs-devcontainers-devcontainerjson-reference-md.md] --- # Dev Containers A **dev container** lets you use a Docker container as a full-featured, reproducible development environment — a specialization of [Remote Development](remote-development.md) where the "remote" is a container. ## devcontainer.json The environment is declared in **`.devcontainer/devcontainer.json`**, committed to the repo so every contributor gets an identical setup: - **`image`** or **`dockerfile`**/**`dockerComposeFile`** — the base environment. - **`features`** — composable add-ons (install Node, Python, the GitHub CLI, etc.) without writing Dockerfile steps. - **`customizations.vscode`** — [extensions](extensions.md) and [settings](settings-and-sync.md) to apply inside the container. - **`forwardPorts`** — expose container ports locally. - **`postCreateCommand`** — run setup (install deps) after the container builds. - **`remoteUser` / mounts / env** — finish the environment. ## Workflow - **Reopen in Container** — VS Code builds the container and reconnects inside it; your repo is mounted and the toolchain runs in the container. - **Create a config** — the "Add Dev Container Configuration Files" command scaffolds one from templates. - **Attach** to an already-running container for ad-hoc work. - **Dev Container CLI** (`devcontainer`) builds/runs the same config in CI or outside VS Code. ## Why it matters The same `devcontainer.json` works in VS Code locally, in [GitHub Codespaces](remote-development.md) (cloud), and in CI — one definition, identical environments everywhere, eliminating "works on my machine." It's the reproducible-environment standard the broader ecosystem (including non-VS-Code tools) has adopted. --- title: "Editing & IntelliSense" type: concept tags: [editing, intellisense, completion, multi-cursor] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-editing-codebasics-md.md, raw/github_doc-docs-editing-intellisense-md.md, raw/github_doc-docs-editing-editingevolved-md.md] --- # Editing & IntelliSense ## Code basics The editor supports the expected power-editing features: **multi-cursor** (add cursors with Alt-click or `Cmd/Ctrl+D` to select next occurrence), column/box selection, line move/copy, find-and-replace with regex, bracket matching, code folding, and minimap navigation. ## IntelliSense **IntelliSense** is VS Code's intelligent code-completion: context-aware suggestions for variables, members, functions, and imports, with parameter hints and inline documentation. It's powered per-language by the active [extension](extensions.md)'s **language server** (LSP), so completion quality depends on the installed language support. Trigger manually with `Ctrl+Space`; suggestions show types, docs, and auto-imports. ## "Editing evolved" features - **Go to Definition / Peek** — jump to or inline-preview a symbol's definition ([refactoring-and-navigation](refactoring-and-navigation.md)). - **Hover** — type info and docs on hover. - **Quick Fixes & code actions** — lightbulb suggestions to fix errors or apply refactors. - **Format on save / format document** — via the language formatter. - **Error squiggles & Problems panel** — diagnostics from language servers and linters. ## Snippets Reusable code templates expand from a prefix — built-in, extension-provided, or [user-defined](snippets.md). IntelliSense, snippets, and Quick Fixes together are what make VS Code feel like an IDE while staying lightweight. --- title: "Extensions & the Marketplace" type: concept tags: [extensions, marketplace, security] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-configure-extensions-extensions-md.md, raw/github_doc-docs-configure-extensions-extension-marketplace-md.md, raw/github_doc-docs-configure-extensions-extension-runtime-security-md.md, raw/github_doc-docs-remote-remote-overview-md.md] --- # Extensions & the Marketplace Extensions add languages, debuggers, linters, themes, and tools — they're how VS Code becomes a full environment for any stack. ## Installing & managing - **Extensions view** (`Ctrl+Shift+X`) — search, install, disable, uninstall, and update from the **Visual Studio Marketplace**. - **Per-workspace** — disable/enable extensions per project; **recommended extensions** (`.vscode/extensions.json`) suggest a team's toolset on repo open. - **Extension packs** — bundles that install a curated set together. - Install via CLI: `code --install-extension `. ## Where extensions run Extensions typically run in a separate **Extension Host** process, which helps keep the editor responsive if an extension misbehaves. In [remote](remote-development.md)/[dev-container](dev-containers.md) setups, extensions are classified **UI** (run locally) or **Workspace** (run on the remote) — important when an extension needs access to the remote filesystem/toolchain. ## Runtime security Extensions are powerful (they run code), so VS Code adds guardrails: - **Workspace Trust** gates extension functionality in untrusted folders ([workspaces-and-trust](workspaces-and-trust.md)). - **Signature verification** and publisher reputation on the Marketplace. - Review permissions and publisher before installing; prefer verified publishers and high-install extensions. Extensions are built on the [extension API](../entities/extension-api.md); the same API underlies the editor's own features. --- title: "Integrated Terminal" type: concept tags: [terminal, shell, shell-integration, profiles] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-terminal-basics-md.md, raw/github_doc-docs-terminal-profiles-md.md, raw/github_doc-docs-terminal-shell-integration-md.md, raw/github_doc-docs-terminal-advanced-md.md] --- # Integrated Terminal A full terminal lives inside VS Code (`` Ctrl+` ``), so you never leave the editor to run commands. ## Basics - **Multiple terminals** — open many, name them, and arrange them in **split** panes or tabs. - **Run in any shell** — bash, zsh, PowerShell, cmd, Git Bash, WSL. - Links in output (URLs, file paths) are clickable; selection/copy-paste behave like a native terminal. ## Profiles A **terminal profile** defines a shell + its args + env + icon. Set the default per-OS (`terminal.integrated.defaultProfile.`) and define custom profiles (e.g. a profile that activates a Python venv, or opens an SSH session). Switch profiles from the terminal dropdown. ## Shell integration **Shell integration** wires the shell to VS Code for richer features (auto-enabled for common shells, or scripted manually): - **Command decorations** — gutter marks showing each command's success/failure. - **Command navigation** — jump between previous commands. - **Run recent command / go to recent directory** — history-aware quick pick. - **Sticky scroll** of the current command, and accurate cwd detection. ## Advanced Customize appearance (font, cursor, colors via [themes](customization.md)), enable GPU acceleration, tune scrollback, and use **task** integration so [tasks](tasks.md) run in dedicated terminals. The terminal also respects [Workspace Trust](workspaces-and-trust.md) and integrates with [remote](remote-development.md) sessions (a remote terminal runs on the remote host). --- title: "Keybindings & the Command Palette" type: concept tags: [keybindings, command-palette, shortcuts, keymaps] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-configure-keybindings-md.md, raw/github_doc-docs-customization-keyboard-shortcuts-md.md, raw/github_doc-docs-reference-default-keybindings-md.md] --- # Keybindings & the Command Palette ## Command Palette `Ctrl/Cmd+Shift+P` opens the **Command Palette** — a searchable list of *every* command in the editor and installed [extensions](extensions.md). It's the fastest way to do anything without memorizing shortcuts; `Ctrl/Cmd+P` is the file-quick-open variant, and prefixing with `>` switches to commands, `@` to symbols, `:` to line numbers. ## Keybindings Almost every command can be bound to a key. Customize via the **Keyboard Shortcuts editor** (`Ctrl+K Ctrl+S`) or directly in **`keybindings.json`**: ```json { "key": "ctrl+alt+t", "command": "workbench.action.tasks.runTask", "when": "editorTextFocus" } ``` - **`when` clauses** — context conditions that make a binding active only in certain states (editor focused, terminal focused, language matches). This lets one key do different things in different contexts. - **Chords** — two-step bindings like `Ctrl+K Ctrl+S`. - **Default keybindings** — a full platform-specific reference lists them all; the Shortcuts editor shows source (default/user/extension) and conflicts. ## Keymaps **Keymap extensions** make VS Code mimic other editors (Vim, Sublime, IntelliJ, Atom) for muscle memory. Keybindings sync across machines via [Settings Sync](settings-and-sync.md). Mastering the Command Palette plus a handful of custom bindings is the biggest single productivity lever in VS Code. --- title: "Refactoring & Code Navigation" type: concept tags: [refactoring, navigation, search, symbols] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-editing-refactoring-md.md, raw/github_doc-docs-editing-tips-and-tricks-md.md, raw/github_doc-docs-editor-glob-patterns-md.md] --- # Refactoring & Code Navigation ## Navigation - **Go to Definition** (`F12`) / **Peek Definition** (`Alt+F12`) — jump to or inline-view where a symbol is defined. - **Go to References** / **Find All References** — every usage of a symbol. - **Go to Symbol** (`Ctrl+Shift+O`) in a file, or **across the workspace** (`Ctrl+T`). - **Go to File** (`Ctrl+P`) — fuzzy quick-open. - **Breadcrumbs** and the **Outline view** for structural navigation. - **Back/Forward** navigation through your jump history. ## Refactoring VS Code exposes language-server refactorings via the **Refactor** menu / lightbulb code actions: - **Rename Symbol** (`F2`) — rename across all references safely. - **Extract** method/function/variable/constant. - **Move** to a new file, **inline**, and other language-specific refactors. - **Quick Fixes** for diagnostics (add import, implement interface, etc.). Available refactorings depend on the language [extension](extensions.md). ## Search & glob patterns The **Search** view does workspace-wide find/replace (regex supported). Scope it with **glob patterns** in `files.include`/`files.exclude` and `search.exclude` [settings](settings-and-sync.md): `**/*.ts` (all TS files), `**/node_modules` (exclude), `{a,b}` brace expansion. The same glob syntax governs file watching, file associations, and many extension configurations — learning it pays off across the editor. --- title: "Remote Development" type: concept tags: [remote, ssh, tunnels, wsl, server] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-remote-remote-overview-md.md, raw/github_doc-docs-remote-ssh-md.md, raw/github_doc-docs-remote-tunnels-md.md, raw/github_doc-docs-remote-vscode-server-md.md] --- # Remote Development **Remote Development** runs the VS Code **UI locally** while your code, terminal, debugger, and [extensions](extensions.md) execute on a **remote host** — so you edit as if local but compute happens elsewhere. ## The remote targets - **Remote - SSH** — connect to any SSH server; the VS Code Server installs automatically on the host. Edit/build/debug on the remote machine with full toolchain access. - **WSL** — treat a Windows Subsystem for Linux distro as the remote, for native Linux development on Windows. - **Dev Containers** — develop inside a Docker container ([dev-containers](dev-containers.md)). - **Tunnels** — `code tunnel` exposes a machine securely (no SSH setup) so you can connect from another device or **vscode.dev** in a browser. ## How it works A lightweight **VS Code Server** runs on the remote; the local client handles UI only. Extensions split into **UI** (run locally — themes, keymaps) and **Workspace** (run on the remote — language servers, linters), so language features see the remote filesystem and tools. The integrated [terminal](integrated-terminal.md) and [debugger](debugging-and-testing.md) operate on the remote. ## Why use it - Develop against the exact OS/runtime of production. - Use a powerful remote machine from a thin laptop. - Keep dependencies off your local machine (reproducible per-project environments via [dev containers](dev-containers.md)). - Onboard fast — clone-and-go without local setup. Port forwarding surfaces remote dev servers locally; troubleshooting and platform-specific notes (Linux prerequisites, networks) are mapped in [docs-catalog](../summaries/docs-catalog.md). --- title: "Settings & Settings Sync" type: concept tags: [settings, configuration, settings-sync, json] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-configure-settings-md.md, raw/github_doc-docs-configure-settings-sync-md.md, raw/github_doc-docs-reference-default-settings-md.md] --- # Settings & Settings Sync ## Settings scopes VS Code settings layer from broad to specific: - **User settings** — apply everywhere (`settings.json` in your user profile). - **Workspace settings** — committed in `.vscode/settings.json`, shared with the team, override user settings for that project. - **Folder settings** — per-folder in a multi-root [workspace](workspaces-and-trust.md). - **Language-specific** — scope a setting to one language (`"[python]": { ... }`). The **Settings editor** (UI) and raw **`settings.json`** are two views of the same store; the JSON is authoritative and reviewable. Every setting has a default (the full default reference lists them all). ## Common settings `editor.formatOnSave`, `editor.tabSize`, `files.autoSave`, `editor.defaultFormatter`, `files.exclude`, `telemetry.telemetryLevel`. Extensions contribute their own namespaced settings. ## Settings Sync **Settings Sync** backs up and synchronizes your configuration across machines via a GitHub/Microsoft account: settings, [keybindings](keybindings-and-command-palette.md), [snippets](snippets.md), [extensions](extensions.md), UI state, and [profiles](customization.md). Turn it on once and any new machine restores your environment. You choose which categories to sync and can resolve conflicts. Combined with [Profiles](customization.md), it makes VS Code portable across devices and contexts. --- title: "Snippets" type: concept tags: [snippets, templates, productivity] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-editing-userdefinedsnippets-md.md] --- # Snippets **Snippets** are reusable code templates that expand from a short prefix — typing `for` + Tab can scaffold a full loop. They come from three places: built into VS Code, contributed by [extensions](extensions.md), and **user-defined**. ## User-defined snippets Create them via **Snippets: Configure Snippets** — choose global, per-language, or per-[project](workspaces-and-trust.md) scope, stored as JSON: ```json "Print to console": { "prefix": "log", "body": ["console.log('$1');", "$2"], "description": "Log output to console" } ``` ## Snippet syntax - **Tabstops** — `$1`, `$2`, `$0` (final position); Tab jumps between them. - **Placeholders** — `${1:defaultText}` pre-fills editable text. - **Choices** — `${1|one,two,three|}` offers a dropdown. - **Variables** — `$TM_FILENAME`, `$CURRENT_YEAR`, `$CLIPBOARD`, `$TM_SELECTED_TEXT`, etc. - **Transforms** — regex transforms on variables/placeholders. Snippets appear in [IntelliSense](editing-and-intellisense.md) suggestions and can be bound to [keys](keybindings-and-command-palette.md) for instant insertion. Project-scoped snippets (in `.vscode/`) share team boilerplate; personal ones sync via [Settings Sync](settings-and-sync.md). --- title: "Source Control (Git)" type: concept tags: [git, source-control, commits, merge, github] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-sourcecontrol-overview-md.md, raw/github_doc-docs-sourcecontrol-staging-commits-md.md, raw/github_doc-docs-sourcecontrol-branches-worktrees-md.md, raw/github_doc-docs-sourcecontrol-merge-conflicts-md.md, raw/github_doc-docs-sourcecontrol-github-md.md] --- # Source Control (Git) VS Code has first-class **Git** integration in the **Source Control view** (`Ctrl+Shift+G`) — no terminal needed for everyday version control. ## Everyday workflow - **Stage & commit** — stage individual files or hunks (line-level staging), write a commit message, and commit. Diff any file against HEAD inline. - **Sync** — pull/push, fetch, and see ahead/behind counts in the status bar. - **Branches & worktrees** — create/switch/merge branches from the status bar or palette; manage multiple **worktrees** for parallel branches. - **History & blame** — view file/line history (with the GitLens extension or built-in timeline) and per-line authorship. ## Merge conflicts When a merge/rebase conflicts, VS Code opens a **conflict editor** with inline "Accept Current / Incoming / Both" actions and a **3-way Merge Editor** showing yours, theirs, and the result side by side — far easier than editing conflict markers by hand. ## GitHub integration With the GitHub Pull Requests extension you can authenticate, **create and review pull requests**, browse issues, and check out PR branches without leaving the editor — review diffs, leave comments, and merge. This connects the local Git workflow to the GitHub collaboration loop. ## Notes VS Code uses your installed `git`; provider is auto-detected per folder. [Workspace Trust](workspaces-and-trust.md) applies. Source control actions are also in the Command Palette and bindable to [keys](keybindings-and-command-palette.md). --- title: "Tasks" type: concept tags: [tasks, build, automation, tasks-json] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-debugtest-tasks-md.md, raw/github_doc-docs-reference-tasks-appendix-md.md, raw/github_doc-docs-reference-variables-reference-md.md] --- # Tasks **Tasks** run external tools — build, lint, test, bundlers, scripts — from inside VS Code without leaving the editor, defined in **`.vscode/tasks.json`**. ## Defining tasks ```json { "version": "2.0.0", "tasks": [{ "label": "build", "type": "shell", "command": "npm run build", "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$tsc"] }] } ``` - **`type`** — `shell` (run in a shell) or `process` (run an executable directly). - **`group`** — mark as the default build (`Ctrl+Shift+B`) or test task. - **Auto-detection** — VS Code auto-detects tasks from npm scripts, Gulp, Grunt, Make, etc. - **`dependsOn`** — chain tasks (sequential or parallel). - **`presentation`** — control the terminal panel behavior. ## Problem matchers A **problem matcher** parses task output (compiler/linter errors) into entries in the **Problems** panel with clickable file/line links — `$tsc`, `$eslint-stylish`, etc., or a custom regex. This turns any CLI tool's output into navigable diagnostics. ## Variables Tasks (and [launch.json](debugging-and-testing.md)) use substitution variables: `${workspaceFolder}`, `${file}`, `${relativeFile}`, `${fileBasename}`, `${lineNumber}`, `${env:NAME}`, `${config:setting}`, and `${input:...}` for prompted values. The same variable reference applies across tasks, debugging, and many settings. Run tasks from the Command Palette (`Tasks: Run Task`) or bind them to [keys](keybindings-and-command-palette.md); pair `preLaunchTask` with debugging to build before each run. --- title: "What is VS Code" type: concept tags: [vscode, editor, overview] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-getstarted-overview-md.md, raw/github_doc-docs-editor-whyvscode-md.md] --- # What is VS Code **Visual Studio Code** is a free, lightweight, cross-platform (Windows/macOS/Linux) source-code editor from Microsoft. It sits between a plain text editor and a full IDE: fast and minimal by default, but extensible into a full development environment via [extensions](extensions.md). ## What's built in - **Smart editing** — syntax highlighting, [IntelliSense](editing-and-intellisense.md) completions, [refactoring and navigation](refactoring-and-navigation.md). - **Debugging** — built-in [debugger](debugging-and-testing.md) with breakpoints, watch, call stack. - **Source control** — first-class [Git integration](source-control.md). - **Integrated terminal** — a full [terminal](integrated-terminal.md) inside the editor. - **Tasks** — run build/lint/test tools as [tasks](tasks.md). - **Customization** — [settings](settings-and-sync.md), [keybindings](keybindings-and-command-palette.md), [themes & profiles](customization.md), [snippets](snippets.md). ## The extensibility model VS Code ships a small core; language support, debuggers, linters, and tools come from the **Marketplace** ([extensions](extensions.md)). The same [extension API](../entities/extension-api.md) powers everything, so the editor adapts to any language or workflow. **Remote development** ([remote-development](remote-development.md)) and [dev containers](dev-containers.md) let the UI run locally while code executes on a server, container, or WSL. ## Editions VS Code (stable + Insiders) is the desktop app; **vscode.dev** runs in the browser; **VS Code Server / tunnels** enable remote access. Microsoft also builds GitHub Copilot/agent features on top, but those are a separate product surface (out of scope here). Everything is driven from the **Command Palette** ([keybindings-and-command-palette](keybindings-and-command-palette.md)). Full topic map: [docs-catalog](../summaries/docs-catalog.md). --- title: "Workspaces & Workspace Trust" type: concept tags: [workspaces, multi-root, workspace-trust, security] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-editing-workspaces-multi-root-workspaces-md.md, raw/github_doc-docs-editing-workspaces-workspace-trust-md.md] --- # Workspaces & Workspace Trust ## What a workspace is A **workspace** is the project context VS Code operates in — usually a single opened folder. [Settings](settings-and-sync.md), [tasks](tasks.md), [debug configs](debugging-and-testing.md), and recommended [extensions](extensions.md) live in its `.vscode/` folder. ## Multi-root workspaces A **multi-root workspace** groups several folders into one window, saved as a `.code-workspace` file. Useful when a project spans multiple repos (frontend + backend + shared lib) or you want unified search/debug across them. Settings can apply workspace-wide or per-folder, and the `.code-workspace` file can carry its own settings, folder list, and extension recommendations. ## Workspace Trust **Workspace Trust** is a security boundary: opening a folder you don't trust enters **Restricted Mode**, which disables features that can execute code automatically — [tasks](tasks.md), [debugging](debugging-and-testing.md), many [extensions](extensions.md), and workspace-defined settings that could run commands. You explicitly **Trust** a folder to enable full functionality. This protects against the "clone a repo, open it, get pwned" attack — a malicious repo's `.vscode/tasks.json` or an auto-running extension can't execute until you trust it. Trust decisions are remembered per folder; you can manage trusted folders and configure what Restricted Mode allows. Always review unfamiliar code in Restricted Mode first. --- title: "Extension API" type: entity tags: [extension-api, development, contribution-points] updated: 2026-06-19 confidence: medium sources: [raw/github_doc-docs-extension-docs-overview-md.md] --- # Extension API The **VS Code Extension API** is how you build [extensions](../concepts/extensions.md) — and how VS Code's own features are built (the editor "eats its own dog food"). Extensions are Node.js packages activated by events. ## Building blocks - **`package.json` manifest** — declares metadata, **activation events** (when the extension loads: on a command, language, file pattern, startup), and **contribution points**. - **Contribution points** — declarative additions to the editor: `commands`, `keybindings`, `menus`, `configuration` ([settings](../concepts/settings-and-sync.md)), `languages`, `grammars`, `themes`, `snippets`, `views`, `viewsContainers`, `debuggers`, `taskDefinitions`. - **The `vscode` API module** — programmatic access at runtime: `window`, `workspace`, `commands`, `languages`, `debug`, `tasks`, plus the Tree View, Webview, and Test APIs. ## Key API surfaces - **Language Server Protocol (LSP)** — the recommended way to add rich language support ([IntelliSense](../concepts/editing-and-intellisense.md), diagnostics) reusably across editors. - **Debug Adapter Protocol (DAP)** — add a [debugger](../concepts/debugging-and-testing.md) for a runtime. - **Webview API** — custom UI panels (HTML/JS). - **Tree View / Test / Notebook APIs** — custom explorer views, test integration, notebook renderers. ## Getting started Scaffold with **Yeoman** (`yo code`), develop with an Extension Development Host (F5), and publish to the Marketplace with **`vsce`**. The full API reference and guides live at code.visualstudio.com/api (mapped in [docs-catalog](../summaries/docs-catalog.md)); this page is the orientation, not the reference. --- title: "Activity Log" type: log --- # Activity Log Append-only record of all wiki changes. ## Format Each entry follows this format: ``` ### YYYY-MM-DD HH:MM — [Action Type] - **Source/Trigger**: what initiated the action - **Pages created**: list of new pages - **Pages updated**: list of updated pages - **Notes**: any contradictions flagged, decisions made ``` --- ### 2026-04-08 00:00 — Setup - **Source/Trigger**: Repository initialized - **Pages created**: index.md, log.md, dashboard.md, analytics.md, flashcards.md - **Pages updated**: none - **Notes**: Empty knowledge base ready for first source ingestion ### 2026-06-19 00:00 — Initial curation (medium rung) - **Source/Trigger**: 86 microsoft/vscode-docs pages (per-dir fetchers) - **Pages created**: 15 concepts, 1 entity (extension-api), 1 summary (docs-catalog), 1 synthesis (setup-and-troubleshooting) - **Pages updated**: index.md - **Notes**: Per-dir fetchers (starvation lesson applied) gave balanced coverage. Core-editor focus; language-specific dirs (cpp/csharp/java/python/nodejs/datascience), Azure, and Copilot/agents/chat excluded by design. setup-and-troubleshooting confidence:medium. --- title: "Docs Catalog" type: summary tags: [catalog, map, reference] updated: 2026-06-19 confidence: high sources: [raw/github_doc-docs-getstarted-overview-md.md, raw/github_doc-docs-reference-default-settings-md.md] --- # Docs Catalog Map of the microsoft/vscode-docs corpus this wiki distills (docs/ areas mirrored in `raw/` as `github_doc-docs---md.md`). Use it to find the exact raw source. | Area | Raw prefix | Wiki coverage | |---|---|---| | Get started / setup | `getstarted-*`, `setup-*` | [what-is-vscode](../concepts/what-is-vscode.md), [setup-and-troubleshooting](../syntheses/setup-and-troubleshooting.md) | | Editing | `editing-*`, `editor-*` | [editing-and-intellisense](../concepts/editing-and-intellisense.md), [refactoring-and-navigation](../concepts/refactoring-and-navigation.md), [snippets](../concepts/snippets.md), [workspaces-and-trust](../concepts/workspaces-and-trust.md) | | Configure | `configure-settings*`, `configure-keybindings`, `configure-extensions-*`, `configure-themes`, `configure-profiles`, `configure-locales`, `configure-custom-layout` | [settings-and-sync](../concepts/settings-and-sync.md), [keybindings-and-command-palette](../concepts/keybindings-and-command-palette.md), [extensions](../concepts/extensions.md), [customization](../concepts/customization.md) | | Debug & test | `debugtest-*` | [debugging-and-testing](../concepts/debugging-and-testing.md), [tasks](../concepts/tasks.md) | | Reference | `reference-default-settings`, `reference-default-keybindings`, `reference-tasks-appendix`, `reference-variables-reference` | [settings-and-sync](../concepts/settings-and-sync.md), [tasks](../concepts/tasks.md) | | Terminal | `terminal-*` | [integrated-terminal](../concepts/integrated-terminal.md) | | Source control | `sourcecontrol-*` | [source-control](../concepts/source-control.md) | | Remote | `remote-*` | [remote-development](../concepts/remote-development.md) | | Dev containers | `devcontainers-*` | [dev-containers](../concepts/dev-containers.md) | | Extension API | `extension-docs-overview` | [extension-api](../entities/extension-api.md) | ## Not ingested (look up live) - **Full default settings & keybindings reference** — exhaustive enumerations; use the in-editor settings/shortcuts editors or the reference pages. - **Language-specific guides** — JS/TS, Python, C++, C#, Java, Go, data science, etc. (separate docs dirs) — install the language extension and see its docs. - **Copilot / Chat / Agents** — a separate AI product surface, intentionally excluded. - **Full Extension API reference** — code.visualstudio.com/api (the [extension-api](../entities/extension-api.md) page orients; the reference is online). --- title: "Setup & Troubleshooting Casebook" type: synthesis tags: [setup, install, troubleshooting, casebook] updated: 2026-06-19 confidence: medium sources: [raw/github_doc-docs-setup-linux-md.md, raw/github_doc-docs-setup-network-md.md, raw/github_doc-docs-remote-troubleshooting-md.md, raw/github_doc-docs-configure-command-line-md.md, raw/github_doc-docs-setup-mac-md.md, raw/github_doc-docs-setup-portable-md.md] --- # Setup & Troubleshooting Casebook Install, CLI, and common problems pulled from the setup/remote docs. Confidence medium — distilled. ## Install & the `code` CLI - Install per-OS (Windows installer, macOS drag-to-Applications, Linux deb/rpm/snap). On macOS, run **"Shell Command: Install 'code' command in PATH"** so `code .` works from the terminal. - **`code` CLI** — `code .` opens the folder, `code --diff a b`, `code --goto file:line`, `code --install-extension `, `code --list-extensions`. Scriptable for environment setup. - **Portable mode** keeps settings/extensions in the install folder (USB/locked-down machines). ## Behind a proxy / network - VS Code usually uses your OS/Chromium proxy settings. Where needed, set `HTTPS_PROXY` or pass command-line proxy args; `http.proxy`/`http.proxyStrictSSL` in [settings](../concepts/settings-and-sync.md) are legacy and respected only in limited scenarios. - Corporate TLS interception may require trusting the proxy's CA. ## Remote connection issues - **Remote-SSH won't connect** — verify plain `ssh host` works first; the VS Code Server needs to download to the host (check host internet/proxy), and the host needs a compatible glibc/OS ([remote-development](../concepts/remote-development.md)). - **Server fails to install** — clear `~/.vscode-server` on the host and reconnect. - **Extensions missing on remote** — they're classified Workspace vs UI; install Workspace extensions *into* the remote ([extensions](../concepts/extensions.md)). ## Editor problems - **Extensions misbehaving** — bisect with `code --disable-extensions` to confirm it's an extension, then re-enable to find the culprit. - **Settings not applying** — check scope precedence (workspace overrides user) and that you're editing the right `settings.json` ([settings-and-sync](../concepts/settings-and-sync.md)). - **Untrusted folder, features disabled** — you're in Restricted Mode; trust the folder ([workspaces-and-trust](../concepts/workspaces-and-trust.md)). - **High CPU/slow** — often a language server or extension; check the Process Explorer (`Developer: Open Process Explorer`).