diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index 8d825136c..11263e963 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -713,5 +713,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/be-by.json b/src/lang/be-by.json index 95b71225b..b1cd086fc 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json index 09d84ee4d..5e5c246c1 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json index 8b3d7142d..85cb9886e 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/de-de.json b/src/lang/de-de.json index d9780f1c0..ec1172fd3 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/en-us.json b/src/lang/en-us.json index e98baffb1..be26799fa 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -714,5 +714,13 @@ "pinned tab": "Pinned tab", "unpin tab before closing": "Unpin the tab before closing it.", "app font": "App font", - "settings-info-app-font-family": "Choose the font used across the app interface." + "settings-info-app-font-family": "Choose the font used across the app interface.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json index 9113b2797..970fdc751 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json index 627823c1b..ac8c2f2bb 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/he-il.json b/src/lang/he-il.json index f29ae9ae7..6094f6e0c 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json index 69c6756a2..c761da8f3 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json index a1e3fc231..168e9e015 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Egyéni kiszolgáló eltávolítása", "lsp-remove-custom-server-confirm": "Eltávolítja a(z) {server} egyéni nyelvi kiszolgálót?", "lsp-custom-server-removed": "Egyéni kiszolgáló eltávolítva", - "settings-info-lsp-remove-custom-server": "Eltávolítja ezt az egyéni nyelvi kiszolgálót az Acode alkalmazásból." + "settings-info-lsp-remove-custom-server": "Eltávolítja ezt az egyéni nyelvi kiszolgálót az Acode alkalmazásból.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/id-id.json b/src/lang/id-id.json index 86c4e82d0..053166bb4 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Hapus server kostum", "lsp-remove-custom-server-confirm": "Hapus server bahasa kostum {server}?", "lsp-custom-server-removed": "Server kostum dihapus", - "settings-info-lsp-remove-custom-server": "Hapus server bahasa kostum ini dari Acode." + "settings-info-lsp-remove-custom-server": "Hapus server bahasa kostum ini dari Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json index 2365f7ef9..e8d7401a0 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/it-it.json b/src/lang/it-it.json index 5601d153b..1ed8a27ca 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json index e345453a1..48b544aef 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json index 769b93638..c74558450 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json index d15e85a79..7705c326a 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json index 573c0a13d..baf19f397 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json index 4bfc66e54..b929f9725 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json index 38e78e6e1..b36c87247 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json index 0ab519763..c69067213 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json index 91b4b7182..221168db6 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json index 92504c01a..f72f6dda9 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json index 18c89c58b..6375e9672 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json index 361390eb8..75a7b7508 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json index d4c75039d..a63ce30fa 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json index 3c71c4949..098b7a84b 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json index 1500c49ab..7a85c06d6 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -715,5 +715,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index dbd4979ba..44536e4ee 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json index d50a110a3..4acf285ba 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index d3731101b..17d1bf2d4 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -714,5 +714,13 @@ "lsp-remove-custom-server": "Remove custom server", "lsp-remove-custom-server-confirm": "Remove custom language server {server}?", "lsp-custom-server-removed": "Custom server removed", - "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode." + "settings-info-lsp-remove-custom-server": "Remove this custom language server from Acode.", + "unsaved selected tabs warning": "Some selected tabs are not saved. Choose what to do.", + "save selected tabs": "Save selected tabs", + "close selected tabs": "Close selected tabs", + "save selected tabs warning": "Are you sure you want to save and close the selected tabs?", + "close selected tabs warning": "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + "close tabs to right": "Close Right", + "close tabs to left": "Close Left", + "close other tabs": "Close Others" } diff --git a/src/lib/commands.js b/src/lib/commands.js index 054f40f8f..46714a492 100644 --- a/src/lib/commands.js +++ b/src/lib/commands.js @@ -35,54 +35,125 @@ import saveState from "./saveState"; import appSettings from "./settings"; import showFileInfo from "./showFileInfo"; +function getTabCloseSelectionOptions() { + return { + unsavedWarning: + strings["unsaved selected tabs warning"] || + "Some selected tabs are not saved. Choose what to do.", + saveLabel: strings["save selected tabs"] || "Save selected tabs", + closeLabel: strings["close selected tabs"] || "Close selected tabs", + saveWarning: + strings["save selected tabs warning"] || + "Are you sure you want to save and close the selected tabs?", + closeWarning: + strings["close selected tabs warning"] || + "Are you sure you want to close the selected tabs? You will lose the unsaved changes and this action cannot be reversed.", + }; +} + +function resolveReferenceFile(referenceFile) { + const { activeFile, getFile } = editorManager; + + if (!referenceFile) return activeFile; + if (typeof referenceFile === "string") { + return getFile(referenceFile, "id") || activeFile; + } + if (referenceFile?.id) { + return getFile(referenceFile.id, "id") || referenceFile; + } + + return referenceFile; +} + +function getTabsRelativeToFile(side, referenceFile) { + const { files } = editorManager; + const file = resolveReferenceFile(referenceFile); + const activeIndex = files.indexOf(file); + + if (activeIndex === -1) return []; + + switch (side) { + case "left": + return files.slice(0, activeIndex); + case "right": + return files.slice(activeIndex + 1); + case "others": + return files.filter((_, index) => index !== activeIndex); + default: + return []; + } +} + +async function closeTabs(files, options = {}) { + const closableFiles = files.filter((file) => file && !file.pinned); + if (!closableFiles.length) return false; + + const { + unsavedWarning = strings["unsaved files warning"], + saveLabel = strings["save all"], + closeLabel = strings["close all"], + saveWarning = strings["save all warning"], + closeWarning = strings["close all warning"], + } = options; + + let save = false; + const unsavedFiles = closableFiles.filter((file) => file.isUnsaved).length; + if (unsavedFiles) { + const confirmation = await confirm(strings["warning"], unsavedWarning); + if (!confirmation) return false; + + const option = await select(strings["select"], [ + ["save", saveLabel], + ["close", closeLabel], + ["cancel", strings["cancel"]], + ]); + if (option === "cancel") return false; + + if (option === "save") { + const doSave = await confirm(strings["warning"], saveWarning); + if (!doSave) return false; + save = true; + } else { + const doClose = await confirm(strings["warning"], closeWarning); + if (!doClose) return false; + } + } + + for (const file of [...closableFiles]) { + if (save) { + await file.save(); + } + + await file.remove(true, { silentPinned: true }); + } + + return true; +} + export default { async "run-tests"() { await runAllTests(); }, async "close-all-tabs"() { - const closableFiles = editorManager.files.filter((file) => !file.pinned); - if (!closableFiles.length) return; - - let save = false; - const unsavedFiles = closableFiles.filter((file) => file.isUnsaved).length; - if (unsavedFiles) { - const confirmation = await confirm( - strings["warning"], - strings["unsaved files warning"], - ); - if (!confirmation) return; - const option = await select(strings["select"], [ - ["save", strings["save all"]], - ["close", strings["close all"]], - ["cancel", strings["cancel"]], - ]); - if (option === "cancel") return; - - if (option === "save") { - const doSave = await confirm( - strings["warning"], - strings["save all warning"], - ); - if (!doSave) return; - save = true; - } else { - const doClose = await confirm( - strings["warning"], - strings["close all warning"], - ); - if (!doClose) return; - } - } - - for (const file of [...closableFiles]) { - if (save) { - await file.save(); - await file.remove(true, { silentPinned: true }); - continue; - } - - await file.remove(true, { silentPinned: true }); - } + await closeTabs(editorManager.files); + }, + async "close-tabs-to-left"(referenceFile) { + await closeTabs( + getTabsRelativeToFile("left", referenceFile), + getTabCloseSelectionOptions(), + ); + }, + async "close-tabs-to-right"(referenceFile) { + await closeTabs( + getTabsRelativeToFile("right", referenceFile), + getTabCloseSelectionOptions(), + ); + }, + async "close-other-tabs"(referenceFile) { + await closeTabs( + getTabsRelativeToFile("others", referenceFile), + getTabCloseSelectionOptions(), + ); }, async "save-all-changes"() { const doSave = await confirm( @@ -98,8 +169,8 @@ export default { "close-current-tab"() { editorManager.activeFile.remove(); }, - "toggle-pin-tab"() { - editorManager.activeFile?.togglePinned?.(); + "toggle-pin-tab"(referenceFile) { + resolveReferenceFile(referenceFile)?.togglePinned?.(); }, console() { run(true, "inapp"); diff --git a/src/lib/editorFile.js b/src/lib/editorFile.js index 8257fd3c5..eddb71cb3 100644 --- a/src/lib/editorFile.js +++ b/src/lib/editorFile.js @@ -1011,14 +1011,15 @@ export default class EditorFile { (file) => file.id !== this.id, ); const { files, activeFile } = editorManager; - if (activeFile.id === this.id) { + const wasActive = activeFile?.id === this.id; + if (wasActive) { editorManager.activeFile = null; } if (!files.length) { Sidebar.hide(); editorManager.activeFile = null; new EditorFile(); - } else { + } else if (wasActive) { files[files.length - 1].makeActive(); } editorManager.onupdate("remove-file"); diff --git a/src/lib/keyBindings.js b/src/lib/keyBindings.js index a5f481346..103fb4aa6 100644 --- a/src/lib/keyBindings.js +++ b/src/lib/keyBindings.js @@ -43,6 +43,27 @@ const APP_BINDING_CONFIG = [ action: "close-all-tabs", readOnly: false, }, + { + name: "closeTabsToRight", + description: "Close tabs to the right.", + key: null, + action: "close-tabs-to-right", + readOnly: false, + }, + { + name: "closeTabsToLeft", + description: "Close tabs to the left.", + key: null, + action: "close-tabs-to-left", + readOnly: false, + }, + { + name: "closeOtherTabs", + description: "Close other tabs.", + key: null, + action: "close-other-tabs", + readOnly: false, + }, { name: "newFile", description: "Create new file", diff --git a/src/main.js b/src/main.js index fd173d15a..65067364a 100644 --- a/src/main.js +++ b/src/main.js @@ -762,10 +762,15 @@ function createFileMenu({ top, bottom, toggler }) { const hasSelection = !!cmEditor && !cmEditor.state.selection.main.empty; return mustache.render($_fileMenu, { ...strings, + file_id: file.id, toggle_pin_tab_text: file.pinned ? strings["unpin tab"] || "Unpin tab" : strings["pin tab"] || "Pin tab", toggle_pin_tab_icon: file.pinned ? "icon pin-off" : "icon pin", + close_tabs_to_right_text: + strings["close tabs to right"] || "Close Right", + close_tabs_to_left_text: strings["close tabs to left"] || "Close Left", + close_other_tabs_text: strings["close other tabs"] || "Close Others", // Use CodeMirror mode stored on EditorFile (set in setMode) file_mode: isEditorFile ? file.currentMode || "" : "", file_encoding: isEditorFile ? encoding : "", diff --git a/src/views/file-menu.hbs b/src/views/file-menu.hbs index 056faf62c..24c4ae047 100644 --- a/src/views/file-menu.hbs +++ b/src/views/file-menu.hbs @@ -69,10 +69,22 @@ {{/file_on_disk}} -