go to post John Murray · Oct 7 This comment no longer applies as of version 0.0.4 of the extension, published 2025-11-23. It's worth noting that the extension can't currently run on Windows without crashing VS Code's extension host (EH) process and thus impacting all other extensions. More information here, which I hope qualifies my entry for the 'Find a bug in InterSystems IRIS External Languages Offerings' bonus. For Windows users there's a workaround, as long as you have SSH access to a Linux host on which you can run Docker containers. Here's what to do: Launch VS Code on your Windows desktop. If you don't already have it, install the 'Remote - SSH' extension from Microsoft. From Command Palette run `Remote-SSH: Connect Current Window to Host...`. Enter your SSH connection string in the form `user@host`. When prompted for your password (top centre), enter it. Wait for the progress notifications (lower right) to complete and for the Remote panel on the status bar (far left) to confirm that you are connected. In Extensions view, find gj :: configExplorer and install it. This action will install it on the Linux server for use of the account you connected there with. It also installs Server Manager if necessary. When operating this way gj :: configExplorer executes in an EH on your Linux server. Connections to the target servers' superserver ports will originate from there, not from your Windows device. Resolving the server names / addresses will behave accordingly.
go to post John Murray · Sep 23 Is your /api/atelier web application enabled? Is your web server configured correctly to forward that endpoint to IRIS? Did you try the steps I suggested at https://community.intersystems.com/post/cant-connect-vscode-iris4health-...?
go to post John Murray · Sep 10 Great article, but your examples in Item 3 are missing the Do command with which to invoke the method.
go to post John Murray · Aug 26 Good memories of MSM-Workstation! Glad to see that you are still working with the InterSystems technologies.
go to post John Murray · Aug 19 I think the looping affects the core tests, not the expr ones. https://github.com/intersystems/tree-sitter-objectscript/issues/8
go to post John Murray · Aug 19 +1 for more info about building and using. So far I have succeeded in getting the tree-sitter playground working for the expr grammar: My attempts to do the same with the core and udl grammars only give a blank screen there, and DevTools shows an error.
go to post John Murray · Aug 18 Thanks for the appreciation. This is a brilliant community, and I am very pleased to be a member.
go to post John Murray · Aug 8 I develop and publish VS Code extensions targeting users of the InterSystems platforms. Occasionally an extension needs some support classes installed on the servers it works with. I propose establishing a naming convention for these classes, as follows: First dot-piece of the package name should be vscode Second dot-piece should be derived from the "publisher" property in the extension's package.json manifest, as follows: If publisher is "intersystems-community" then use dc Otherwise use the publisher string, transformed if necessary to conform to package-naming constraints (e.g. remove punctuation). Uppercase characters in the publisher string may be retained or folded to lowercase at the choice of the publisher, but the transformation should be applied consistently for all classes published by that publisher. For example, if the extension uses publisher ID Acme-Nadir their class names might begin vscode.AcmeNadir. or vscode.acmeNadir. or vscode.acmenadir. Third dot-piece should be derived from the "name" property of the extension, using the same transform guidance as above. Additional dot-pieces of the package name can be added at the choice of the extension author. Classnames should follow the convention proposed by @Robert Barbiaux in this article, i.e. be upper camel case (aka Pascal case).
go to post John Murray · Aug 8 A case(!) for lowercase package names was made by @Evgeny Shvarov in his 2021 post at https://community.intersystems.com/post/naming-convention-objectscript-p...
go to post John Murray · Aug 4 Thanks all. I feel honoured to have been awarded a double first! I couldn't have done it without @Timothy Leavitt 's excellent Test Coverage Tool package. Many thanks Tim.
go to post John Murray · Aug 2 Hmm, seems unfair they didn't take that view last year for my IPM in VS Code entry: https://community.intersystems.com/post/technological-bonuses-results-de...
go to post John Murray · Aug 2 I think IPM Explorer for VSCode has been incorrectly awarded the IPM bonus. From the bonuses article: This entry isn't published as an IPM package but as a VS Code extension on Microsoft's Marketplace.
go to post John Murray · Jul 30 Excellent article @Timothy Leavitt I'd like to offer an example from the coalface today. An issue was affecting my improved Testing Manager extension for VS Code. Coverage information from the Test Coverage Tool package assumes that a method signature only occupies one line, but an option in the ObjectScript extension can instruct the server to generate the UDL representation with multi-argument signatures split across consecutive lines. I was pretty sure the necessary information was available in SQL tables on the server. I just needed to come up with the right query. I consider myself novice grade on SQL, so was glad that Copilot could use the GPT-4.1 model to improve the initial query I'd drafted in the SQLTools extension. I started with this: SELECT Name as Method, $LENGTH(FormalSpec, ',') AS ArgumentCount, CASE WHEN $LENGTH(FormalSpec, ',') > 1 THEN $LENGTH(FormalSpec, ',') ELSE 0 END AS AddsLines FROM %Dictionary.MethodDefinition WHERE parent = '%IPM.Repo.Definition' ORDER BY SequenceNumber Copilot got me very close, and a small tweak by me yielded this: SELECT Name as Method, $LENGTH(FormalSpec, ',') AS ArgumentCount, CASE WHEN $LENGTH(FormalSpec, ',') > 1 THEN $LENGTH(FormalSpec, ',') ELSE 0 END AS AddsLines, SUM( CASE WHEN $LENGTH(FormalSpec, ',') > 1 THEN $LENGTH(FormalSpec, ',') ELSE 0 END ) OVER ( ORDER BY SequenceNumber ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ) AS Offset FROM %Dictionary.MethodDefinition WHERE parent = '%IPM.Repo.Definition' ORDER BY SequenceNumber
go to post John Murray · Jul 29 Last week's release of a major new version of this extension also gave me reason to drop the Preview tag. If you like it and are reading this message before 4th August 2025 you can vote for it in the current Developer Tools contest.
go to post John Murray · Jul 29 I have updated the screenshot, adding some highlight rectangles that draw attention to the key regions.
go to post John Murray · Jul 10 A new version of the InterSystems package that supports both sync and async operations was recently officially published at https://www.npmjs.com/package/@intersystems/intersystems-iris-native
go to post John Murray · Jul 4 I think the command to export from a project only exports the project's server-side classes / routines to individual client-side files. Since your title mentions deployment I'm guessing you want all the project members exported into a single XML file. An export of multiple server-side items to a single XML can already be done using the `ObjectScript: Export Documents to XML File...` command from Palette. But currently this can't auto-select only the members of a project.