From 7aece43a6b65e39171a66fa89f3c7aa71e1e2592 Mon Sep 17 00:00:00 2001 From: abhishekbhakat Date: Mon, 17 Mar 2025 07:09:27 +0000 Subject: [PATCH] Enhance status bar with new buttons for tree view and settings; refactor existing button setup --- package.json | 20 ++++++++++++++---- src/extension.ts | 30 ++++++++++++++++----------- src/providers/prompterTreeProvider.ts | 10 +++++++++ 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 09d7754..68af5c7 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,13 @@ }, { "command": "prompter.generatePrompt", - "title": "Copy" + "title": "Copy", + "icon": "$(clippy)" + }, + { + "command": "prompter.openTreeView", + "title": "Show Tree View", + "icon": "$(list-tree)" }, { "command": "prompter.openSettings", @@ -42,7 +48,8 @@ "prompter-sidebar": [ { "id": "prompterView", - "name": "Prompter" + "name": "Prompter", + "icon": "resources/icon.svg" } ] }, @@ -54,9 +61,14 @@ "when": "view == prompterView" }, { - "command": "prompter.openSettings", + "command": "prompter.openTreeView", "group": "navigation@2", "when": "view == prompterView" + }, + { + "command": "prompter.openSettings", + "group": "navigation@3", + "when": "view == prompterView" } ], "view/item/context": [ @@ -95,4 +107,4 @@ "@vscode/vsce": "^3.2.2", "ignore": "^7.0.3" } -} +} \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 18cbb13..4b38705 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -60,26 +60,33 @@ export function activate(context: vscode.ExtensionContext) { // Update formatting instructions button text if that setting changed if (item.settingKey === 'includeFormattingInstructions') { xmlEditsButton.text = prompterTreeProvider.isXmlEditsEnabled() ? - "$(check) Formatting Instructions" : "$(diff-added) Formatting Instructions"; + "$(check) Formatting Instructions" : "$(diff-added) XML Edits"; } } } }); // Create formatting instructions toggle button - const xmlEditsButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left); - xmlEditsButton.text = "$(diff-added) Formatting Instructions"; + const xmlEditsButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 1); + xmlEditsButton.text = "$(diff-added) XML Edits"; xmlEditsButton.tooltip = "Toggle formatting instructions mode"; xmlEditsButton.command = 'prompter.toggleXmlEdits'; xmlEditsButton.show(); // Create copy button - const copyButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right); + const copyButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 3); copyButton.text = "$(clippy) Copy"; copyButton.tooltip = "Generate and copy prompt"; copyButton.command = 'prompter.generatePrompt'; copyButton.show(); + // Create settings button + const settingsButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 2); + settingsButton.text = "$(settings-gear)"; + settingsButton.tooltip = "Prompter Settings"; + settingsButton.command = 'prompter.openSettings'; + settingsButton.show(); + // Register command to toggle file selection let toggleSelectionCommand = vscode.commands.registerCommand('prompter.toggleSelection', (item: FileTreeItem) => { if (item.resourceUri) { @@ -95,13 +102,6 @@ export function activate(context: vscode.ExtensionContext) { "$(check) XML Edits" : "$(diff-added) XML Edits"; }); - // Create settings button - const settingsButton = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left); - settingsButton.text = "$(settings-gear)"; - settingsButton.tooltip = "Prompter Settings"; - settingsButton.command = 'prompter.openSettings'; - settingsButton.show(); - // Register command to open settings let openSettingsCommand = vscode.commands.registerCommand('prompter.openSettings', () => { prompterTreeProvider.toggleSettingsView(); @@ -113,6 +113,11 @@ export function activate(context: vscode.ExtensionContext) { "Show Files" : "Prompter Settings"; }); + // Register command to show the tree view + let openTreeViewCommand = vscode.commands.registerCommand('prompter.openTreeView', () => { + prompterTreeProvider.showFilesView(); + }); + // Register command to generate prompt from selected files let generatePromptCommand = vscode.commands.registerCommand('prompter.generatePrompt', async () => { const selectedFiles = prompterTreeProvider.getSelectedFiles(); @@ -155,7 +160,8 @@ export function activate(context: vscode.ExtensionContext) { toggleSelectionCommand, toggleXmlEditsCommand, generatePromptCommand, - openSettingsCommand + openSettingsCommand, + openTreeViewCommand ); } diff --git a/src/providers/prompterTreeProvider.ts b/src/providers/prompterTreeProvider.ts index 97b8551..5883e1a 100644 --- a/src/providers/prompterTreeProvider.ts +++ b/src/providers/prompterTreeProvider.ts @@ -32,6 +32,16 @@ export class PrompterTreeProvider implements vscode.TreeDataProvider