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.
go to post John Murray · Jul 1 I don't think there are built-in features that would meet your need. I strongly recommend adopting a source control solution such a Deltanji from George James Software (my employer). The material at https://georgejames.com/Deltanji focuses on IRIS but Cache is also a fully supported platform.
go to post John Murray · Jun 30 Did you experiment with setting the default qualifiers for the namespace, or for the instance as a whole?
go to post John Murray · May 7 One way would be to add a check for the existence of a process-private global (PPG) node. Something like this: lock +^TEMP("FOO"):0 //don't wait quit:'$test quit:$get(^||CRITSECT("FOO")) set ^||CRITSECT("FOO")=1 //critical section //... kill ^||CRITSECT("FOO") lock -^TEMP("FOO")
go to post John Murray · May 1 FYI the most recent beta VSIXes of Server Manager and the ObjectScript extensions now do their best to end web sessions when they're exiting or restarting. The relevant versions are v3.10.1-beta.2 and v3.0.2-beta.9 respectively. A similar change in the Language Server extension is being prepared.
go to post John Murray · Apr 23 Current doc link is https://docs.intersystems.com/iris20251/csp/docbook/DocBook.UI.Page.cls?...
go to post John Murray · Apr 21 database2 When you add the entries to the table of global mappings they are automatically listed in priority order. The mapping algorithm begins at the top of the table and searches downward, stopping as soon as it finds a row that applies.
go to post John Murray · Apr 7 IIRC, you'd use `Go to Definition` to get to the method code. According to the Language Server README `Go to Declaration` is relevant for variables that are declared as method arguments, or listed in the PublicList of the method, or are declared with #Dim
go to post John Murray · Mar 17 Also https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls...