From eb42b0bae497a6acaefc3c8c724a6300b30c7d69 Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 16 Jan 2026 16:17:47 +0530 Subject: [PATCH 1/4] feat: add delete snippet string when hovered over the trash icon in snippets panel --- src/extensionsIntegrated/CustomSnippets/snippetsList.js | 1 + src/nls/root/strings.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/extensionsIntegrated/CustomSnippets/snippetsList.js b/src/extensionsIntegrated/CustomSnippets/snippetsList.js index b661044cc8..6215842986 100644 --- a/src/extensionsIntegrated/CustomSnippets/snippetsList.js +++ b/src/extensionsIntegrated/CustomSnippets/snippetsList.js @@ -78,6 +78,7 @@ define(function (require, exports, module) { const $deleteSnippet = $("
") .html(``) .attr("id", "delete-snippet-btn") + .attr("title", Strings.CUSTOM_SNIPPETS_DELETE_TOOLTIP) .addClass("delete-snippet-btn"); $snippetItem.append($snippetAbbr, $snippetTemplate, $snippetDescription, $snippetFiles, $deleteSnippet); diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index af248d8e6d..243fa9153c 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -1713,6 +1713,7 @@ define({ "CUSTOM_SNIPPETS_HEADER_TEMPLATE": "Template Text", "CUSTOM_SNIPPETS_HEADER_DESCRIPTION": "Description", "CUSTOM_SNIPPETS_HEADER_FILE_EXTENSION": "File Extension", + "CUSTOM_SNIPPETS_DELETE_TOOLTIP": "Delete Snippet", // promos "PROMO_UPGRADE_TITLE": "You’ve been upgraded to {0}", From 92993f4b09d4377c4de9fdba9d1a8da929ce8d52 Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 16 Jan 2026 17:55:54 +0530 Subject: [PATCH 2/4] feat: show tooltip when close button is hovered along with keyboard shortcut --- src/extensionsIntegrated/TabBar/main.js | 18 ++++++++++++++++++ src/nls/root/strings.js | 1 + 2 files changed, 19 insertions(+) diff --git a/src/extensionsIntegrated/TabBar/main.js b/src/extensionsIntegrated/TabBar/main.js index fd6ae9975e..841f578743 100644 --- a/src/extensionsIntegrated/TabBar/main.js +++ b/src/extensionsIntegrated/TabBar/main.js @@ -28,6 +28,7 @@ define(function (require, exports, module) { const FileUtils = require("file/FileUtils"); const CommandManager = require("command/CommandManager"); const Commands = require("command/Commands"); + const KeyBindingManager = require("command/KeyBindingManager"); const DocumentManager = require("document/DocumentManager"); const WorkspaceManager = require("view/WorkspaceManager"); const Menus = require("command/Menus"); @@ -515,6 +516,23 @@ define(function (require, exports, module) { } }); + // add listener for tab close button to show the tooltip along with the keybinding + $(document).on("mouseenter", ".phoenix-tab-bar .tab-close", function () { + + // there can be more than 1 keybinding for 'Close' as one is default and other one is user-set + // we need to get the user created keybinding... + const closeBindings = KeyBindingManager.getKeyBindings(Commands.FILE_CLOSE); + const closeShortcut = closeBindings.length > 0 + ? KeyBindingManager.formatKeyDescriptor(closeBindings[closeBindings.length - 1].displayKey) + : ""; + + const closeTabTooltip = closeShortcut + ? `${Strings.CLOSE_TAB_TOOLTIP} (${closeShortcut})` + : Strings.CLOSE_TAB_TOOLTIP; + + $(this).attr("title", closeTabTooltip); + }); + // open tab on mousedown event $(document).on("mousedown", ".phoenix-tab-bar .tab", function (event) { if ($(event.target).hasClass("fa-times") || $(event.target).closest(".tab-close").length) { diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 243fa9153c..5e804adc81 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -501,6 +501,7 @@ define({ "CLOSE_TABS_TO_THE_LEFT": "Close Tabs to the Left", "CLOSE_ALL_TABS": "Close All Tabs", "CLOSE_SAVED_TABS": "Close Saved Tabs", + "CLOSE_TAB_TOOLTIP": "Close Tab", // CodeInspection: errors/warnings "ERRORS_NO_FILE": "No File Open", From 07907f80d1f9c7720979febb36b94f1ed4dcf11d Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 16 Jan 2026 17:59:33 +0530 Subject: [PATCH 3/4] fix: tab bar keyboard shortcuts in keyboard panel source coming up as extension instead of Phoenix code --- src/extensionsIntegrated/DisplayShortcuts/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extensionsIntegrated/DisplayShortcuts/main.js b/src/extensionsIntegrated/DisplayShortcuts/main.js index 06eae671e2..857ddf79ce 100644 --- a/src/extensionsIntegrated/DisplayShortcuts/main.js +++ b/src/extensionsIntegrated/DisplayShortcuts/main.js @@ -124,7 +124,7 @@ define(function (require, exports, module) { let q1 = idArray[0].toLowerCase(); if (defaultCommands.includes(cmdID) || q1 === "file" || q1 === "edit" || q1 === "view" || q1 === "navigate" || q1 === "debug" || q1 === "help" || cmdID.startsWith("AltMenu-") || cmdID.startsWith("codefolding.") || cmdID.startsWith("navigation.") || cmdID.startsWith("recent-files") || - cmdID.startsWith("refactoring.") || cmdID.startsWith("recentProjects") || cmdID ==="showParameterHint") { + cmdID.startsWith("refactoring.") || cmdID.startsWith("recentProjects") || cmdID.startsWith("tabbar.") || cmdID ==="showParameterHint") { return origBrackets; } if (idArray.length > 2) { From c4531104e3209fb12022dbdcd1c63e083d5e52ab Mon Sep 17 00:00:00 2001 From: Pluto Date: Fri, 16 Jan 2026 18:02:50 +0530 Subject: [PATCH 4/4] refactor: use terminology of working files at all places instead of working set --- src/nls/root/strings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 5e804adc81..c9297b626a 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -393,7 +393,7 @@ define({ "CMD_SPLITVIEW_VERTICAL": "Vertical Split", "CMD_SPLITVIEW_HORIZONTAL": "Horizontal Split", "SPLITVIEW_MENU_TOOLTIP": "Split the editor vertically or horizontally", - "GEAR_MENU_TOOLTIP": "Configure Working Set", + "GEAR_MENU_TOOLTIP": "Configure Working Files", "CMD_TOGGLE_SHOW_WORKING_SET": "Show Working Files", "CMD_TOGGLE_SHOW_FILE_TABS": "Show File Tab Bar",