
# Full reference

Every member of `vscode`, every member of `codelet`, every constructor and enum reached off
`vscode.X`, and the free helpers exported from `codelet/extensions` — one line each. The pages
before this one explain how to use them; this page is for finding the name you already know you
want, and for checking what is not here at all.

## `vscode.window`

| Member                                                               | Description                                                                                                    |
| -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `activeTextEditor`                                                   | The `TextEditor` for the file showing, or `undefined`. See [Editors](/api/editors).                            |
| `onDidChangeActiveTextEditor`                                        | Fires whenever that changes.                                                                                   |
| `visibleTextEditors`                                                 | `activeTextEditor` in an array, or an empty one — one editor group.                                            |
| `onDidChangeVisibleTextEditors`                                      | The same moment as above, said the other way.                                                                  |
| `tabGroups`                                                          | Every tab the reader has open. See [Editors](/api/editors).                                                    |
| `onDidChangeTextEditorSelection`                                     | The caret or selection moved.                                                                                  |
| `activeColorTheme`                                                   | The theme showing. See [Prompts and UI](/api/ui).                                                              |
| `onDidChangeActiveColorTheme`                                        | Fires when the theme's kind changes.                                                                           |
| `createTextEditorDecorationType`                                     | Registers an appearance for `TextEditor.setDecorations`.                                                       |
| `registerTreeDataProvider`                                           | Fills a `"tree"` view with rows. See [Views](/api/views).                                                      |
| `createTreeView`                                                     | Same, and returns a `TreeView` you can set `message`, `title`, `badge` on.                                     |
| `registerWebviewViewProvider`                                        | Fills a `"webview"` view. See [Views](/api/views).                                                             |
| `registerCustomEditorProvider`                                       | Fills a tab for a file `contributes.customEditors` claimed.                                                    |
| `createWebviewPanel`                                                 | Opens a tab with no file under it. See [Editors](/api/editors).                                                |
| `showTextDocument`                                                   | Opens a file in the editor.                                                                                    |
| `createStatusBarItem`                                                | A `StatusBarItem`, hidden until `.show()`. See [Prompts and UI](/api/ui).                                      |
| `setStatusBarMessage`                                                | A status bar item and a timeout in one call.                                                                   |
| `createOutputChannel`                                                | An `OutputChannel`, or a `LogOutputChannel` with `{ log: true }`.                                              |
| `registerFileDecorationProvider`                                     | Badges and colors on explorer and tree rows.                                                                   |
| `registerTerminalProfileProvider`                                    | Answers a `contributes.terminal.profiles` entry. See [Tasks, source control and terminals](/api/integrations). |
| `createTerminal`                                                     | A `Terminal` backed by a `Pseudoterminal` you already hold.                                                    |
| `terminals`                                                          | Every terminal `createTerminal` made.                                                                          |
| `activeTerminal` / `onDidChangeActiveTerminal`                       | Which terminal the reader is in.                                                                               |
| `onDidOpenTerminal` / `onDidCloseTerminal`                           | A terminal was made, or is gone.                                                                               |
| `onDidChangeTerminalState`                                           | The first thing was typed into it.                                                                             |
| `withProgress`                                                       | Runs a task and says so in the status bar. See [Prompts and UI](/api/ui).                                      |
| `showQuickPick`                                                      | Puts a list to the reader. See [Prompts and UI](/api/ui).                                                      |
| `showInputBox`                                                       | Asks for a line of text.                                                                                       |
| `createQuickPick` / `createInputBox`                                 | The same two fields, held open.                                                                                |
| `showWorkspaceFolderPick`                                            | The one folder there is, put to the reader.                                                                    |
| `registerUriHandler`                                                 | Takes links the embedding host delivers with `workbench.handleUri`.                                            |
| `showInformationMessage` / `showWarningMessage` / `showErrorMessage` | A message, and the buttons on it. See [Prompts and UI](/api/ui).                                               |

## `vscode.workspace`

