hjdesulme/virtual-tree: A virtual, custom-tailored file tree. - Codeberg.org
This website requires JavaScript.
hjdesulme/virtual-tree
Watch
Star
Fork
You've already forked virtual-tree
Code
Issues
Pull requests
Activity
A virtual, custom-tailored file tree.
25 commits
1 branch
0 tags
141 KiB
TypeScript
98.5%
JavaScript
1.5%
main
Find a file
HTTPS
Download ZIP<br>Download TAR.GZ<br>Download BUNDLE
Open with VS Code
Open with VSCodium
Open with Intellij IDEA
hjdesulme
2b26cb8e6a
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
.vscode
feat: initialize virtual tree UI and TreeDataProvider
2026-05-29 20:07:59 -04:00
src
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
.gitignore
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
.npmrc
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
.vscode-test.mjs
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
.vscodeignore
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
CHANGELOG.md
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
esbuild.js
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
eslint.config.mjs
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
LICENSE
chore: set up LICENSE and ignore
2026-05-29 17:22:30 -04:00
logo.png
docs: add logo, update readme, package.json, bump version to 1.0.0, and remove unused files
2026-06-01 12:24:10 -04:00
package.json
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
pnpm-lock.yaml
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
README.md
chore: extension name change from 'virtual tree' to 'virtual file tree'
2026-06-01 12:29:48 -04:00
tsconfig.json
feat: implement JSON parsing, file navigation, and context menu
2026-05-30 14:49:14 -04:00
vsc-extension-quickstart.md
Initial commit for virtual-tree
2026-05-29 11:52:43 -04:00
README.md
Virtual File Tree README
A VS Code extension that lets you build custom, task-focused file trees without moving any files on disk.
Features
Virtual Folders & Files : create folders and add files by path. Drag and drop from the native Explorer. Right-click any file to add it to a virtual folder.
Group Open Tabs : bundle all open editor tabs into a new virtual folder with one command.
Profiles : switch between separate workspace setups (e.g., "Frontend", "Bug 402"). Profiles can be shared (committed to Git) or local (tied to your current branch and gitignored).
Self-Healing Paths : if you rename or move a physical file, the extension updates the virtual links automatically.
Conflict Resolution : broken links turn red. Right-click to find a new path or bulk-clean missing files.
Smart Folders : dynamic folders that update in real time:
Glob patterns (e.g., **/*.test.ts)
Git Changes (modified, added, untracked files)
Recent Files (your most recently used files)
Dependency Engine : right-click a file and choose Generate Dependency Tree… to create a folder containing:
Upstream: files the target imports
Downstream: files that import the target
Both<br>Works with any language that has an active language server.
Extension API : other extensions can register custom upstream providers for languages the built‑in scanner doesn't cover.
Requirements
VS Code 1.120.0 or later.
For the Dependency Engine, the relevant language server extension should be installed (e.g., Pylance (Python), rust-analyzer, or the built-in TypeScript language features).
Getting Started
Install the extension.
Open any workspace. The Virtual File Tree view appears in the Activity Bar.
Add files to virtual folders : use the Explorer context menu, the editor tab context menu, or the Command Palette. You can also drag files from the native Explorer into a virtual folder.
Group your open tabs into a new virtual folder through the Command Palette or by right‑clicking a folder in the virtual file tree.
Generate a dependency tree for any file: available from the Explorer context menu, the editor tab context menu, the virtual file tree context menu, or the Command Palette. Choose upstream, downstream, or both.
Explore more options based on the set of features listed above.
Extension Settings
This extension does not contribute any VS Code settings at this time.
API
To register a custom upstream dependency provider for a specific language:
import * as vscode from 'vscode';
export async function activate() {<br>const vt = vscode.extensions.getExtension('hjdesulme.virtual-file-tree');<br>const api = vt.isActive ? vt.exports : await vt.activate();
api.registerUpstreamProvider('myLang', {<br>getUpstreamDependencies: async (uri: vscode.Uri) => {<br>// return an array of vscode.Uri that this file depends on<br>return [vscode.Uri.file('/path/to/dep')];<br>});<br>Known...