Virtual PathsThe extension logo is saved as A VS Code extension that organizes real project files into a virtual tree, without moving or copying files. Try itOpen this Adding the first mapping switches to Virtual Paths, a dedicated folder icon in the Activity Bar. It becomes your main project browser, with only your virtual structure visible. Existing installations with mappings switch once when upgrading to 0.3. Subsequent launches preserve your selected sidebar. Use Virtual Paths: Open Virtual Explorer to return at any time. Refreshing and editing existing mappings preserve expanded/collapsed folders and never switch sidebars. VS Code's built-in Explorer remains available through its usual icon; its Files view cannot be replaced through the public extension API. The usual Explorer shortcut, Ctrl+Shift+E (Cmd+Shift+E on macOS), opens Virtual Explorer when at least one mapping exists. Removing all mappings restores the normal shortcut. You can override this binding in VS Code's Keyboard Shortcuts settings. Mapped folders expand into their actual contents. Selecting a file opens the original file, so editing and saving work normally. Map several unrelated folders into a common virtual parent to organize by feature, workflow, or responsibility. The same real folder can appear at multiple virtual paths. Mappings can nest inside other mapped folders: map real folder Right-click a mapping to edit or remove it. Reveal Real Path finds the original in the built-in Explorer. Removing a mapping never deletes files. Multiple mappingsUse the view menu's New Mapping to create alternative virtual structures such as
These shortcuts apply while Virtual Paths has focus. On macOS use Cmd instead of Ctrl. Set selection is remembered locally per workspace folder; the mapping definitions are saved in workspace settings and can be shared. Hiding paths has been removed; old Drag, reveal, and reuse layoutsDrag files or folders from the regular Explorer into a virtual folder, a mapping header, or empty space to add paths. You can drop several workspace paths together. Dropping ordinary contents from Virtual Paths adds another virtual path to those files or folders. Drag mapped paths or virtual groups within one mapping to relocate their virtual subtree; the real files stay in place. Drop onto a mapping header or empty space to move a path to the virtual root. Conflicting destinations and dropping a path inside itself are rejected. Paths must belong to the same workspace folder; rearranging across different mappings is not supported. Use Reveal Active File (target icon, Ctrl+Alt+R while the tree has focus) to select the current editor's file in the virtual tree. If necessary, it switches to a mapping that contains the file. It prefers a visible mapping and the most specific mapped source folder. Right-click a named mapping header to Rename Mapping or Duplicate Mapping. Both commands are also in the view menu for use when a header is not visible. Duplicating copies the complete layout and selects the copy. Default can be duplicated; its reserved name cannot be renamed. Editing a duplicate does not change the original. Repair, create, and share
Real file and folder actionsRight-click ordinary files and folders inside a mapped folder for Open, Open to the Side, Rename, Move to Trash, Copy, Cut, Copy Path, Copy Relative Path, Reveal in File Manager, and Open in Integrated Terminal. Folder menus also offer Find in Folder and Open in New Window; files support Select for Compare and Compare with Selected. Existing New File and New Folder actions are available on real folders. Rename/move uses VS Code workspace edits; deletion asks for confirmation and requests Trash. If Trash is unavailable (for example on a WSL network share), a separate dialog offers permanent deletion. Cancelling leaves the item in place. Copy/cut/paste operates within Virtual Paths, including across virtual folders. Paste rejects overwrites and pasting a folder into itself. Multi-selection works for copy, cut, path copying, and deletion. Standard F2, Delete, Ctrl+C/X/V shortcuts apply while the tree has focus and real items are selected (platform equivalents on macOS). Virtual drag-and-drop still edits the layout; Cut/Paste moves real items. Mapping headers and mapped roots retain their layout controls rather than physical rename/delete commands. Renaming or moving a real folder may leave separately configured sources pointing at the old location; Repair Source Path can reconnect those sources. Third-party Explorer menu contributions and native Explorer clipboard integration are not automatically inherited by a custom tree; use Reveal Real Path for those actions. Settings referenceMappings are saved in each workspace folder's
Real paths are workspace-relative; Colors apply to explicitly mapped paths and virtual groups. Files and folders inside mapped folders keep their normal label colors and icon theme; they do not inherit the mapped root's color. A nested explicitly mapped path has its own color. Direct file mappings also use normal file icons, even when their virtual labels differ from the original filenames. Label colors have defaults for light, dark, and high contrast themes, and can be customized through Version 0.3 gives the tree a fresh view registration under its own Virtual Paths Activity Bar entry (alongside Explorer, Source Control, and Extensions). This avoids reusing an older saved placement inside Explorer. Existing mappings and folder expansion settings are preserved. Use Virtual Paths: Open Virtual Explorer if the entry is hidden. The view supports browsing, opening, creating, renaming, copying, moving and deleting ordinary files and folders. File operations and settings changes refresh the tree automatically. While visible, the tree also checks opened directories every 1.5 seconds to catch missed notifications on network/WSL paths. Returning to the view or window triggers a refresh. External renames of mapped roots leave mappings pointing at their old paths until repaired. Development and installationFor Linux projects, open the folder through WSL: Reopen Folder in WSL rather than Windows UNC access through If upgrading from the development publisher, uninstall local-dev.virtual-paths and keep Lionheart2007.virtual-paths. Both identities share command and view IDs and must not be enabled together. Your workspace mappings stay in After installing an update, run Developer: Reload Window to load new configuration registrations. If creating a set reports that Requires Node.js 22+ for development and VS Code 1.90+. Run |