| Member                                                          | Description                                                                                                      |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `fs`                                                            | A `FileSystem`: `stat`, `readDirectory`, `createDirectory`, `readFile`, `writeFile`, `delete`, `rename`, `copy`. |
| `applyEdit`                                                     | Applies a `WorkspaceEdit` as one transaction per file.                                                           |
| `name`                                                          | What the tree is called, or `undefined`.                                                                         |
| `workspaceFolders`                                              | The one root, in an array.                                                                                       |
| `getWorkspaceFolder`                                            | Which folder a `Uri` is in — the one there is.                                                                   |
| `asRelativePath`                                                | A path without the root in front of it.                                                                          |
| `findFiles`                                                     | Glob search over the tree.                                                                                       |
| `openTextDocument`                                              | Reads a file as a `TextDocument`.                                                                                |
| `textDocuments`                                                 | Every document with a tab open on it.                                                                            |
| `onDidOpenTextDocument` / `onDidCloseTextDocument`              | A tab opened or closed onto a document.                                                                          |
| `onDidChangeTextDocument`                                       | Fires on every write, `contentChanges` included.                                                                 |
| `onDidSaveTextDocument` / `onWillSaveTextDocument`              | The reader saved, or is about to.                                                                                |
| `save` / `saveAll`                                              | Marks a document (or every open one) as saved.                                                                   |
| `onDidCreateFiles` / `onDidDeleteFiles` / `onDidRenameFiles`    | A file gesture happened.                                                                                         |
| `onWillCreateFiles` / `onWillDeleteFiles` / `onWillRenameFiles` | The moment before each.                                                                                          |
| `createFileSystemWatcher`                                       | A `FileSystemWatcher` scoped to a glob.                                                                          |
| `registerFileSystemProvider`                                    | Serves documents outside the tree, over a scheme of your own.                                                    |
| `registerTextDocumentContentProvider`                           | Serves a scheme by text alone, read once per document.                                                           |
| `getConfiguration`                                              | Settings, over the manifests' defaults and what the reader wrote.                                                |
| `onDidChangeConfiguration`                                      | A setting moved.                                                                                                 |

## `vscode.commands`

| Member                      | Description                                                                           |
| --------------------------- | ------------------------------------------------------------------------------------- |
| `registerCommand`           | Registers a handler. Paired with a manifest declaration, this puts it in the palette. |
| `registerTextEditorCommand` | The same, handed the active editor and an edit builder; does nothing without one.     |
| `executeCommand`            | Runs any registered command, yours or another extension's.                            |
| `getCommands`               | Every registered command id. `filterInternal` drops ones starting with `_`.           |

:read-more{to="/api/commands"}

## `vscode.languages`

| Member                                                                                                                             | Description                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| `getLanguages`                                                                                                                     | Every language id codelet knows.                                |
| `setTextDocumentLanguage`                                                                                                          | Overrides what a file is treated as.                            |
| `createDiagnosticCollection`                                                                                                       | A `DiagnosticCollection` for errors and warnings against files. |
| `getDiagnostics`                                                                                                                   | Everything anyone published, for one file or every file.        |
| `onDidChangeDiagnostics`                                                                                                           | Somebody published.                                             |
| `match`                                                                                                                            | How well a document answers a selector, VS Code's own scoring.  |
| `createLanguageStatusItem`                                                                                                         | What a language says about the file showing, in the status bar. |
| `registerDefinitionProvider` / `registerTypeDefinitionProvider` / `registerImplementationProvider` / `registerDeclarationProvider` | Go-to-X, each its own command and its own first answer.         |
| `registerReferenceProvider`                                                                                                        | Everywhere a name is used. Lands in the Search view.            |
| `registerDocumentSymbolProvider`                                                                                                   | The names in a file — the palette's `@`.                        |
| `registerWorkspaceSymbolProvider`                                                                                                  | The same across the tree — the palette's `#`.                   |
| `registerHoverProvider`                                                                                                            | Hover tooltips.                                                 |
| `registerDocumentHighlightProvider`                                                                                                | Every other occurrence of the name under the caret.             |
| `registerFoldingRangeProvider`                                                                                                     | Where the file folds, narrowing the editor's own guess.         |
| `registerInlayHintsProvider`                                                                                                       | Text drawn into the lines showing that is not in the file.      |
| `registerCodeLensProvider`                                                                                                         | The commands drawn above a line.                                |
| `registerDocumentLinkProvider`                                                                                                     | The spans of a file that lead somewhere.                        |
| `registerColorProvider`                                                                                                            | The colors in a file, as swatches.                              |
| `registerSelectionRangeProvider`                                                                                                   | Where the selection goes when it is widened.                    |
| `registerOnTypeFormattingEditProvider`                                                                                             | The formatter that runs on a keystroke.                         |
| `registerCompletionItemProvider`                                                                                                   | Completion lists.                                               |
| `registerSignatureHelpProvider`                                                                                                    | Signature help as a call is typed.                              |
| `registerDocumentFormattingEditProvider` / `registerDocumentRangeFormattingEditProvider`                                           | Format the whole file, or the selection.                        |
| `registerRenameProvider`                                                                                                           | F2.                                                             |
| `registerCodeActionsProvider`                                                                                                      | Fixes and refactors offered at a range.                         |
| `registerDocumentPasteEditProvider` / `registerDocumentDropEditProvider`                                                           | What a paste or a drop inserts.                                 |

:read-more{to="/api/languages"}

## `vscode.tasks`

| Member                            | Description                                        |
| --------------------------------- | -------------------------------------------------- |
| `registerTaskProvider`            | What answers for one `type`.                       |
| `fetchTasks`                      | Every provider's answer, filtered by type.         |
| `executeTask`                     | Runs a task and resolves with its `TaskExecution`. |
| `taskExecutions`                  | Every task currently running.                      |
| `onDidStartTask` / `onDidEndTask` | A task started, or its terminal ended.             |

:read-more{to="/api/integrations#tasks"}

## `vscode.scm`

| Member                | Description                  |
| --------------------- | ---------------------------- |
| `createSourceControl` | Registers a `SourceControl`. |

:read-more{to="/api/integrations#source-control"}

## `vscode.extensions`

| Member         | Description                                                  |
| -------------- | ------------------------------------------------------------ |
| `all`          | Every extension the workbench was given, as `ExtensionInfo`. |
| `getExtension` | The one with that id, or `undefined`.                        |
| `onDidChange`  | One was stopped or started, or installed.                    |

## `vscode.env`

| Member                           | Description                                                      |
| -------------------------------- | ---------------------------------------------------------------- |
| `appName` / `appHost` / `uiKind` | What this is: `"codelet"`, `"web"`, `UIKind.Web`.                |
| `language`                       | The browser's own language.                                      |
| `sessionId`                      | One per page load.                                               |
| `isTelemetryEnabled`             | Always `false`.                                                  |
| `clipboard`                      | `readText()` / `writeText()`. See [Prompts and UI](/api/ui).     |
| `openExternal`                   | Opens a `Uri` in a new tab. See [Prompts and UI](/api/ui).       |
| `uriScheme`                      | The page's own protocol.                                         |
| `asExternalUri`                  | An address for a link that has to come back into this workbench. |

## The `codelet` namespace

The handful of calls VS Code has no answer for — a call is here rather than on `vscode` because
nothing there could have meant the same thing in a browser tab.

### `codelet.window`

| Member                       | Description                                                     |
| ---------------------------- | --------------------------------------------------------------- |
| `registerComponentView`      | Fills a `type: "component"` view with a preact component.       |
| `createComponentView`        | The same, with a handle for `description` and `badge`.          |
| `registerLocationsView`      | Where a reference search (or anything like it) draws its rows.  |
| `createBrowserPanel`         | A tab over a page served elsewhere — a real cross-origin frame. |
| `decorationOf`               | What a `FileDecorationProvider` answered for a path.            |
| `onDidChangeFileDecorations` | A decoration landed, went, or a provider registered.            |

### `codelet.views`

| Member   | Description                                                      |
| -------- | ---------------------------------------------------------------- |
| `filter` | The filter box a view contributed, if its manifest declared one. |
| `select` | The dropdown beside it, if its manifest declared one.            |

### `codelet.workspace`

| Member                 | Description                                                    |
| ---------------------- | -------------------------------------------------------------- |
| `onDidExpandDirectory` | A directory was just unfolded in the explorer.                 |
| `markSaved`            | That file is what was last saved — the unsaved dot goes.       |
| `setReadonly`          | That file cannot be written where it really lives.             |
| `open`                 | A tree of this extension's own, shown until it is closed.      |
| `onDidChangeWorkspace` | The tree this extension is speaking to is a different one now. |

### `codelet.terminal`

| Member                                    | Description                                                        |
| ----------------------------------------- | ------------------------------------------------------------------ |
| `profiles`                                | Every shell an active manifest declared, paired with its provider. |
| `terminals` / `onDidChangeTerminals`      | Every terminal an extension made with `createTerminal`.            |
| `tabs` / `onDidChangeTabs`                | Every tab the terminal extension is actually showing.              |
| `present`                                 | The terminal extension publishing what it is showing.              |
| `expect` / `expecting`                    | Hold the panel open for tabs that are still arriving.              |
| `onDidChangeExpecting`                    | The last claim on `expect()` lapsed.                               |
| `onDidShowTerminal` / `onDidHideTerminal` | That id asked to be shown, or hidden.                              |
| `focus`                                   | Which tab the reader is in, published by whoever draws them.       |

:read-more{to="/api/integrations#terminals"}

### `codelet.scm`

| Member                           | Description                                                |
| -------------------------------- | ---------------------------------------------------------- |
| `sources` / `onDidChangeSources` | Every registered source control, with its groups attached. |
| `actions`                        | The buttons contributed to one of the four `scm/*` menus.  |

:read-more{to="/api/integrations#source-control"}

### `codelet.extensions`

| Member      | Description                                                              |
| ----------- | ------------------------------------------------------------------------ |
| `setActive` | Stop an extension, or start it again.                                    |
| `install`   | Run an extension the workbench was not built with, for this window only. |

## Value types and constructors

Reached as `vscode.X`, never imported — `new vscode.TreeItem(...)`, `vscode.Uri.file(...)`.

| Type                                                                       | Description                                                                                                                          |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `Uri`                                                                      | `Uri.file(path)`, `Uri.parse(value)`, `Uri.joinPath(base, ...segments)`, `Uri.from(components)`.                                     |
| `Position`                                                                 | `line`, `character` (both 0-based), `translate()`, `with()`, comparisons.                                                            |
| `Range`                                                                    | `start`, `end`, `contains()`, `intersection()`, `union()`, `with()`.                                                                 |
| `Selection`                                                                | A `Range` with `anchor` and `active`.                                                                                                |
| `ThemeIcon`                                                                | Names one of codelet's icons. `.File` and `.Folder` are built in.                                                                    |
| `ThemeColor`                                                               | Names a color from codelet's fixed table.                                                                                            |
| `EventEmitter`                                                             | `.event` to subscribe, `.fire(value)` to emit, `.dispose()` to clear listeners.                                                      |
| `Disposable`                                                               | Wraps a teardown function; `Disposable.from(...disposables)` combines several.                                                       |
| `CancellationTokenSource`                                                  | The one token an extension can make for itself, everywhere else handed one.                                                          |
| `TreeItem`                                                                 | A row: `label`, `iconPath`, `description`, `resourceUri`, `tooltip`, `command`, `collapsibleState`, `contextValue`, `checkboxState`. |
| `TreeItemCollapsibleState` / `TreeItemCheckboxState`                       | `None`/`Collapsed`/`Expanded`, `Unchecked`/`Checked`.                                                                                |
| `MarkdownString`                                                           | `.appendText()`, `.appendMarkdown()`, `.appendCodeblock()`.                                                                          |
| `Hover`                                                                    | Markdown or code shown on hover.                                                                                                     |
| `Location`                                                                 | A `Uri` plus a `Range` or `Position`.                                                                                                |
| `DocumentSymbol`                                                           | A name in a file: `name`, `detail`, `kind`, `range`, `selectionRange`, `children`.                                                   |
| `SymbolInformation`                                                        | The flat form a workspace search answers in.                                                                                         |
| `SymbolKind` / `SymbolTag`                                                 | VS Code's own numbering, and `Deprecated`.                                                                                           |
| `DocumentHighlight` / `DocumentHighlightKind`                              | An occurrence of the name under the caret.                                                                                           |
| `FoldingRange` / `FoldingRangeKind`                                        | What `registerFoldingRangeProvider` answers with.                                                                                    |
| `InlayHint` / `InlayHintKind` / `InlayHintLabelPart`                       | What `registerInlayHintsProvider` answers with.                                                                                      |
| `CodeLens`                                                                 | One line of `registerCodeLensProvider`'s answer.                                                                                     |
| `Color` / `ColorInformation` / `ColorPresentation`                         | What `registerColorProvider` reads and answers with.                                                                                 |
| `DocumentLink`                                                             | A span of a file that leads somewhere.                                                                                               |
| `SelectionRange`                                                           | A link in the chain `registerSelectionRangeProvider` answers with.                                                                   |
| `CompletionItem`                                                           | `label`, `kind`, `detail`, `documentation`, `insertText` (plain text only), `range`, `additionalTextEdits`.                          |
| `CompletionItemKind` / `CompletionTriggerKind`                             | VS Code's own numbering, and how a completion round started.                                                                         |
| `CodeAction` / `CodeActionKind` / `CodeActionTriggerKind`                  | A fix or refactor, its category, and how it was asked for.                                                                           |
| `Diagnostic`                                                               | `range`, `message`, `severity` (`Error` by default).                                                                                 |
| `DiagnosticSeverity` / `DiagnosticTag`                                     | `Error`/`Warning`/`Information`/`Hint`, and `Deprecated`/`Unnecessary`.                                                              |
| `DiagnosticRelatedInformation`                                             | A second location a diagnostic points at.                                                                                            |
| `TextEdit`                                                                 | `TextEdit.replace(range, newText)`, `.insert(position, newText)`, `.delete(range)`.                                                  |
| `WorkspaceEdit`                                                            | `replace`/`insert`/`delete` per `Uri`, plus `createFile`/`deleteFile`/`renameFile`. Hand it to `applyEdit`.                          |
| `FileDecoration`                                                           | `badge`, `tooltip`, `color`, `propagate`.                                                                                            |
| `FileType` / `FilePermission`                                              | Bitmask values for a `FileStat`.                                                                                                     |
| `FileChangeType`                                                           | `Changed`/`Created`/`Deleted`, for a `FileSystemProvider`'s own watcher.                                                             |
| `FileSystemError`                                                          | Thrown by a `FileSystemProvider` answering a missing file.                                                                           |
| `QuickPickItemKind`                                                        | `Default` or `Separator`.                                                                                                            |
| `QuickInputButtons`                                                        | `.Back`, the one predefined button — compared by identity.                                                                           |
| `InputBoxValidationSeverity`                                               | `Info`/`Warning`/`Error`; only `Error` refuses Enter.                                                                                |
| `StatusBarAlignment`                                                       | `Left`, `Right`.                                                                                                                     |
| `LanguageStatusSeverity`                                                   | `Information`/`Warning`/`Error`, for a `LanguageStatusItem`.                                                                         |
| `SignatureHelpTriggerKind`                                                 | How a signature help popup was asked for.                                                                                            |
| `ConfigurationTarget`                                                      | Named by `update()`; all three land in the one layer there is.                                                                       |
| `ExtensionMode`                                                            | What `ExtensionContext.extensionMode` is compared against.                                                                           |
| `ColorThemeKind`                                                           | `Light` and `Dark` — the two ever answered, of VS Code's four.                                                                       |
| `UIKind`                                                                   | `Desktop` and `Web`; `env.uiKind` is always `Web`.                                                                                   |
| `ViewColumn`                                                               | Taken by `createWebviewPanel` and never read — one editor group.                                                                     |
| `TabInputText` / `TabInputTextDiff` / `TabInputCustom` / `TabInputWebview` | What a `Tab` is showing, read with `instanceof`.                                                                                     |
| `Task` / `CustomExecution` / `TaskScope` / `TaskGroup`                     | What a task provider answers with. See [Tasks, source control and terminals](/api/integrations).                                     |
| `TerminalProfile`                                                          | Wraps the `Pseudoterminal` a profile provider hands back.                                                                            |
| `TerminalExitReason`                                                       | `Process`, `User`, `Extension` or `Unknown` — why a terminal ended.                                                                  |
| `DataTransfer` / `DataTransferItem`                                        | What a drag or a paste carries.                                                                                                      |
| `DocumentDropEdit` / `DocumentPasteEdit`                                   | Built by a drop or paste provider's answer.                                                                                          |
| `DocumentDropOrPasteEditKind`                                              | Names the kind of edit one of those is.                                                                                              |
| `DocumentPasteTriggerKind`                                                 | Always `Automatic` — there is no explicit "paste as" to ask for a different kind.                                                    |
| `EndOfLine`                                                                | Compared to rather than built — `document.eol` is read against it.                                                                   |
| `TextDocumentSaveReason`                                                   | Declared for a listener written against VS Code; codelet only ever fires `Manual`.                                                   |

## Helpers exported from `codelet/extensions`

Free functions, alongside `defineExtension` — not reached through `vscode`.

| Export                                    | Description                                                                                    |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------- |
| `defineExtension(extension)`              | Identity at runtime; types `activate`'s parameters against your manifest.                      |
| `positionOf(place)` / `placeOf(position)` | Converts between codelet's 1-based `[line, column]` `Place` and `vscode`'s 0-based `Position`. |
| `rangeOf(cursor)` / `cursorOf(range)`     | The same conversion for the editor's own `Cursor` and a `Range`.                               |
| `languageIdOf(path)`                      | The language id a path implies, from its extension or full name.                               |
| `hasLanguage(id)`                         | Whether that id is known, versus a name passed through as-is.                                  |
| `labelOf(id)`                             | The display label for a language id — `"typescript"` → `"TypeScript"`.                         |
| `languageIds()`                           | Every language id codelet knows, as an array.                                                  |

## Not implemented

**Whole namespaces are absent**: `vscode.debug`, `vscode.notebooks`, `vscode.comments`,
`vscode.authentication`, `vscode.l10n`, `vscode.tests`, `vscode.chat` and `vscode.lm` — VS
Code's own language-model APIs, unrelated to the `codelet/extensions/chat` pane, which answers to
none of them.

