diff --git a/CHANGELOG.md b/CHANGELOG.md index 461fafef..89ee1b17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ # Change Log +## [2.12.7] 05-Aug-2024 +- Enhancements + - Fire source control hooks for opened and closed documents (#1414) + - Always stop the debug target process when attaching (#1415) + - Prompt user for workspace folder before process ID when attaching to a process in a multi-root workspace (#1417) + - Rename `InterSystems WebSocket Terminal` to `InterSystems Lite Terminal` (#1418) +- Fixes + - Fix showing of CSP files in project folders (#1408) + - Add confirmation dialog when deleting a project (#1410) + - Fix attach debugging when no file is open (#1412) + - Improve reliability of updating status bar panels (#1416) + - Add CSPSHARE=1 to Studio Add-In links to align behavior with Studio (#1419) + - Don't append CSPCHD for web applications that don't support it by default (#1420) + ## [2.12.6] 23-Jul-2024 +Minimum VS Code version is now 1.91.0. - Enhancements - Support command stepping in debugger (requires InterSystems IRIS 2023.1.5, 2024.1.1+, or 2024.2+) (#1385) - Add `Compile` command to server-side file explorer (#1389) diff --git a/README.md b/README.md index a3e529a3..6a09396d 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,8 @@ To unlock these features (optional): 1. Download and install a beta version from GitHub. This is necessary because Marketplace does not allow publication of extensions that use proposed APIs. - Go to https://github.com/intersystems-community/vscode-objectscript/releases - - Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `2.12.6`, look for `2.12.7-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs. - - Download the VSIX file (for example `vscode-objectscript-2.12.7-beta.1.vsix`) and install it. One way to install a VSIX is to drag it from your download folder and drop it onto the list of extensions in the Extensions view of VS Code. + - Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `2.12.7`, look for `2.12.8-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs. + - Download the VSIX file (for example `vscode-objectscript-2.12.8-beta.1.vsix`) and install it. One way to install a VSIX is to drag it from your download folder and drop it onto the list of extensions in the Extensions view of VS Code. 2. From [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) choose `Preferences: Configure Runtime Arguments`. 3. In the argv.json file that opens, add this line (required for both Stable and Insiders versions of VS Code): diff --git a/package.json b/package.json index 33b4c4f5..35b1a10c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "vscode-objectscript", "displayName": "InterSystems ObjectScript", "description": "InterSystems ObjectScript language support for Visual Studio Code", - "version": "2.12.7-SNAPSHOT", + "version": "2.12.8-SNAPSHOT", "icon": "images/logo.png", "aiKey": "9cd75d51-697c-406c-a929-2bcf46e97c64", "categories": [ @@ -1139,11 +1139,11 @@ { "category": "ObjectScript", "command": "vscode-objectscript.launchWebSocketTerminal", - "title": "Launch WebSocket Terminal" + "title": "Launch Lite Terminal" }, { "command": "vscode-objectscript.intersystems-servermanager.webterminal", - "title": "Launch WebSocket Terminal", + "title": "Launch Lite Terminal", "icon": "$(terminal)" }, { @@ -1517,7 +1517,7 @@ "default": true }, "objectscript.webSocketTerminal.syntaxColoring": { - "description": "Enable syntax coloring for command input in the InterSystems WebSocket Terminal.", + "description": "Enable syntax coloring for command input in the InterSystems Lite Terminal.", "type": "boolean", "default": true }, @@ -1686,7 +1686,7 @@ "type": "objectscript", "request": "attach", "name": "Attach to running process" - } + } ], "configurationSnippets": [ { @@ -1744,7 +1744,7 @@ "profiles": [ { "id": "vscode-objectscript.webSocketTerminal", - "title": "InterSystems WebSocket Terminal", + "title": "InterSystems Lite Terminal", "icon": "./images/fileIcon.svg" } ] diff --git a/src/commands/serverActions.ts b/src/commands/serverActions.ts index 3ef48394..c835085d 100644 --- a/src/commands/serverActions.ts +++ b/src/commands/serverActions.ts @@ -219,13 +219,11 @@ export async function serverActions(): Promise { } switch (action.id) { case "openPortal": { - const token = await getCSPToken(api, portalPath); - vscode.env.openExternal(vscode.Uri.parse(`${serverUrl}${portalPath}&CSPCHD=${token}`)); + vscode.env.openExternal(vscode.Uri.parse(`${serverUrl}${portalPath}`)); break; } case "openClassReference": { - const token = await getCSPToken(api, classRef); - vscode.env.openExternal(vscode.Uri.parse(`${serverUrl}${classRef}&CSPCHD=${token}`)); + vscode.env.openExternal(vscode.Uri.parse(`${serverUrl}${classRef}`)); break; } case "openStudioAddin": { @@ -251,6 +249,7 @@ export async function serverActions(): Promise { params += `&Project=${encodeURIComponent(project)}`; } params += `&CSPCHD=${token}`; + params += "&CSPSHARE=1"; vscode.env.openExternal(vscode.Uri.parse(`${serverUrl}${addin.id}?${params}`)); } } diff --git a/src/commands/webSocketTerminal.ts b/src/commands/webSocketTerminal.ts index 5bacbbad..7f624a65 100644 --- a/src/commands/webSocketTerminal.ts +++ b/src/commands/webSocketTerminal.ts @@ -167,7 +167,7 @@ class WebSocketTerminal implements vscode.Pseudoterminal { }, }); } catch (error) { - handleError(error, "Failed to initialize WebSocket Terminal."); + handleError(error, "Failed to initialize Lite Terminal."); outputChannel.appendLine("Check that the InterSystems server's web server supports WebSockets."); this._closeEmitter.fire(); return; @@ -180,7 +180,7 @@ class WebSocketTerminal implements vscode.Pseudoterminal { this._socket .on("error", (error) => { // Log the error and close - handleError(`WebSocket error: ${error.toString()}`, "WebSocket Terminal failed."); + handleError(`WebSocket error: ${error.toString()}`, "Lite Terminal failed."); this._closeEmitter.fire(); }) .on("close", () => { @@ -197,7 +197,7 @@ class WebSocketTerminal implements vscode.Pseudoterminal { switch (message.type) { case "error": // Log the error and close - handleError(message.text, "WebSocket Terminal failed."); + handleError(message.text, "Lite Terminal failed."); this._closeEmitter.fire(); break; case "output": @@ -597,12 +597,12 @@ function terminalConfigForUri( ): vscode.ExtensionTerminalOptions | undefined { // Make sure the server connection is active if (!api.active || api.ns == "") { - reportError("WebSocket Terminal requires an active server connection.", throwErrors); + reportError("Lite Terminal requires an active server connection.", throwErrors); return; } // Make sure the server has the terminal endpoint if (api.config.apiVersion < 7) { - reportError("WebSocket Terminal requires InterSystems IRIS version 2023.2 or above.", throwErrors); + reportError("Lite Terminal requires InterSystems IRIS version 2023.2 or above.", throwErrors); return; } @@ -625,7 +625,7 @@ async function workspaceUriForTerminal(throwErrors = false) { let uri: vscode.Uri; const workspaceFolders = vscode.workspace.workspaceFolders || []; if (workspaceFolders.length == 0) { - reportError("WebSocket Terminal requires an open workspace.", throwErrors); + reportError("Lite Terminal requires an open workspace.", throwErrors); } else if (workspaceFolders.length == 1) { // Use the current connection uri = workspaceFolders[0].uri; @@ -679,7 +679,7 @@ export class WebSocketTerminalProfileProvider implements vscode.TerminalProfileP const terminalOpts = terminalConfigForUri(new AtelierAPI(uri), uri, true); return new vscode.TerminalProfile(terminalOpts); } else { - throw new Error("WebSocket Terminal requires a selected workspace folder."); + throw new Error("Lite Terminal requires a selected workspace folder."); } } }