mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-03 23:06:49 +01:00
Add settings for fixed-width tabs (#181729)
* Add settings for fixed-width tabs This is meant at least partially to address #40290 and is a continuation of the unfinished work from #40750. * Only apply fixed width when the setting is on * Implement chrome-like tab width behavior Tabs shrink uniformly (down to a limit) but stay fixed-width when the mouse is over the tab bar. * Rename width setting to max width * Make the ifs more readable * Have event handlers only if the option is set * 🎨 * Handle sizing artifacts present with wrapping tabs To achieve this, it's best to remove the transition delay. * Rename setting to apply only for fixed-sized tabs * Set default fixed max tab width to 160px * Minor code tweaks from review comments * formatting Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com> * Use disposable listeners * Remove redundant check for last-in-row * Apply fade gradient from shrink tabSizing to fixed * Trying to make the code cleaner and understandable * Remove transition On advice of @bpasero, removed transition because the editor doesn't really use transition that much. * some cleanup * fix typo * Simplify workaround for the overflow issue * 💄 * 💄 * Let the tabs fix their width before closing the editor * 💄 --------- Co-authored-by: Benjamin Pasero <benjamin.pasero@microsoft.com> Co-authored-by: Benjamin Pasero <benjamin.pasero@gmail.com>
This commit is contained in:
@@ -141,13 +141,20 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
|
||||
},
|
||||
'workbench.editor.tabSizing': {
|
||||
'type': 'string',
|
||||
'enum': ['fit', 'shrink'],
|
||||
'enum': ['fit', 'shrink', 'fixed'],
|
||||
'default': 'fit',
|
||||
'enumDescriptions': [
|
||||
localize('workbench.editor.tabSizing.fit', "Always keep tabs large enough to show the full editor label."),
|
||||
localize('workbench.editor.tabSizing.shrink', "Allow tabs to get smaller when the available space is not enough to show all tabs at once.")
|
||||
localize('workbench.editor.tabSizing.shrink', "Allow tabs to get smaller when the available space is not enough to show all tabs at once."),
|
||||
localize('workbench.editor.tabSizing.fixed', "Make all tabs the same size, while allowing them to get smaller when the available space is not enough to show all tabs at once.")
|
||||
],
|
||||
'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'tabSizing' }, "Controls the sizing of editor tabs. This value is ignored when `#workbench.editor.showTabs#` is disabled.")
|
||||
'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'tabSizing' }, "Controls the size of editor tabs. This value is ignored when `#workbench.editor.showTabs#` is disabled.")
|
||||
},
|
||||
'workbench.editor.tabSizingFixedMaxWidth': {
|
||||
'type': 'number',
|
||||
'default': 160,
|
||||
'minimum': 50,
|
||||
'markdownDescription': localize('workbench.editor.tabSizingFixedMaxWidth', "Controls the maximum width of tabs when {0} is set to {1}.", '`#workbench.editor.tabSizing#`', '`fixed`')
|
||||
},
|
||||
'workbench.editor.pinnedTabSizing': {
|
||||
'type': 'string',
|
||||
@@ -158,7 +165,7 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
|
||||
localize('workbench.editor.pinnedTabSizing.compact', "A pinned tab will show in a compact form with only icon or first letter of the editor name."),
|
||||
localize('workbench.editor.pinnedTabSizing.shrink', "A pinned tab shrinks to a compact fixed size showing parts of the editor name.")
|
||||
],
|
||||
'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'pinnedTabSizing' }, "Controls the sizing of pinned editor tabs. Pinned tabs are sorted to the beginning of all opened tabs and typically do not close until unpinned. This value is ignored when `#workbench.editor.showTabs#` is disabled.")
|
||||
'markdownDescription': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'pinnedTabSizing' }, "Controls the size of pinned editor tabs. Pinned tabs are sorted to the beginning of all opened tabs and typically do not close until unpinned. This value is ignored when `#workbench.editor.showTabs#` is disabled.")
|
||||
},
|
||||
'workbench.editor.splitSizing': {
|
||||
'type': 'string',
|
||||
@@ -168,7 +175,7 @@ const registry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Con
|
||||
localize('workbench.editor.splitSizingDistribute', "Splits all the editor groups to equal parts."),
|
||||
localize('workbench.editor.splitSizingSplit', "Splits the active editor group to equal parts.")
|
||||
],
|
||||
'description': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'splitSizing' }, "Controls the sizing of editor groups when splitting them.")
|
||||
'description': localize({ comment: ['This is the description for a setting. Values surrounded by single quotes are not to be translated.'], key: 'splitSizing' }, "Controls the size of editor groups when splitting them.")
|
||||
},
|
||||
'workbench.editor.splitOnDragAndDrop': {
|
||||
'type': 'boolean',
|
||||
|
||||
Reference in New Issue
Block a user