Skip to content

Commit c2a58da

Browse files
committed
Merge remote-tracking branch 'upstream/master' into client-side-compile-update
2 parents 499db42 + 14bd8af commit c2a58da

File tree

15 files changed

+455
-198
lines changed

15 files changed

+455
-198
lines changed

CHANGELOG.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Change Log
22

3+
## [3.2.0] 06-Oct-2025
4+
Minimum VS Code version is now 1.104.0.
5+
- Enhancements
6+
- Better error handling when expanding InterSystems and Projects Explorers (#1652)
7+
- Allow opening low-code editors from read-only file systems (#1655)
8+
- Add command for showing all class members, including inherited (#1656)
9+
- Allow commands to be re-run in the Lite Terminal from VS Code shell integration without user confirmation (#1654)
10+
- Allow pasting of multi-line content into Lite Terminal `READ` prompts (#1654)
11+
- Fixes
12+
- Fix stringification of `AggregateError` (#1651)
13+
- Work around VS Code bug to allow re-running of multi-line commands in Lite Terminal from VS Code shell integration (#1654)
14+
- Correctly capture Lite Terminal command output in shell integration (#1654)
15+
- Fix some edge cases where the Lite Terminal cursor and text could get out of sync (#1654)
16+
- Copy Windows filesystem file correctly to `isfs` filesystem (#1658)
17+
- Upgrade dependencies (#1650, #1653)
18+
319
## [3.0.6] 09-Sep-2025
420
- Enhancements
521
- Add `objectscript.unitTest.enabled` setting (#1627)

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ To unlock these features (optional):
5555

5656
1. Download and install a beta version from GitHub. This is necessary because Marketplace does not allow publication of extensions that use proposed APIs.
5757
- Go to https://github.com/intersystems-community/vscode-objectscript/releases
58-
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `3.0.6`, look for `3.0.7-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
59-
- Download the VSIX file (for example `vscode-objectscript-3.0.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.
58+
- Locate the beta immediately above the release you installed from Marketplace. For instance, if you installed `3.2.0`, look for `3.2.1-beta.1`. This will be functionally identical to the Marketplace version apart from being able to use proposed APIs.
59+
- Download the VSIX file (for example `vscode-objectscript-3.2.1-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.
6060

6161
2. From [Command Palette](https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_command-palette) choose `Preferences: Configure Runtime Arguments`.
6262
3. In the argv.json file that opens, add this line (required for both Stable and Insiders versions of VS Code):

package-lock.json

Lines changed: 11 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vscode-objectscript",
33
"displayName": "InterSystems ObjectScript",
44
"description": "InterSystems ObjectScript language support for Visual Studio Code",
5-
"version": "3.0.7-SNAPSHOT",
5+
"version": "3.2.1-SNAPSHOT",
66
"icon": "images/logo.png",
77
"aiKey": "InstrumentationKey=9cd75d51-697c-406c-a929-2bcf46e97c64;IngestionEndpoint=https://eastus2-4.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=a431c56f-8ccc-4b99-b5e9-fce3763215b1",
88
"categories": [
@@ -48,7 +48,7 @@
4848
}
4949
],
5050
"engines": {
51-
"vscode": "^1.93.0"
51+
"vscode": "^1.104.0"
5252
},
5353
"enabledApiProposals": [
5454
"fileSearchProvider",
@@ -225,7 +225,11 @@
225225
},
226226
{
227227
"command": "vscode-objectscript.showClassDocumentationPreview",
228-
"when": "editorLangId == objectscript-class && activeCustomEditorId == ''"
228+
"when": "false"
229+
},
230+
{
231+
"command": "vscode-objectscript.showAllClassMembers",
232+
"when": "false"
229233
},
230234
{
231235
"command": "vscode-objectscript.exportCurrentFile",
@@ -535,14 +539,14 @@
535539
"command": "vscode-objectscript.showClassDocumentationPreview",
536540
"group": "navigation@3",
537541
"when": "editorLangId == objectscript-class && activeCustomEditorId == ''"
542+
},
543+
{
544+
"command": "vscode-objectscript.showAllClassMembers",
545+
"group": "[email protected]",
546+
"when": "vscode-objectscript.connectActive && editorLangId == objectscript-class && activeCustomEditorId == ''"
538547
}
539548
],
540549
"editor/title/context": [
541-
{
542-
"command": "vscode-objectscript.showClassDocumentationPreview",
543-
"group": "1_open",
544-
"when": "resourceLangId == objectscript-class && activeCustomEditorId == ''"
545-
},
546550
{
547551
"command": "vscode-objectscript.showRESTDebugWebview",
548552
"group": "1_open",
@@ -1194,6 +1198,12 @@
11941198
"command": "vscode-objectscript.openISCDocument",
11951199
"title": "Open InterSystems Document...",
11961200
"icon": "$(go-to-file)"
1201+
},
1202+
{
1203+
"category": "ObjectScript",
1204+
"command": "vscode-objectscript.showAllClassMembers",
1205+
"title": "Show All Class Members",
1206+
"icon": "$(symbol-class)"
11971207
}
11981208
],
11991209
"keybindings": [
@@ -1805,7 +1815,7 @@
18051815
"test": "node ./out/test/runTest.js",
18061816
"lint": "eslint src/**",
18071817
"lint-fix": "eslint --fix src/**",
1808-
"download-api": "dts dev 1.93.0",
1818+
"download-api": "dts dev 1.104.0",
18091819
"postinstall": "npm run download-api"
18101820
},
18111821
"devDependencies": {
@@ -1816,7 +1826,7 @@
18161826
"@types/mocha": "^7.0.2",
18171827
"@types/node": "20.17.6",
18181828
"@types/semver": "7.5.4",
1819-
"@types/vscode": "1.93.0",
1829+
"@types/vscode": "1.104.0",
18201830
"@types/ws": "8.18.0",
18211831
"@types/xmldom": "^0.1.34",
18221832
"@typescript-eslint/eslint-plugin": "^8.15.0",
@@ -1846,7 +1856,7 @@
18461856
"@vscode/debugprotocol": "^1.68.0",
18471857
"@vscode/extension-telemetry": "^1.0.0",
18481858
"@xmldom/xmldom": "^0.9.8",
1849-
"axios": "^1.8.4",
1859+
"axios": "^1.12.0",
18501860
"core-js": "^3.41.0",
18511861
"iconv-lite": "^0.6.3",
18521862
"istextorbinary": "^7.0.0",

src/commands/compile.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import {
2626
handleError,
2727
isClassDeployed,
2828
isClassOrRtn,
29+
isCompilable,
2930
lastUsedLocalUri,
3031
notIsfs,
3132
notNull,
@@ -353,7 +354,7 @@ export async function importAndCompile(
353354
throw error;
354355
})
355356
.then(() => {
356-
if (compileFile) compile([file], flags);
357+
if (compileFile && isCompilable(file.name)) compile([file], flags);
357358
});
358359
}
359360

@@ -389,7 +390,7 @@ export async function compileOnly(askFlags = false, document?: vscode.TextDocume
389390

390391
const defaultFlags = config().compileFlags;
391392
const flags = askFlags ? await compileFlags() : defaultFlags;
392-
if (!file.fileName.startsWith("\\.vscode\\")) {
393+
if (isCompilable(file.name)) {
393394
compile([file], flags);
394395
}
395396
}
@@ -464,7 +465,7 @@ async function importFiles(files: vscode.Uri[], noCompile = false) {
464465
)
465466
.then((curFile) => {
466467
if (curFile) {
467-
if (typeof curFile.content == "string") toCompile.push(curFile); // Only compile text files
468+
if (typeof curFile.content == "string" && isCompilable(curFile.name)) toCompile.push(curFile);
468469
return importFile(curFile).then(() => outputChannel.appendLine("Imported file: " + curFile.fileName));
469470
}
470471
});

src/commands/documaticPreviewPanel.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@ export class DocumaticPreviewPanel {
3838
*/
3939
public static currentPanel: DocumaticPreviewPanel | undefined;
4040

41-
public static create(): void {
41+
public static create(uri: vscode.Uri): void {
4242
// Get the open document and check that it's an ObjectScript class
43-
const openEditor = vscode.window.activeTextEditor;
43+
const uriString = uri.toString();
44+
const openEditor = vscode.window.visibleTextEditors.find((e) => e.document.uri.toString() == uriString);
4445
if (openEditor === undefined) {
4546
// Need an open document to preview
4647
return;

src/commands/export.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,13 @@ Would you like to continue?`,
274274
return;
275275
}
276276
}
277-
return Promise.all(nodes.map((node) => node.getItems4Export())).then((items) => {
278-
return exportList(items.flat(), node.workspaceFolder, nodeNs).then(() => explorerProvider.refresh());
279-
});
277+
return Promise.all(nodes.map((node) => node.getItems4Export()))
278+
.then((items) => {
279+
return exportList(items.flat(), node.workspaceFolder, nodeNs).then(() => explorerProvider.refresh());
280+
})
281+
.catch((error) => {
282+
handleError(error, "Error exporting Explorer items.");
283+
});
280284
}
281285

282286
export async function exportCurrentFile(): Promise<any> {

0 commit comments

Comments
 (0)