John Murray · Apr 21, 2025 go to post

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. 

John Murray · Apr 7, 2025 go to post

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

John Murray · Feb 11, 2025 go to post

Your screenshot shows the ObjectScript Explorer view, which was originally created for the client-side development paradigm in which you export to a folder on your workstation the routines/classes/etc you want to change, then manage them locally in Git. You then import your changes to the server that your `objectscript.conn` setting points to (the same place you may have exported them from).

In this case you can expand the Routines node of the tree shown in your screenshot, then with focus on that tree press Ctrl+Alt+F to invoke VS Code's tree search/filter widget. Here's a screenshot of me using this to narrow down the large number of INT routines in a VistA namespace:

The other development paradigm (server-side) may suit you better if you are migrating from InterSystems Studio.

In that paradigm, use the Servers view (at the bottom of your screenshot) to expand the Namespaces node of your server. Then use the pencil or the eye button to add to your VS Code workspace a folders that gives you direct access to the namespace (pencil if editing, eye if only viewing as read-only).

Also follow the instructions in the README of the InterSystems ObjectScript extension to enable proposed APIs.

Then type Ctrl+P and start entering the name of the routine you want:

You can also use the Ctrl+Alt+F tree widget on the VS Code Explorer view of your workspace.

John Murray · Nov 8, 2024 go to post

When you HALT from a Lite terminal it closes. The PS terminal you are seeing will have been already open when you originally launched the Lite one.

I think there's a VS Code setting that would enable you to make Lite terminal the default type that the + button on Terminal toolbar creates. 

John Murray · Aug 2, 2024 go to post

Not with Studio, but if you use VS Code, enable proposed APIs, and create a multi-root workspace with one folder for each namespace then I think you can search across them all.

John Murray · Aug 2, 2024 go to post

I expect the IRIS Portal URLs for these two instances look like this:

In that case, use the bold section as the "pathPrefix" property within the "webServer" object in the server's entry in the "intersystems.servers" settings object.

When setting up a connection definition step-by-step this part is referred to as Path prefix of instance.

See https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cl…

John Murray · Jul 21, 2024 go to post

You are trying to create your test entities in InterSystems library packages that are mapped to/from a readonly database. 

John Murray · Jul 19, 2024 go to post

I think it's possible to do this using our Yuzinji tool. Here's my idea:

  1. Go to https://structure101.com/downloads/, fill in your details, and download Structure101g Studio (S101g) for your desktop platform (one of the 3 icons circled red below):
  2. Read the instructions in https://structure101.com/help/generic/flavors/yuzinji/index.pdf to install Yuzinji into S101g, then to add Yuzinji's server-side component to your InterSystems server.
  3. Analyze all your classes and load the results into Structure101g Studio.

But how to identify which deprecated methods or classes are being referenced?

S101g has facility for tagging items on its diagrams. Its "Tag" menu can also export and import a list of tags.

  1. Tag an arbitrary class and an arbitrary method.
  2. Export your tags.
  3. Examine the file.
  4. Write a SQL query to list deprecated classes:

    select ID from %Dictionary.ClassDefinition where deprecated=1 order by ID
     

  5. Format the output to match the structure of the exported tags file, and write this to a file. I'm leaving this as an exercise for the reader.
  6. Import the file into S101g
  7. Repeat previous steps to create a tags file for deprecated methods.
  8. Explore your diagrams to pinpoint the tagged (and therefore deprecated) items.
John Murray · May 21, 2024 go to post

Your code is writing its message to the principal device of the process spawned to handle your Studio session. That is the TCP/IP device which Studio is reading from, so it gets confused by the unexpected message. 

John Murray · May 8, 2024 go to post

These Code Actions are contributed by the InterSystems Language Server extension. To request improvements please open issues at https://github.com/intersystems/language-server/issues

The presence of the VS Code lightbulb is controllable with the editor.lightbulb.enabled setting, which can be set per-language if you wish.

For example, in Settings Editor use this filter to alter the setting at user-level or workspace-level only for ObjectScript classes.

@lang:objectscript-class editor.lightbulb.enabled

John Murray · May 8, 2024 go to post

The Deltanji extension is fully compatible with the InterSystems ObjectScript extension. It is only the Serenji one whose debugging component clashes. 

John Murray · Apr 24, 2024 go to post

when I want to do something that I know that a predefined function already does, how can I get inspiration from its code

When the product isn't Open Source, you probably can't.

John Murray · Apr 12, 2024 go to post

So the section titled For users with IRIS Versions Prior to 2023.2 working on their local machine should suit you.

John Murray · Feb 9, 2024 go to post

It looks like you used VS Code to directly open the folder (C:\InterSystems\IRIS\CSP\goerke\) which your (local desktop instance) IRIS created for the /csp/goerke webapp it configured when you added a GOERKE namespace using IRIS Portal.

I think this is going to get confusing for you, particularly if you try to use documentation or training material.

Here's what I recommend you do:

1. Close your the folder in VS Code.

2. Copy your C:\InterSystems\IRIS\CSP\goerke into a folder where you will edit your source files, and perhaps in future source-control them with Git. For example, copy it to c:\MyProjects

3. Open the newly-created folder in VS Code (e.g. c:\MyProjects\goerke)

4. Reconfigure your /csp/goerke webapp in IRIS Portal so it points again to C:\InterSystems\IRIS\CSP\goerke

5. Delete all contents of C:\InterSystems\IRIS\CSP\goerke (files and folders), since you already have a copy of these in c:\MyProjects\goerke

Now when you edit a CSP file in VS Code and save it under c:\MyProjects\goerke\src a copy of it will appear in C:\InterSystems\IRIS\CSP\goerke and the /csp/goerke webapp will use this.

When you edit a CLS file in VS Code, saving this writes the class into the GOERKE namespace but doesn't create a file under C:\InterSystems\IRIS\CSP\goerke because IRIS classes live in IRIS databases, not in host OS files.

John Murray · Jan 18, 2024 go to post

I'm guessing that Brett is testing on a non-Windows platform. By replicating Mathew's setup on Windows I can reproduce the issue.

Mathew, please try using backslash in the "folder" property of your "objectscript.export" settings object:

      "folder": "src\\database",
John Murray · Oct 20, 2023 go to post

Use this section:

There's also a useful "Help" link in the upper right of that page (not shown in my screenshot above).

John Murray · Oct 11, 2023 go to post

Starting with v2.10.3 of the InterSystems ObjectScript extension, if you launch the Server Actions menu (e.g. by clicking on the extension's status bar panel) you should get an option to "Open Studio Add-in...", and from there a list that includes the SOAP Wizard.

John Murray · Oct 9, 2023 go to post

They are independent passwords. Changing the password for CSPSystem user in IRIS Portal doesn't affect the password you authenticate with when you access the Web Gateway Management page even though the username is the same. 

John Murray · Sep 12, 2023 go to post

I guess you are looking for a way to launch the XML Schema Wizard add-in that Studio offers.

Try adapting the advice at https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cl… for adding a custom entry to the Server Actions menu. In this case the entry in the "links" object within "objectscript.conn" should be:

"Open XML Schema Wizard": "${serverUrl}/isc/studio/templates/%25ZEN.Template.AddInWizard.XMLSchemaWizard.cls?$NAMESPACE=${ns}"