Brett Saviano · May 17, 2023 go to post

Hi @Josef Zvonicek, I'm glad that VS Code is making you more productive, and thanks for the feedback. I have some comments about your fine-tuning list:

  1. The "override class members" functionality is implemented by the Language Server extension. If you file an issue on its GitHub repository I would be happy to consider this enhancement request.
  2. The VS Code integrated terminal is part of the core product, and not our extensions, so I'm not sure we can do anything about this. Can you provide more details about how you started the terminal and the expected vs actual behavior?
  3. Newer versions of the vscode-objectscript extension should avoid opening that extra copy of the file when debugging. If you're using  recent version like 2.8.0 or 2.8.1 and this isn't working, please file a GitHub issue in that extension's repository and I will take a look at it.
  4. The debug console can only evaluate expressions. It's not a full terminal and cannot execute commands, so this isn't possible unfortunately.
  5. I'm not sure what a GIT disk is. Are you editing files on your local file system?
  6. Can you describe what doesn't work well, and what we could do to make things better?
  7. There is a command called "Open Error Location..." that you can execute from the command palette. It prompts you to enter a "label+offset^routine" string and then opens that location. It only works for INT routines though.
     
Brett Saviano · May 16, 2023 go to post

@Anna Golitsyna 
I think the debugging experience in VS Code is actually better than Studio since you can view the properties of OREF's in the variables view in VS Code but not Studio. You can have that developer file an issue report on GitHub, or contact the WRC if you have a support contract.

As for features in Studio but not VS Code, the biggest one is the Inspector. It is very unlikely that it will ever be implemented in VS Code. VS Code also does not support integration with the legacy Zen BPL and DTL editors. VS Code will support integration with the new Angular versions of those editors when they are implemented. VS Code also doesn't support syntax coloring for Cache Basic or MultiValue Basic, but you can still edit those files.

Brett Saviano · May 16, 2023 go to post

@Anna Golitsyna 
The big plus is that VS Code is in active development, while Studio hasn't seen enhancements in years and now is deprecated. Other than that, here are some benefits of VS Code:

  • Supports Mac, Linux and Alpine Linux in addition to Windows.
  • Much faster release cycles so you get new features and fixes faster.
  • Always forward compatible without needing to install a new version.
  • Much better intellisense support. (a large list of features can be found here)
  • Modern UI with fully customizable themes.
  • Can be connected to multiple server-namespaces in the same window.
  • Debugging supports expanding OREF's to see their properties.
Brett Saviano · May 16, 2023 go to post

@Alex Woodhead

Just to clarify for everyone, Studio source control classes that import/export XML files will continue to work and be supported. There just won't be a menu option in VS Code to export files as XML.

Brett Saviano · May 15, 2023 go to post

@Larry Overkamp 
VS Code does not support exporting or importing source code as XML files. There are existing tools in the terminal and SMP for that. The server-side editing paradigm that John mentioned above is conceptually similar to Studio in that the files you edit are "virtual" and do not need to be exported to the file system to be edited. It supports viewing all files in a namespace like in Studio, and it also supports importing local .cls, .mac, .int and .inc files into that namespace.

Searching for text across those virtual files is supported and the UI is much better than Studio since you can click on the match and jump right to that location in the file. Enabling that feature requires some extra steps due to a VS Code core limitation, but this is something that we anticipate will be resolved in the future.

Brett Saviano · May 15, 2023 go to post

@Richard Filoramo 
The server-side editing paradigm in VS Code is conceptually similar to Studio in that the files you edit are "virtual" and do not need to be exported to the file system. This mode supports Studio source control classes, so you can continue using them if you want. We have a documentation page that describes some useful features for migrating from Studio that describes where the Studio source control integration can be found in the VS Code UI.

Brett Saviano · May 12, 2023 go to post

@Mikko Taittonen 
The vscode-objectscript extension does provide New File commands for Interoperability classes. You can read the documentation here. The SOAP wizard can be accessed from the Server Actions menu. BPL and DTL classes can be edited textually. Support for the graphical editors will be added when they are rewritten using Angular. For a preview of how that would work, you can try out the new Angular Rule Editor in VS Code.

Brett Saviano · May 11, 2023 go to post

@Alexey Maslov 
That sounds like a bug to me. Can you file a GitHub issue with steps to reproduce? It would also help to know the versions of the extensions you have installed, the version of IRIS you're connected to, and the text of the file that you see the bug in.

