@@ -113,6 +113,9 @@ export function getTerminalTabsByCharacter(character: TerminalTabCharacter) {
113
113
}
114
114
115
115
interface TerminalTabCategory {
116
+ category ?: {
117
+ title : string ,
118
+ } ,
116
119
items : {
117
120
tab ?: TerminalTab | undefined ,
118
121
character ?: TerminalTabCharacter | undefined ,
@@ -136,6 +139,7 @@ const tabCategories = $computed<TerminalTabCategory[]>(() => {
136
139
} ,
137
140
...orderedCategories . map < TerminalTabCategory > ( category => {
138
141
return {
142
+ category,
139
143
items : category . characters . flatMap ( character => {
140
144
const characterTabs = getTerminalTabsByCharacter ( character )
141
145
return characterTabs . length
@@ -503,11 +507,17 @@ export function showTabOptions(event?: MouseEvent, type?: string) {
503
507
let number = 1
504
508
let options : ( MenuItem | MenuItem [ ] ) [ ] = [ ]
505
509
let defaultIndex = - 1
506
- for ( let index = 0 ; index < tabCategories . length ; index += 1 ) {
507
- if ( index ) {
510
+ for ( const category of tabCategories ) {
511
+ if ( category . category ) {
508
512
options . push ( [ ] )
513
+ if ( process . platform === 'darwin' ) {
514
+ options . push ( {
515
+ type : 'header' ,
516
+ label : category . category . title ,
517
+ } )
518
+ }
509
519
}
510
- const items = tabCategories [ index ] . items
520
+ const items = category . items
511
521
const enabledItems = filterTerminalTabsByKeyword ( items , item => {
512
522
return item . tab ? getTerminalTabTitle ( item . tab ) : item . character ?. title ?? ''
513
523
} )
@@ -517,12 +527,12 @@ export function showTabOptions(event?: MouseEvent, type?: string) {
517
527
defaultIndex = options . length
518
528
}
519
529
options . push ( {
520
- type : index ? 'checkbox' : 'normal' ,
530
+ type : category . category ? 'checkbox' : 'normal' ,
521
531
label : item . tab ? getTerminalTabTitle ( item . tab ) : item . character ?. title ,
522
532
args : item . tab ? [ currentIndex ] : [ item . character ] as never ,
523
533
command : item . tab ? 'select-tab' : item . command as never ,
524
534
accelerator : number <= 9 ? String ( number ) : undefined ,
525
- checked : index ? Boolean ( item . tab ) : undefined ,
535
+ checked : category . category ? Boolean ( item . tab ) : undefined ,
526
536
enabled : enabledItems . includes ( item ) ,
527
537
} )
528
538
number += 1
0 commit comments