**`env`**: `machineId`, `remoteName`, `appRoot`, `shell`, `onDidChangeShell`, `isNewAppInstall`,
`isAppPortable`, `logLevel`, `onDidChangeLogLevel`, `onDidChangeTelemetryEnabled` and
`createTelemetryLogger` are all about a machine or a telemetry pipeline a page has neither of.

**`scm`**: `scm.inputBox`, VS Code's own deprecated global, is the one member missing —
`SourceControl.inputBox` is the box.

**Settings**: one layer of written values under the manifests' defaults. `ConfigurationScope`,
`[language]`-scoped sections, and the `workspaceValue` / `workspaceFolderValue` /
`*LanguageValue` members of `inspect()` are all absent with the second tree they would answer.

**Multi-root**: `workspace.workspaceFolders` is one entry forever. `updateWorkspaceFolders`,
`workspaceFile` and `onDidChangeWorkspaceFolders` are absent with the concept.

**File dialogs**: no `showOpenDialog` or `showSaveDialog` — both mean the machine's own
filesystem, and a page cannot reach it.

**Progress**: `ProgressLocation.Window` is the only location, and there is no cancellation — the
task takes a `Progress` and no `CancellationToken`, and `ProgressOptions.cancellable` is absent.

**Editing**: `TextEditor.selection` and `.selections` are read-only, and there is no
`revealRange()`, `insertSnippet()`, `viewColumn`, `visibleRanges`, `options`, `show()` or
`hide()`. `TextEdit` has no `setEndOfLine`, and `WorkspaceEdit`'s entries carry no
`WorkspaceEditEntryMetadata` for a refactor preview that does not exist. `CompletionItem.insertText`
is plain text only, never a `SnippetString`.

**The filesystem**: `workspace.fs` has no `isWritableFileSystem`; `delete` is always recursive
with no option, and `rename` never overwrites. Only one `FileSystemProvider` is allowed per
scheme, and registering one for `file:` throws — that scheme is the workbench's own tree. A
`registerTextDocumentContentProvider` has no `onDidChange` — its content is read once.

**Views and webviews**: `TreeItem.tooltip` is a plain string, never a `MarkdownString`, and its
checkbox carries no tooltip of its own. `WebviewOptions` has no `portMapping`; `WebviewPanel` has
no `iconPath`, no `options` (`retainContextWhenHidden` included), and no way to change its
`viewColumn`. A custom editor provider is readonly-only — no edit stack, no backups, no
`onDidChangeCustomDocument`.

**Terminals and tasks**: `Terminal` has no `shellIntegration` or `creationOptions`.
`ExtensionTerminalOptions` takes `name` and `pty` alone — no `color`, `iconPath`, `isTransient`
or `location`. `tasks.onDidStartTaskProcess` and `.onDidEndTaskProcess` are absent: what a task
runs in is a terminal, and a `Pseudoterminal` is not a process.

**Extension context**: no `asAbsolutePath`, `extensionPath`/`extensionUri`,
`storagePath`/`storageUri`/`globalStoragePath`/`globalStorageUri`,
`environmentVariableCollection` or `languageModelAccessInformation` — all about a filesystem or a
model access an extension in a page has no path to.

**Everything else**: no `LocationLink` (`Definition` is `Location | Location[]`), no
`StatusBarItem.accessibilityInformation`, no `OutputChannel.logLevel` /
`onDidChangeLogLevel`. `when` clauses understand a fixed handful of keys rather than VS Code's
full context-key vocabulary, though `setContext` is here for an extension to drive its own.
