@@ -51,9 +51,24 @@ function getTabCloseSelectionOptions() {
5151 } ;
5252}
5353
54- function getTabsRelativeToActive ( side ) {
55- const { files, activeFile } = editorManager ;
56- const activeIndex = files . indexOf ( activeFile ) ;
54+ function resolveReferenceFile ( referenceFile ) {
55+ const { activeFile, getFile } = editorManager ;
56+
57+ if ( ! referenceFile ) return activeFile ;
58+ if ( typeof referenceFile === "string" ) {
59+ return getFile ( referenceFile , "id" ) || activeFile ;
60+ }
61+ if ( referenceFile ?. id ) {
62+ return getFile ( referenceFile . id , "id" ) || referenceFile ;
63+ }
64+
65+ return referenceFile ;
66+ }
67+
68+ function getTabsRelativeToFile ( side , referenceFile ) {
69+ const { files } = editorManager ;
70+ const file = resolveReferenceFile ( referenceFile ) ;
71+ const activeIndex = files . indexOf ( file ) ;
5772
5873 if ( activeIndex === - 1 ) return [ ] ;
5974
@@ -122,21 +137,21 @@ export default {
122137 async "close-all-tabs" ( ) {
123138 await closeTabs ( editorManager . files ) ;
124139 } ,
125- async "close-tabs-to-left" ( ) {
140+ async "close-tabs-to-left" ( referenceFile ) {
126141 await closeTabs (
127- getTabsRelativeToActive ( "left" ) ,
142+ getTabsRelativeToFile ( "left" , referenceFile ) ,
128143 getTabCloseSelectionOptions ( ) ,
129144 ) ;
130145 } ,
131- async "close-tabs-to-right" ( ) {
146+ async "close-tabs-to-right" ( referenceFile ) {
132147 await closeTabs (
133- getTabsRelativeToActive ( "right" ) ,
148+ getTabsRelativeToFile ( "right" , referenceFile ) ,
134149 getTabCloseSelectionOptions ( ) ,
135150 ) ;
136151 } ,
137- async "close-other-tabs" ( ) {
152+ async "close-other-tabs" ( referenceFile ) {
138153 await closeTabs (
139- getTabsRelativeToActive ( "others" ) ,
154+ getTabsRelativeToFile ( "others" , referenceFile ) ,
140155 getTabCloseSelectionOptions ( ) ,
141156 ) ;
142157 } ,
@@ -154,8 +169,8 @@ export default {
154169 "close-current-tab" ( ) {
155170 editorManager . activeFile . remove ( ) ;
156171 } ,
157- "toggle-pin-tab" ( ) {
158- editorManager . activeFile ?. togglePinned ?. ( ) ;
172+ "toggle-pin-tab" ( referenceFile ) {
173+ resolveReferenceFile ( referenceFile ) ?. togglePinned ?. ( ) ;
159174 } ,
160175 console ( ) {
161176 run ( true , "inapp" ) ;
0 commit comments