@@ -9,7 +9,7 @@ import { URI } from 'vs/base/common/uri';
9
9
import { IEditorPaneRegistry , EditorPaneDescriptor } from 'vs/workbench/browser/editor' ;
10
10
import {
11
11
IEditorFactoryRegistry , TextCompareEditorActiveContext , ActiveEditorPinnedContext , EditorExtensions , EditorGroupEditorsCountContext ,
12
- ActiveEditorStickyContext , ActiveEditorAvailableEditorIdsContext , MultipleEditorGroupsContext , ActiveEditorDirtyContext
12
+ ActiveEditorStickyContext , ActiveEditorAvailableEditorIdsContext , MultipleEditorGroupsContext , ActiveEditorDirtyContext , ActiveEditorGroupLockedContext
13
13
} from 'vs/workbench/common/editor' ;
14
14
import { SideBySideEditorInput , SideBySideEditorInputSerializer } from 'vs/workbench/common/editor/sideBySideEditorInput' ;
15
15
import { TextResourceEditor } from 'vs/workbench/browser/parts/editor/textResourceEditor' ;
@@ -42,7 +42,7 @@ import {
42
42
CLOSE_EDITORS_AND_GROUP_COMMAND_ID , CLOSE_EDITORS_IN_GROUP_COMMAND_ID , CLOSE_EDITORS_TO_THE_RIGHT_COMMAND_ID , CLOSE_EDITOR_COMMAND_ID , CLOSE_EDITOR_GROUP_COMMAND_ID ,
43
43
CLOSE_OTHER_EDITORS_IN_GROUP_COMMAND_ID , CLOSE_PINNED_EDITOR_COMMAND_ID , CLOSE_SAVED_EDITORS_COMMAND_ID , GOTO_NEXT_CHANGE , GOTO_PREVIOUS_CHANGE , KEEP_EDITOR_COMMAND_ID ,
44
44
PIN_EDITOR_COMMAND_ID , SHOW_EDITORS_IN_GROUP , SPLIT_EDITOR_DOWN , SPLIT_EDITOR_LEFT , SPLIT_EDITOR_RIGHT , SPLIT_EDITOR_UP , TOGGLE_DIFF_IGNORE_TRIM_WHITESPACE ,
45
- TOGGLE_DIFF_SIDE_BY_SIDE , TOGGLE_KEEP_EDITORS_COMMAND_ID , UNPIN_EDITOR_COMMAND_ID , setup as registerEditorCommands , REOPEN_WITH_COMMAND_ID
45
+ TOGGLE_DIFF_SIDE_BY_SIDE , TOGGLE_KEEP_EDITORS_COMMAND_ID , UNPIN_EDITOR_COMMAND_ID , setup as registerEditorCommands , REOPEN_WITH_COMMAND_ID , TOGGLE_LOCK_GROUP_COMMAND_ID , UNLOCK_GROUP_COMMAND_ID
46
46
} from 'vs/workbench/browser/parts/editor/editorCommands' ;
47
47
import { inQuickPickContext , getQuickNavigateHandler } from 'vs/workbench/browser/quickaccess' ;
48
48
import { KeybindingsRegistry , KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry' ;
@@ -292,12 +292,17 @@ if (isMacintosh) {
292
292
} ) ;
293
293
}
294
294
295
+ // Empty Editor Group Toolbar
296
+ MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroup , { command : { id : UNLOCK_GROUP_COMMAND_ID , title : localize ( 'unlockGroupAction' , "Unlock Group" ) , icon : Codicon . unlock } , group : 'navigation' , order : 10 , when : ActiveEditorGroupLockedContext } ) ;
297
+ MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroup , { command : { id : CLOSE_EDITOR_GROUP_COMMAND_ID , title : localize ( 'closeGroupAction' , "Close Group" ) , icon : Codicon . close } , group : 'navigation' , order : 10 , when : ActiveEditorGroupLockedContext . toNegated ( ) } ) ;
298
+
295
299
// Empty Editor Group Context Menu
296
300
MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : SPLIT_EDITOR_UP , title : localize ( 'splitUp' , "Split Up" ) } , group : '2_split' , order : 10 } ) ;
297
301
MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : SPLIT_EDITOR_DOWN , title : localize ( 'splitDown' , "Split Down" ) } , group : '2_split' , order : 20 } ) ;
298
302
MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : SPLIT_EDITOR_LEFT , title : localize ( 'splitLeft' , "Split Left" ) } , group : '2_split' , order : 30 } ) ;
299
303
MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : SPLIT_EDITOR_RIGHT , title : localize ( 'splitRight' , "Split Right" ) } , group : '2_split' , order : 40 } ) ;
300
- MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : CLOSE_EDITOR_GROUP_COMMAND_ID , title : localize ( 'close' , "Close" ) } , group : '3_close' , order : 10 , when : ContextKeyExpr . has ( 'multipleEditorGroups' ) } ) ;
304
+ MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : TOGGLE_LOCK_GROUP_COMMAND_ID , title : localize ( 'toggleLockGroup' , "Lock Group" ) , toggled : ActiveEditorGroupLockedContext } , group : '3_lock' , order : 10 , when : ContextKeyExpr . has ( 'multipleEditorGroups' ) } ) ;
305
+ MenuRegistry . appendMenuItem ( MenuId . EmptyEditorGroupContext , { command : { id : CLOSE_EDITOR_GROUP_COMMAND_ID , title : localize ( 'close' , "Close" ) } , group : '4_close' , order : 10 , when : ContextKeyExpr . has ( 'multipleEditorGroups' ) } ) ;
301
306
302
307
// Editor Title Context Menu
303
308
MenuRegistry . appendMenuItem ( MenuId . EditorTitleContext , { command : { id : CLOSE_EDITOR_COMMAND_ID , title : localize ( 'close' , "Close" ) } , group : '1_close' , order : 10 } ) ;
@@ -320,6 +325,7 @@ MenuRegistry.appendMenuItem(MenuId.EditorTitle, { command: { id: SHOW_EDITORS_IN
320
325
MenuRegistry . appendMenuItem ( MenuId . EditorTitle , { command : { id : CLOSE_EDITORS_IN_GROUP_COMMAND_ID , title : localize ( 'closeAll' , "Close All" ) } , group : '5_close' , order : 10 } ) ;
321
326
MenuRegistry . appendMenuItem ( MenuId . EditorTitle , { command : { id : CLOSE_SAVED_EDITORS_COMMAND_ID , title : localize ( 'closeAllSaved' , "Close Saved" ) } , group : '5_close' , order : 20 } ) ;
322
327
MenuRegistry . appendMenuItem ( MenuId . EditorTitle , { command : { id : TOGGLE_KEEP_EDITORS_COMMAND_ID , title : localize ( 'toggleKeepEditors' , "Keep Editors Open" ) , toggled : ContextKeyExpr . not ( 'config.workbench.editor.enablePreview' ) } , group : '7_settings' , order : 10 } ) ;
328
+ MenuRegistry . appendMenuItem ( MenuId . EditorTitle , { command : { id : TOGGLE_LOCK_GROUP_COMMAND_ID , title : localize ( 'lockGroup' , "Lock Group" ) , toggled : ActiveEditorGroupLockedContext } , group : '8_lock' , order : 10 , when : ContextKeyExpr . has ( 'multipleEditorGroups' ) } ) ;
323
329
324
330
interface IEditorToolItem { id : string ; title : string ; icon ?: { dark ?: URI ; light ?: URI ; } | ThemeIcon ; }
325
331
@@ -442,6 +448,17 @@ appendEditorToolItem(
442
448
}
443
449
) ;
444
450
451
+ // Unlock Group: only when group is locked
452
+ appendEditorToolItem (
453
+ {
454
+ id : UNLOCK_GROUP_COMMAND_ID ,
455
+ title : localize ( 'unlockEditorGroup' , "Unlock Group" ) ,
456
+ icon : Codicon . unlock
457
+ } ,
458
+ ActiveEditorGroupLockedContext ,
459
+ 1000000 - 1 , // left to close action
460
+ ) ;
461
+
445
462
const previousChangeIcon = registerIcon ( 'diff-editor-previous-change' , Codicon . arrowUp , localize ( 'previousChangeIcon' , 'Icon for the previous change action in the diff editor.' ) ) ;
446
463
const nextChangeIcon = registerIcon ( 'diff-editor-next-change' , Codicon . arrowDown , localize ( 'nextChangeIcon' , 'Icon for the next change action in the diff editor.' ) ) ;
447
464
const toggleWhitespace = registerIcon ( 'diff-editor-toggle-whitespace' , Codicon . whitespace , localize ( 'toggleWhitespace' , 'Icon for the toggle whitespace action in the diff editor.' ) ) ;
0 commit comments