File Timeline Navigator
Sort, navigate, and master your editor tabs — in the order you actually used them.

What It Does
File Timeline Navigator tracks the order in which you open and focus editor tabs, then lets you sort and navigate those tabs based on your actual workflow history — not alphabetical order or some arbitrary default.
Open a file? Tracked.
Switch focus? Tracked.
Want your tabs in the order you used them? One shortcut.
Features
- 📅 Timeline Tracking — Every file open and focus event is recorded in order
- ↕️ Sort Ascending — Arrange tabs oldest → newest (first-opened on the left)
- ↕️ Sort Descending — Arrange tabs newest → oldest (most recent on the left)
- ⏮ Go To Oldest — Jump instantly to the first file you opened
- ⏭ Go To Most Recent — Jump instantly to the most recently touched file
- 🔒 Active Tab Preserved — After sorting, your current editor focus never changes
- 🛡 Dirty Files Protected — Unsaved changes are never lost
- 📌 Pinned Tabs Respected — Pinned tabs stay pinned and left-anchored
- 🧹 History Pruning — Closed tabs are automatically removed from history
- ⚡ Fast — Works smoothly with 10, 50, or 100+ open tabs
Screenshots
(Replace these placeholders with actual screenshots after first run)
| Before Sort |
After Sort (Descending) |
[D.ts] [A.ts] [C.ts] [B.ts] |
[D.ts] [C.ts] [B.ts] [A.ts] |
Installation
Via VS Code Marketplace (Recommended):
- Open VS Code
- Press
Ctrl+P / Cmd+P
- Type
ext install your-publisher-name.file-timeline-navigator
- Press Enter
Via Command Palette:
- Open the Command Palette (
Ctrl+Shift+P / Cmd+Shift+P)
- Search for
Extensions: Install Extensions
- Search for
File Timeline Navigator
Usage
Commands
All commands are available in the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command |
Description |
File Timeline: Sort Tabs Ascending |
Sort tabs oldest → newest |
File Timeline: Sort Tabs Descending |
Sort tabs newest → oldest |
File Timeline: Go To Oldest File |
Navigate to the first-opened file |
File Timeline: Go To Most Recent File |
Navigate to the last-focused file |
File Timeline: Show History |
Show the full history in the Output panel |
File Timeline: Clear History |
Reset all tracked history |
Keyboard Shortcuts
Default shortcuts (all configurable via File > Preferences > Keyboard Shortcuts):
| Action |
Windows / Linux |
macOS |
| Sort Ascending |
Ctrl+Alt+Shift+1 |
Cmd+Alt+Shift+1 |
| Sort Descending |
Ctrl+Alt+Shift+2 |
Cmd+Alt+Shift+2 |
| Go To Oldest |
Ctrl+Alt+Shift+← |
Cmd+Alt+Shift+← |
| Go To Most Recent |
Ctrl+Alt+Shift+→ |
Cmd+Alt+Shift+→ |
Settings
Configure via File > Preferences > Settings and search for File Timeline Navigator:
| Setting |
Default |
Description |
fileTimelineNavigator.trackFocusChanges |
true |
Track every focus switch, not just file opens |
fileTimelineNavigator.includePreviewTabs |
true |
Include single-click preview tabs in history |
fileTimelineNavigator.sortAcrossAllGroups |
false |
Sort all editor groups instead of just the active one |
fileTimelineNavigator.showStatusBarNotifications |
true |
Show brief success messages in the status bar |
fileTimelineNavigator.enableOutputLog |
false |
Enable verbose logging for debugging |
fileTimelineNavigator.maxHistorySize |
500 |
Maximum number of files to track in history |
How Sorting Works (Technical Detail)
VS Code does not expose a direct "move tab to position N" API. To work around this:
- The extension snapshots all text tabs in the active editor group
- Tabs are classified as: sortable (clean text files), dirty (unsaved changes — never closed), or pinned (stay left-anchored)
- Clean, non-pinned tabs are closed in a single batch operation
- They are reopened in the desired timeline order
- Your previously active file is restored to focus
Safety guarantees:
- ✅ Unsaved files are never closed — they appear at the end of the sorted list
- ✅ Pinned tabs are never touched — they keep their position
- ✅ Non-file tabs (diffs, notebooks, settings, webviews) are left untouched
- ✅ Your current active editor is restored after every sort
Known Limitations
- Pinned tab order: Pinned tabs keep their current position (left-anchored) rather than being sorted into the timeline. This is by design — pinning implies "fix this here."
- Dirty tab order: Unsaved files appear at the end of the sorted tab list because they cannot be safely closed and reopened. Save the file first to include it in full sort order.
- Split editor groups: By default, only the active group is sorted. Enable
sortAcrossAllGroups to sort all groups.
- Tab Groups API: VS Code 1.71+ required for tab group support.
Requirements
- VS Code 1.85.0 or higher
- No additional dependencies
Contributing
Issues and pull requests welcome at GitHub.
License
MIT © 2024 Your Name