Skip to content

Commit fb0b9ee

Browse files
committed
fix
1 parent 7de1ec5 commit fb0b9ee

File tree

3 files changed

+34
-26
lines changed

3 files changed

+34
-26
lines changed

src/lib/commands.js

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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");

src/main.js

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -762,22 +762,15 @@ function createFileMenu({ top, bottom, toggler }) {
762762
const hasSelection = !!cmEditor && !cmEditor.state.selection.main.empty;
763763
return mustache.render($_fileMenu, {
764764
...strings,
765+
file_id: file.id,
765766
toggle_pin_tab_text: file.pinned
766767
? strings["unpin tab"] || "Unpin tab"
767768
: strings["pin tab"] || "Pin tab",
768769
toggle_pin_tab_icon: file.pinned ? "icon pin-off" : "icon pin",
769770
close_tabs_to_right_text:
770-
strings["close tabs to right"] ||
771-
strings["close right"] ||
772-
"Close Right",
773-
close_tabs_to_left_text:
774-
strings["close tabs to left"] ||
775-
strings["close left"] ||
776-
"Close Left",
777-
close_other_tabs_text:
778-
strings["close other tabs"] ||
779-
strings["close others"] ||
780-
"Close Others",
771+
strings["close tabs to right"] || "Close Right",
772+
close_tabs_to_left_text: strings["close tabs to left"] || "Close Left",
773+
close_other_tabs_text: strings["close other tabs"] || "Close Others",
781774
// Use CodeMirror mode stored on EditorFile (set in setMode)
782775
file_mode: isEditorFile ? file.currentMode || "" : "",
783776
file_encoding: isEditorFile ? encoding : "",

src/views/file-menu.hbs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,19 +69,19 @@
6969
</li>
7070
{{/file_on_disk}}
7171

72-
<li action="toggle-pin-tab">
72+
<li action="toggle-pin-tab" value="{{file_id}}">
7373
<span class="text">{{toggle_pin_tab_text}}</span>
7474
<span class="{{toggle_pin_tab_icon}}"></span>
7575
</li>
76-
<li action="close-tabs-to-right">
76+
<li action="close-tabs-to-right" value="{{file_id}}">
7777
<span class="text">{{close_tabs_to_right_text}}</span>
7878
<span class="icon last_page"></span>
7979
</li>
80-
<li action="close-tabs-to-left">
80+
<li action="close-tabs-to-left" value="{{file_id}}">
8181
<span class="text">{{close_tabs_to_left_text}}</span>
8282
<span class="icon first_page"></span>
8383
</li>
84-
<li action="close-other-tabs">
84+
<li action="close-other-tabs" value="{{file_id}}">
8585
<span class="text">{{close_other_tabs_text}}</span>
8686
<span class="icon compare_arrows"></span>
8787
</li>

0 commit comments

Comments
 (0)