Improved the performance of Save (especially first save) and Restore (especially for large tab layouts with 50+ tabs), most noticeably on Visual Studio 2026.
Added save and restore of floating document windows: their tabs, pinned tabs, selected tab, position, size, maximized or minimized state, and inner tab groups. Controlled by new Save and restore floating document windows option in General (default enabled). Restore rebuilds each window in place, keeps its perceived size when display scaling changed since the save, and moves it onto an available screen when its saved position is no longer reachable. The Edit dialog can move tabs between the main window and floating windows.
Added save and restore of duplicated tabs (the same document opened as multiple tabs) and of tab split views (the same document open in two views). Each duplicated tab keeps its own tab position, tab group, floating window, pinned state, and cursor position. A split tab is restored split, with the cursor and scroll position in each pane. Controlled by new Include duplicated tabs in saved tab layouts and Include tab split views in saved tab layouts options in General (default enabled). The Unsaved Changes glyph reflects a changed number of duplicated tabs, and Compare reports where each duplicated tab sits and whether a split view was toggled.
Added Include tool tabs in saved tab layouts option to General (default disabled). Captures tool windows docked in the document well as tabs next to the document tabs (like Test Explorer), including position, tab group, pinned state, and selection. Restore re-opens them at their saved positions. Tab layouts holding only tool tabs can be saved, restored, and appended.
Split the options into Simple Tab Saver > General with the top-level feature switches (storage location, .vs storage, Show Hidden, Automatic Backup, Autosave, Autorestore, Git Integration, Drift Detection, Breakpoints, Flatten Tab Layout, Unsaved Changes) and Simple Tab Saver > Advanced holding all options (the previous single page). Every stored value is kept. A General switch changes the matching Advanced options directly, and a switch covering several options shows a square when they are mixed (clicking it resolves them with one click). The Flatten Tab Layout switch works in reverse: checking it turns off the tab groups, floating windows, split views, and duplicated tabs options together, and unchecking it turns all four back on. The Options entry in the Management menu opens the General page.
Added Autorestore also re-creates tab groups and floating windows and Git branch tab layout restore also re-creates tab groups and floating windows options (both default enabled), so automatic restores rebuild the same window arrangement as a manual Restore, but can be disabled to always flatten autorestored tab layouts, reducing restore time.
Added Floating Windows and Currently Active toolbar dropdown glyphs. The Autosave glyph now also shows on the toolbar for the selected Autosave tab layout. The Unsaved Changes glyph also reflects duplicated tabs and in-well tool tabs opened, closed, pinned, or unpinned.
The Compare dialog now shows a summary line above the three lists, reporting the kinds of change the lists cannot show because none of them opens or closes a tab: reordered tabs, tabs moved between tab groups, floated or docked tabs, and toggled split views. The toolbar Unsaved Changes glyph watches which tabs are open and how they are pinned, and deliberately doesn't trigger while tabs are only being rearranged. The summary line applies to the most recently saved or restored tab layout, and is not shown for any other.
Added the Last Activity Time sort order, ranking tab layouts by the newest of their last saved and last restored time.
Added Automatically create git branch tab layouts on each visited branch (default enabled) and Automatically save git branch tab layouts only on already existing tab layout (default disabled) options to Git Integration.
Added Append always creates new floating windows and Append always creates new tab groups options to General (default disabled). When enabled, Append opens each floating window from the tab layout as a new window instead of merging into an already-open one, and each tab group from the tab layout as a new tab group instead of merging into already existing tab groups.
Added Append into focused floating window option to General (default disabled). When disabled, Append opens the appended tabs into the main window even when a floating document window is focused (as long as the appended tab layout carries no floating window tabs) and returns focus to the floating window afterwards.
Added Number of log files to keep and Number of days before automatic log file removal options to Logging. Old log files are now also cleaned up when options are applied.
Added a one-time prompt asking to rate the extension on the Visual Studio Marketplace, shown only after extended use. Dismissing it is permanent, Remind me later defers it for 30 days and restarts usage counting. Rating always shows a confirmation with the full review address before a default browser opens.
Added a Help sub-menu at the bottom of Extensions > Simple Tab Saver with Open Readme File (opens the extension README.md as a read-only document tab in Markdown Preview mode) and About Simple Tab Saver (extension icon, version, release date, about information, and a Rate and Review command).
Preview tabs (like a file opened from Find in Files results) are now ignored: not recorded by Save, no longer triggering the Unsaved Changes indicator, and not counted as open documents for Append.
Pre-select tab layout on solution load now takes priority over the tab layout chosen by Autorestore.
Duplicate and Merge into a new tab layout no longer move the Currently Active and Last Saved markers or the Unsaved Changes indicator onto the created copy. The copy carries no last-saved time until it is saved or restored itself.
Reloading the solution after it was changed outside Visual Studio no longer runs Autorestore or the git branch restore, so the tabs Visual Studio keeps through the reload are left untouched. The toolbar selection survives the reload, and automatic backups of the Autosave tab layout are unaffected.
Fixed scroll position not being restored correctly for tabs restored into tab groups, and restored documents repeatedly re-scrolling by one line afterwards.
Fixed Save recording tabs that were not yet loaded (right after a solution open or reload) in the wrong order, most visible on pinned tabs. This now also covers tabs opened in a different editor, which could still be recorded at the end of the tab layout while not yet loaded. The Unsaved Changes indicator no longer misreports in that situation either.
Fixed breakpoint position self-correction ignoring the method a breakpoint was saved in. Relocations are now more accurate and more often applied without asking, so the breakpoint correction review appears less frequently.
Git integration now notices a repository appearing or disappearing while the solution stays open. Previously the repository was detected only when the solution was opened.
The tab layout storage folder is now created when the first tab layout is saved, instead of when a solution opens, so a solution where a tab layout was never saved is left untouched.
The Edit and Tab Layout Backups dialogs each gained a Sort Alphabetically checkbox next to Include Hidden, listing that dialog's dropdown flat A to Z instead of the configured order with its starred and hidden grouping. Both checkboxes are now remembered separately for each dialog.
Added a Detailed View checkbox to the Quick Switch dialog (default off, remembered between sessions). It replaces the list with a sortable table showing additional metadata.
The Advanced options are now included in Visual Studio's own settings mechanism, so they appear in Tools > Import and Export Settings and participate in settings roaming.
Relocation, rename, and missing-file prompts now appear before Restore starts opening tabs, and the tab layout file is updated with the accepted changes right away, so the restore runs uninterrupted on the resolved tab set.
The Drift Detection button in the Edit dialog now always runs the relocation and rename detection, even when the Enable relocation detection and Enable rename detection options are disabled - those options now control Restore only.
Added Miscellaneous features.
1.6.0 (2026-07-05)
Added Breakpoints Snapshot feature in the Utilities sub-menu: Take Breakpoints Snapshot saves breakpoints of opened documents into an internal snapshot (merging into previously saved ones), Apply Breakpoints Snapshot re-inserts them into currently opened documents without reopening anything, Clear Breakpoints Snapshot removes all entries. All three can be placed on any toolbar via the Customize dialog. A Snapshot: <documents>, <breakpoints> label above Take Breakpoints Snapshot shows the current content, or Snapshot: (none).
Added Breakpoints Snapshot options section, including Show Breakpoints Snapshot sub-menu in Management menu (default false), which places the sub-menu directly in the Management menu instead of inside Utilities. The Extensions > Simple Tab Saver menu always carries the commands.
Added Restore scroll position in tabs option to General (default enabled). Restore returns each document to the scroll position it had at save time instead of centering the cursor line. The scroll position is saved regardless of this option.
Added Save Frequency and Restore Frequency sort orders. Each tab layout counts manual saves (Save) and manual restores (Restore or Append). Automatic saves and restores are never counted. Re-creating a tab layout under the same name resets both counts.
Added Most Saved and Most Restored options to Pre-select tab layout on solution load.
Added Last Saved or Restored Manually and Default-named options to Tab layout to use when Autorestoring and to Pre-select tab layout on solution load. The first picks whichever manual save or restore is newest, the second picks the tab layout named like the Default name for first tab layout value.
Added a Selected: <tab layout> label above Quick Switch Tab Layout in the Extensions > Simple Tab Saver menu, with the same glyphs and badges as the toolbar dropdown, so the selection is visible without the toolbar. Shows Selected: (none) when nothing is selected.
Renamed the Show Drift Indicator glyph option to Show Unsaved Changes glyph. Pinning or unpinning a tab now marks the tab layout as having unsaved changes.
Renamed the Relocation/Rename Detection options section to Tabs Drift Detection and the Relocation Detection button in the Edit dialog to Drift Detection. Behavior unchanged.
The Compare and Edit dialogs now allow multi-row selection and copy all selected paths at once, one per line, via right-click Copy / Copy Absolute Path or Ctrl+C.
1.5.0 (2026-06-22)
All commands are now accessible via the Extensions > Simple Tab Saver menu on the Visual Studio menu bar. This also registers them in Customize > Add Command, so individual Management commands (such as Append, Star, Hide, Delete) can be placed directly on the toolbar.
Added Quick Switch Tab Layout (Ctrl+Shift+R, Q). Opens a popup to filter tab layouts and switch by keyboard: Enter switches, Ctrl+Enter switches and restores, Ctrl+Alt+Enter switches and appends (opens the tab layout's tabs alongside the open ones without closing anything), Esc cancels. The same three actions are available as buttons.
Added Compare command to the Management menu. Shows which tabs are only in the saved tab layout, which open tabs are not in it, and which are in both. Right-click copies a file path or absolute file path.
Added Edit command to the Management menu. Opens a dialog to inspect and lightly edit a saved tab layout: each tab's order, pinned status, file name, path, and breakpoint count (with a button to remove all breakpoints), reorder tabs within their pinned or unpinned group by drag and drop or arrow keys, toggle pinned status, remove tabs, and change the tab group arrangement (None / Vertical / Horizontal) with per-tab group assignment from a Group column or a digit key, numbered per group. The dialog also shows tab layout metadata and offers Starred and Hidden toggles with Rename, Duplicate, Merge, and Delete. Edits apply on Save, or are discarded with Reset. Right-click copies a file path or absolute file path.
Added Show Utilities sub-menu in Management menu option (default on). When off, all Utilities commands stay available from the Extensions > Simple Tab Saver menu.
Added a drift indicator on the toolbar combo: an exclamation mark in front of the tab layout name when open tabs differ from the tab layout, shown only on the most recently saved or restored tab layout, because any other one is an older snapshot and would always look drifted. Honors Include external files in saved tab layout and Exclude file path patterns from Save, so it matches what Save would capture. Toggled by Show Drift Indicator glyph (default off) under Toolbar Dropdown.
Renamed Enable Autosave to Enable Autosave on solution close (behavior unchanged). Added Enable Autosave on solution build/debug start (default off), which autosaves the current tab layout to the Autosave tab layout whenever a build or debugging starts. A single Start-Debugging action saves only once, and these saves never create a backup.
Fixed the saved tab order sometimes not matching the visual order after dragging tabs in the tab strip. The saved order now always reflects the on-screen left-to-right order.
Fixed pinned tabs sometimes restoring in the wrong order inside tab groups other than the first one. Tab layouts without tab groups were not affected.
1.4.1 (2026-06-20)
Added Include external files in saved tab layout option (default on). When off, Save excludes tabs whose file is outside the solution directory, so only files in the solution tree are recorded. Files in sibling or parent folders count as external.
Added Exclude file path patterns from Save option (default empty). Patterns such as *.Designer.cs or *\obj\* exclude matched files. Patterns match the path as stored in the tab layout, relative to the solution directory: text* matches a path starting with the text, *text one ending with it, *text* one containing it.
Added Show tab count badge in dropdown option (default on). Disabling it hides the [N] tab count next to each tab layout name.
Added Show tab layout age badge in dropdown option (default on). Disabling it hides the relative last-saved age (such as (5m ago)).
1.4.0 (2026-06-18)
Added git branch-aware tab layouts (opt-in, default off), controlled by Automatically save tab layouts on git branch switch and Automatically restore tab layout on git branch switch. Switching branches saves the outgoing branch's tabs and restores the incoming branch's tabs. Git-tracked tab layouts show a GIT prefix in the dropdown. A git branch tab layout is created on solution open and on branch switch when either option is on and none exists for the current branch. Manual Save is blocked when the selected git branch tab layout is tracked to a different branch. Branch names with / (like feature/auth) are sanitized to . (feature.auth) in file names.
Added orphaned git branch tab layout purge, deleting git-tracked tab layouts whose branch no longer exists and that are older than a configurable threshold (default 7 days). Runs on solution load. Controlled by Purge old tab layouts of no longer existing git branches (default off) and Confirm before git branch old tab layouts purge (default on).
Tab layouts solution root folder name now supports subfolder paths (.vs\TabLayouts) and parent directory traversal (..\.tablayouts). Absolute paths are rejected. Changing the name renames the existing storage folder for the current solution and caches the old name, so other solutions are migrated when they next open.
Added Last Saved glyph prefix in the toolbar dropdown.
Added Toolbar Dropdown Glyphs options section with independent toggles for Star, Hidden, Git Branch, Autosave, Last Saved, and Last Restored. Disabling a glyph removes its marker without affecting sorting or tracking. The first four default to on, Last Saved and Last Restored to off.
Added Append button to the Management menu (Ctrl+Shift+R, A). Opens tabs from the selected tab layout alongside the open ones without closing them, skipping tabs already open.
Added a Utilities sub-menu to the Management menu with Export Settings and Import Settings (import shows a diff report and asks for confirmation, and does nothing when settings are identical), Reset Settings to Defaults (shows which settings differ and confirms), Open Solution Storage, Open External Storage, Open Logs Directory (visible only when Enable logging is on), a Tab Layout Backups dialog (browse automatic backups per tab layout, newest first with date and tab count, then recover or delete individual ones), Purge Git Tab Layouts (deletes all orphaned git branch tab layouts regardless of age, with confirmation), and Diagnostics Dump (writes extension state, options, and storage listing to the logs directory, visible only when Enable verbose logging is on).
Fixed Default name for first tab layout not triggering when Autosave or git branch tab layouts already existed.
1.3.1 (2026-06-16)
Split breakpoint save and restore into independent options. Save breakpoints in tab layout now controls capture only. Added Insert saved breakpoints during Restore (default false) and Insert saved breakpoints during Autorestore (default false).
1.3.0 (2026-06-15)
Added Last Restored Time sort order and a Last Restored glyph prefix in the dropdown.
Added Autorestore on solution load option (default false). Restores a tab layout when a solution or folder opens, comparing open tabs against saved tabs to avoid unnecessary restores. The tab layout is chosen by the new Tab layout to use when Autorestoring option, with Last Saved Manually, Last Restored Manually, Autosaved (default), and Named like Solution.
Added Autosave glyph prefix in the dropdown for the dedicated Autosave tab layout.
Added Use solution name for Autosave tab layout name option (default false). Autosave tab layout name changes now also rename the existing tab layout and its backups.
Changed Pre-select last saved tab layout on solution load from a toggle to Pre-select tab layout on solution load with None (default), Last Saved Manually, Last Restored Manually, Autosaved, and Named like Solution.
1.2.1 (2026-06-14)
Fixed pre-select last saved tab layout, autosave on close, and toolbar selection clearing not working in Open Folder mode. All three now work for both .sln and Open Folder workspaces.
Suppressed Solution Explorer cascading selection during Restore when Track Active Item in Solution Explorer is enabled. Only the final active file is shown after restore.
Fixed Insert new tabs to the right of existing tabs not being read correctly, which could restore tabs in reversed order when enabled.
1.2.0 (2026-05-31)
Added full breakpoint support to save and restore, capturing conditional expressions, hit count rules, filter expressions, tracepoint messages, and function names.
Added breakpoint line surroundings capture. The surrounding code is stored as a fingerprint and compared with the current file version during restore, disambiguating common lines like { or } and greatly increasing line-text anchor self-correction accuracy.
Added breakpoint relocation confidence scoring (0-100%). Breakpoints below the review threshold (default 75%) are listed in a dialog where each can be individually enabled, disabled, or removed. Breakpoints below the skip threshold (default 25%) are skipped silently. Both thresholds can be set to accept all or skip all.
Added Breakpoints options category with Save breakpoints in tab layout (moved from General, default changed to false, making the feature opt-in), Attempt correction of breakpoint positions during Restore, Breakpoint correction review threshold, and Breakpoint correction skip threshold.
Added wildcard pattern support (Name*, *Name, *Name*) for Excluded directories for missing-file search.
Fixed documents opened in a non-default editor (via "Open With...") not being restored in that editor. The editor and its specific view are now saved and reopened.
Fixed Duplicate and Merge not creating an automatic backup before overwriting an existing tab layout file.
Fixed Autosave-on-close triggering the Confirm before tab count drop warning dialog.
1.1.0 (2026-05-29)
Added tab group save and restore. With 2 or more tab groups, Save captures each tab's group, the active tab per group, and the group orientation, and Restore re-creates the group structure. Single-group tab layouts are unaffected. Controlled by Save and restore tab groups arrangement (General, default true), which when off always flattens tabs to a single group during restore.
Added Flatten tab groups checkbox to the Merge dialog to drop tab group data from all participating tab layouts during the merge.
Added cursor column save and restore, and text selection save and restore. A non-empty selection at save time is recreated on restore.
Added wildcard pattern support (Name*, *Name, *Name*) for the Storage overrides lists. Solution name matching is now case-insensitive.
Fixed the .tablayouts folder being created one level above the opened directory in Open Folder mode.
1.0.3 (2026-05-27)
Fixed occasional System.NotSupportedException when editing multi-entry options via the String Collection Editor.
Fixed blank lines in the String Collection Editor surviving as empty entries in the option value.
1.0.2 (2026-05-27)
Hidden tab layouts now always sort to the bottom of the dropdown when Show hidden tab layouts in the dropdown is enabled.
Updated default values of Create solution root folder with Hidden attribute and Add solution root folder to .gitignore on first creation.
Added Create .gitignore file if it doesn't exist (default false) and Create Autosave tab layout as hidden (default true).