Brett Saviano · May 10, 2023 go to post

@Menno Voerman 
Unfortunately I don't think this is possible. That command is for opening files, and technically the name of the file is "HS/FHIRServer/Interop.HTTPOperation.cls", not "HS.FHIRServer.Interop.HTTPOperation.cls".

Brett Saviano · May 10, 2023 go to post

@David Hockenbroch 
We just improved the UI for creating a new server-side editing workspace folder. If you have no workspace open, you can follow the steps here to create a new one. If you do, you can add a new folder to you workspace by right-clicking in the file explorer and selecting "Add Server Namespace to Workspace..". That command will follow steps 4 and on. To see CSP files, select "Web Application Files" in the menu from step 8. To see basic files, select "code files in <NS>", then select "Filter", then make sure your custom filter contains the "*.bas" pattern. It can include other file types as well.

Brett Saviano · Mar 31, 2023 go to post

@Martin Fukátko 
I tried reproducing your issue but couldn't. I see your using client-side editing (editing a local file). Have you saved that class on the server? The Language Server extension checks for class existence against the list of classes on the server so if yours hasn't been saved, it technically doesn't exist.

Brett Saviano · Mar 9, 2023 go to post

@Norman W. Freeman 
This query will return the names of all non-system and non-generated classes in the current namespace:

SELECT Name FROM %Library.RoutineMgr_StudioOpenDialog('*.cls',1,1,0,1,0,0)

The documentation for this query and its parameters can be found here.

Brett Saviano · Feb 28, 2023 go to post

I expect that this will work fine. Our 'Open Error Location..." command just goes to the line+offset in the INT routine, it doesn't try to resolve the location in the CLS/MAC/CSP that generated the INT.

Brett Saviano · Feb 14, 2023 go to post

Here's a full list of all the MimeTypes that will be correctly colored in VS Code (requires InterSystems Langauge Server version 2.1.1):

  • application/json
  • text/html
  • text/javascript
  • text/css
  • application/sql
  • text/x-java-source
  • application/python
  • text/x-python
  • text/xml
  • application/xml

An XData bock with no MimeType will still be colored as XML.

Brett Saviano · Oct 5, 2022 go to post

Maybe try using 'ck' instead of 'cuk'. The 'u' flag is the one that tells the compiler to not recompile if it doesn't detect a code change.

Brett Saviano · Oct 5, 2022 go to post

@Zach McKinney 
Thanks for log output. Have you compiled that class? The "Breakpoint Cannot Be Mapped" error means that the debugger couldn't map that location in that class to the generated INT routine.

Brett Saviano · Sep 23, 2022 go to post

That's the problem. The folder setting is relative to your workspace root. Since you have repos open, you want it to be "PATS\Server\Namespaces\AXIS".

Brett Saviano · Sep 23, 2022 go to post

Did you export those files using the VS Code extension? The extension uses its export settings to determine where it will look for local copies. For example, if you have the AXIS folder open in VS Code you would need the following export settings to reflect the existing folder structure that you have: objectscript.export.folder setting equal to "", objectscript.export.atelier setting set to true, and objectscript.export.addCategory setting set to false.

Brett Saviano · Sep 23, 2022 go to post

@Michael Hampton 
I need more info about your exact setup to answer your question. What were your export settings previously? What folder within your workspace are your InterSystems files in? Are you sure that the file that contains the definition has a local copy?

Brett Saviano · Aug 23, 2022 go to post

@Scott Roth 
 

The custom metrics code needs to be added to the instances of IRIS that SAM is monitoring, not the SAM Manager IRIS instance itself. The full documentation for adding custom metrics can be found here.

Brett Saviano · Aug 19, 2022 go to post

I believe this is the same problem described here. You need to add the --check-caps false command to the iris container in your docker-compose.yml file, like this:

...
iris:
    command: --check-caps false
    init: true
...

The SAM 1.1 distribution should have this done for you but that change must not have made it in. I think you can still enter the SAM 2.0 EAP if you'd like to start with the upcoming version.

Brett Saviano · Aug 19, 2022 go to post

The logs are stored in the containers themselves. Using docker you can read them using the docker logs command. According to the podman docs, this is what you would need to run:

podman logs sam_iris_1