Outline Exporter
Export the VS Code Outline panel to a new document — plain text or Markdown.
How it works
Uses vscode.executeDocumentSymbolProvider — the exact same API that powers the built-in Outline panel. Supports any language that has a symbol provider (TypeScript, Python, Go, Rust, JSON, etc.).
Commands
Open the Command Palette (Cmd+Shift+P / Ctrl+Shift+P) and run:
| Command |
Output |
Outline: Export Document Outline |
Plain text with emoji icons |
Outline: Export Document Outline as Markdown |
Markdown with bold names |
Both commands are also available in the editor right-click context menu.
The outline opens in a new tab beside the current editor.
Settings
| Setting |
Default |
Description |
outlineExporter.showLineNumber |
true |
Include the line number of each symbol in the exported outline |
Output example (plain text, TypeScript file)
Outline: src/server.ts
======================
🟠 Server [class, line 4]
🔨 constructor [constructor, line 8]
🔹 start [method, line 15]
🔹 stop [method, line 30]
🟣 createApp [function, line 45]
🔡 PORT [constant, line 1]
Output example (Markdown, TypeScript file)
# Outline: src/server.ts
- 🟠 **Server** `class` *(line 4)*
- 🔨 **constructor** `constructor` *(line 8)*
- 🔹 **start** `method` *(line 15)*
- 🔹 **stop** `method` *(line 30)*
- 🟣 **createApp** `function` *(line 45)*
- 🔡 **PORT** `constant` *(line 1)*
Output example (Markdown source file)
When the active document is a .md file, symbol labels are hidden — every heading is a string kind, so the label adds no useful information.
Outline: docs/guide.md
======================
📄 Introduction [line 1]
📄 Background [line 3]
📄 Goals [line 7]
📄 Getting Started [line 12]
📄 Installation [line 14]
Install (from source)
npm install
npm run compile
Then press F5 in VS Code to launch the Extension Development Host, or package with vsce package.