diff --git a/src/commands/documaticPreviewPanel.ts b/src/commands/documaticPreviewPanel.ts index 4e18cb40..7fde4d79 100644 --- a/src/commands/documaticPreviewPanel.ts +++ b/src/commands/documaticPreviewPanel.ts @@ -1,6 +1,6 @@ import * as vscode from "vscode"; import { classNameRegex } from "../utils"; -import { clsLangId } from "../extension"; +import { clsLangId, iscIcon } from "../extension"; /** * The schema of the message that gets sent to the webview. @@ -84,6 +84,7 @@ export class DocumaticPreviewPanel { localResourceRoots: [webviewFolderUri], } ); + panel.iconPath = iscIcon; this.currentPanel = new DocumaticPreviewPanel(panel, webviewFolderUri, openEditor); } @@ -92,12 +93,6 @@ export class DocumaticPreviewPanel { this._panel = panel; this._editor = editor; - // Update the panel's icon - this._panel.iconPath = { - dark: vscode.Uri.joinPath(webviewFolderUri, "preview-dark.svg"), - light: vscode.Uri.joinPath(webviewFolderUri, "preview-light.svg"), - }; - // Set the webview's initial content this.setWebviewHtml(webviewFolderUri); diff --git a/src/commands/restDebugPanel.ts b/src/commands/restDebugPanel.ts index b0bde177..234e6079 100644 --- a/src/commands/restDebugPanel.ts +++ b/src/commands/restDebugPanel.ts @@ -6,6 +6,7 @@ import * as httpsModule from "https"; import * as vscode from "vscode"; import { AtelierAPI } from "../api"; import { cspAppsForUri, outputChannel } from "../utils"; +import { iscIcon } from "../extension"; interface WebviewMessage { /** Whether this message was triggered by the user pressing the 'Start Debugging' button */ @@ -137,6 +138,7 @@ export class RESTDebugPanel { localResourceRoots: [webviewFolderUri], } ); + panel.iconPath = iscIcon; this._file = openEditor.document.uri; this.currentPanel = new RESTDebugPanel(panel, webviewFolderUri, api, restWebApps); diff --git a/src/commands/studio.ts b/src/commands/studio.ts index 07632d23..26362eed 100644 --- a/src/commands/studio.ts +++ b/src/commands/studio.ts @@ -1,6 +1,6 @@ import * as vscode from "vscode"; import { AtelierAPI } from "../api"; -import { config, filesystemSchemas } from "../extension"; +import { config, filesystemSchemas, iscIcon } from "../extension"; import { outputChannel, outputConsole, getServerName } from "../utils"; import { DocumentContentProvider } from "../providers/DocumentContentProvider"; import { ClassNode } from "../explorer/models/classNode"; @@ -157,6 +157,7 @@ export class StudioActions { enableScripts: true, } ); + panel.iconPath = iscIcon; panel.webview.onDidReceiveMessage((message) => { if (message.result && message.result === "done") { answer = "1"; diff --git a/src/commands/webSocketTerminal.ts b/src/commands/webSocketTerminal.ts index b66b13c8..ff138793 100644 --- a/src/commands/webSocketTerminal.ts +++ b/src/commands/webSocketTerminal.ts @@ -3,7 +3,7 @@ import WebSocket = require("ws"); import { AtelierAPI } from "../api"; import { connectionTarget, currentFile, outputChannel } from "../utils"; -import { config, resolveConnectionSpec } from "../extension"; +import { config, iscIcon, resolveConnectionSpec } from "../extension"; const keys = { enter: "\r", @@ -609,7 +609,6 @@ function reportError(msg: string, throwErrors = false) { function terminalConfigForUri( api: AtelierAPI, - extensionUri: vscode.Uri, targetUri: vscode.Uri, throwErrors = false ): vscode.ExtensionTerminalOptions | undefined { @@ -635,7 +634,7 @@ function terminalConfigForUri( : vscode.TerminalLocation.Panel, pty: new WebSocketTerminal(api), isTransient: true, - iconPath: vscode.Uri.joinPath(extensionUri, "images", "fileIcon.svg"), + iconPath: iscIcon, }; } @@ -659,7 +658,7 @@ async function workspaceUriForTerminal(throwErrors = false) { return uri; } -export async function launchWebSocketTerminal(extensionUri: vscode.Uri, targetUri?: vscode.Uri): Promise { +export async function launchWebSocketTerminal(targetUri?: vscode.Uri): Promise { // Determine the server to connect to if (targetUri) { // Uri passed as command argument might be for a server we haven't yet resolve connection details such as password, @@ -679,7 +678,7 @@ export async function launchWebSocketTerminal(extensionUri: vscode.Uri, targetUr await api.serverInfo(); // Get the terminal configuration - const terminalOpts = terminalConfigForUri(api, extensionUri, targetUri); + const terminalOpts = terminalConfigForUri(api, targetUri); if (terminalOpts) { // Launch the terminal const terminal = vscode.window.createTerminal(terminalOpts); @@ -688,15 +687,13 @@ export async function launchWebSocketTerminal(extensionUri: vscode.Uri, targetUr } export class WebSocketTerminalProfileProvider implements vscode.TerminalProfileProvider { - constructor(private readonly _extensionUri: vscode.Uri) {} - - async provideTerminalProfile(_token: vscode.CancellationToken): Promise { + async provideTerminalProfile(): Promise { // Determine the server connection to use const uri: vscode.Uri = await workspaceUriForTerminal(true); if (uri) { // Get the terminal configuration. Will throw if there's an error. - const terminalOpts = terminalConfigForUri(new AtelierAPI(uri), this._extensionUri, uri, true); + const terminalOpts = terminalConfigForUri(new AtelierAPI(uri), uri, true); return new vscode.TerminalProfile(terminalOpts); } else { throw new Error("WebSocket Terminal requires a selected workspace folder."); diff --git a/src/extension.ts b/src/extension.ts index a96c9dd2..e7fd8188 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -116,6 +116,7 @@ export let panel: vscode.StatusBarItem; export let posPanel: vscode.StatusBarItem; export const terminals: vscode.Terminal[] = []; export let xmlContentProvider: XmlContentProvider; +export let iscIcon: vscode.Uri; import TelemetryReporter from "vscode-extension-telemetry"; import { CodeActionProvider } from "./providers/CodeActionProvider"; @@ -782,6 +783,8 @@ export async function activate(context: vscode.ExtensionContext): Promise { // Show the proposed API prompt if required proposedApiPrompt(proposed.length > 0); + iscIcon = vscode.Uri.joinPath(context.extensionUri, "images", "fileIcon.svg"); + context.subscriptions.push( reporter, panel, @@ -1298,9 +1301,7 @@ export async function activate(context: vscode.ExtensionContext): Promise { }), vscode.commands.registerCommand("vscode-objectscript.modifyWsFolder", modifyWsFolder), vscode.commands.registerCommand("vscode-objectscript.openErrorLocation", openErrorLocation), - vscode.commands.registerCommand("vscode-objectscript.launchWebSocketTerminal", () => - launchWebSocketTerminal(context.extensionUri) - ), + vscode.commands.registerCommand("vscode-objectscript.launchWebSocketTerminal", () => launchWebSocketTerminal()), vscode.commands.registerCommand( "vscode-objectscript.intersystems-servermanager.webterminal", (namespaceTreeItem) => { @@ -1308,12 +1309,12 @@ export async function activate(context: vscode.ExtensionContext): Promise { const serverId = idArray[1]; const namespace = idArray[3]; const targetUri = vscode.Uri.from({ scheme: "isfs", authority: `${serverId}:${namespace}` }); - launchWebSocketTerminal(context.extensionUri, targetUri); + launchWebSocketTerminal(targetUri); } ), vscode.window.registerTerminalProfileProvider( "vscode-objectscript.webSocketTerminal", - new WebSocketTerminalProfileProvider(context.extensionUri) + new WebSocketTerminalProfileProvider() ), vscode.workspace.onDidChangeWorkspaceFolders((e) => { // Show the proposed API prompt if required diff --git a/webview/preview-dark.svg b/webview/preview-dark.svg deleted file mode 100644 index ec71ea81..00000000 --- a/webview/preview-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/webview/preview-light.svg b/webview/preview-light.svg deleted file mode 100644 index 4a6b85b5..00000000 --- a/webview/preview-light.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -