Hi folks!

Want to share a lifehack with you on ObjectScript highlighiting withing VSCode for script files.

Script files are just files with lines of ObjectScript that we feed anywhere, e.g. into IRIS during Docker baking procedure.

Typical usecase - here is the Scriptfile

here is the Dockerfile where we feed it.

And here is how it looks like usually in VSCode:

Screenshot 2021-08-05 at 09 51 06

Coudl be more beautiful, right?

1 0
0 511

I'm pleased to announce a major release of the InterSystems Server Manager extension. It has gained a UI!

Read more at Open Exchange.

Right now version 2.0 is like an aircraft at the start of the runway (remember those days before COVID-19?), waiting for the control tower to give final clearance. Will you be an early adopter, downloading the VSIX from GitHub, installing it into your VS Code, and posting back here to confirm that we haven't left anything critical behind at the gate? Then I'll push the throttles forward, publish to Marketplace, and we'll all be on our way.

Server Manager 2.0 is my entry for the current contest. If you like it maybe you'll vote for me it.

10 6
3 578

Newly created routines aren't showing up in the list for a namespace, even using the refresh button.

I checked the ^ROUTINE global and the newly created routine is there. Also, I can zload it and zprint it in the namespace.

Is there another global that is not being populated that vscode uses to build the list?

0 14
0 313

Hi Developers!

A question to those who use VSCode to code InterSystems ObjectScript.

Suppose you have the ObjectScript code on IRIS server and you want to export it into the desired folder.

And you have VSCode connected to the server.

What is the way to tell VSCode that I want to export classes into some particular folder in /package/class.cls way?

E.g. into:

/project_folder/src/cls/Package/class.cls

and project_folder is opened in VSCode as the folder of the project.

1 8
0 1K

gj :: locate was the entry from George James Software for the Developer Tools competition back in April 2021. When an ObjectScript error is reported, gj :: locate takes the .int line location and navigates you directly to the line in the source file where the error originated. Over the past few months we've found it a very useful tool when it comes to debugging, especially when used alongside the Serenji debugger in Visual Studio Code.

Our first update, version 1.1.0, now includes support for multi-root workspaces. This enables gj :: locate to be used with every workspace folder. If your VS Code workspace has more than one root level folder, connecting to different namespaces or perhaps different servers, then gj :: locate will determine which workspace folder is current and locate the source code in that folder. If your workspace doesn't have any files open then gj :: locate will prompt you to select a folder from a pick-list.

This will particularly benefit VS Code power users who have workspaces with simultaneous connections to multiple namespaces, on multiple different IRIS and Caché servers.

If you would like to try it out then you can download it from the VS Code marketplace. Or if you’re already a user, then gj :: locate will automatically update. Let us know how you're getting on with it!

2 0
1 189
Announcement
· Jun 10, 2021
Serenji v3.1.4 update

We’ve published an update to the Serenji debug extension for Visual Studio Code, making it ready for the Workplace Trust feature in VS Code 1.57.

This allows the Serenji ObjectScript editor to work without restrictions across all workspaces and, by bringing it in line with the VS Code update, only allows the debugging feature to be used in trusted workspaces.

3 0
1 131

I have run into two annoyances when using VS Code for server-side editing of Objectscript and was wondering if anyone knows of any solutions or workarounds.

1. In .mac routine files, class names that aren't fully qualified (e.g. ##class(example) instead of ##class(Package.example)) fail to be understood, so the class will have a red squiggly underneath it and a problem that reads

"Class 'example' does not exist. InterSystems Language Server".

0 2
0 246

I'm trying to set up VS Code for ObjectScript using the instructions found here. I've got both Cache 2018.1.2.309.0 and IRIS 2020.1.0.215.0. When I try to connect to either one of them the connection fails, and I get a notification in the bottom right corner that says "Unexpected token < in JSON at position 0". I've checked the JSON settings file that VS Code uses, and they're fine and formatted properly. All of the settings I've entered are correct.

0 20
0 5.7K

Announcing gj :: locate. A simple extension for VS Code that will help you get to the source of your errors.

In VS Code, using either the Serenji extension or the basic InterSystems objectscript extension, this small add-on will open the appropriate class or routine and position you at the exact line where an error occurred.

No more tedious counting of lines to find <UNDEFINED>zCredit+206^Ledger.Invoice.1. Instead, with gj :: locate you can get there with just a couple of clicks.

This 20 second video tells it all:

2 2
2 268
Article
· Apr 20, 2021 3m read
Why gj :: locate?

You may think it isn’t too difficult to get from label+offset^routine to the actual source line responsible for the error. For an expert it isn't that hard... most of the time. But there are enough oddities and special rules that even an expert can get it wrong, whilst spending a lot of time trying to get there.

gj :: locate is the latest tool from George James Software – it debugs any error, class or routine by converting the location of an error in compiled .int code to the corresponding location in your source, and then taking you right there.

Image this scenario…

4 0
1 247

I checked out a Git-Branch and want to Import all Objectscript-Objects to my localhost.

While using Import without Compilation I receive a lot of errors.

request to http://127.0.0.1:57772/api/atelier/v3/TSTCBW/doc/MusLT01LCOD.int?ignoreC... failed, reason: connect ECONNREFUSED 127.0.0.1:57772

While using Import and Compile I receive much more of this errors.

Is there a setting, that I have to key in?

0 5
0 408

In Studio you could open a class directly via it's name, without having to traverse the package tree with multiple clicks until arriving at the desired class.

You would Ctrl + O or (File -> Open) and be able to simply type in the class name, for example:

You press Enter, and viola - the class is opened.

How do you achieve this in VSCode?

5 1
0 660
Question
· Mar 30, 2021
IRIS and VsCode Questions

Hi Community,

I'm developing an IRIS environment for a project and I would like to take some questions to pass on to the developers that I haven't found yet here in the community:

1. Is it possible to debug the process in VSCode in real time?

2. How can we use the terminal in VsCode for some configuration or just import applications (Example: Web Terminal)?

0 12
1 770

Moving over from Studio To VSCode like many other will do now the ObjectScript plugin reached version 1.0, I noticed I was missing some items in the objectscript explorer. For example when creating a Rest API using the spec first approach, 3 classes are generated, an application.impl, application.disp and application.spec class, but the disp class was missing in the Object Explorer.

As the application.disp is a generated class, for showing these classes you need to turn this on by hitting the switch on the object explorer:

8 1
1 443
Article
· Mar 3, 2021 4m read
Access to IRIS from Rust

What do you think If I will say you, that very soon you will be able to connect to IRIS from the application written in Rust.

What is Rust

Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. Rust achieves memory safety without garbage collection, and reference counting is optional. (c) Wikipedia

6 5
2 628
Question
· Feb 19, 2021
VS Code export MAC files

Currently in Visual Studio Code when we connect to a Cache server and export the CLS and MAC files, they get placed in the following:

\Comp;anyName\src\Packages

Where the Packages folder corresponds to the different class packages we have. The MAC files are placed in the src folder and not contained in it's own folder.

Is there a way to configure the export for the MAC files so that it's contained in it's own folder like this:

\CompanyName\src\mac

Thanks in advance for your help.

-Roberto

0 2
0 343

Hi Developers,

Please welcome the new video on InterSystems Developers YouTube:

Building REST API with InterSystems IRIS Docker Container in 5 Minutes

https://www.youtube.com/embed/VVpIE1jfi1M
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

5 0
0 330

Hi -

I know this is very "newby" of me, but here goes..

I have moved some classes onto my server, but these have never been in VSCode as edited files, and I'm just not finding the magic command or button or drop-down that says "pull this file from the server and make me a local copy to edit. I can see the class files on the server using the ObjectScript plugin - but I just can't find out where to make a local copy for editing

Thanks

0 2
0 232

Hi,

When wanting to use VS-Code for server-side editing.. - In VS-code I can right click on a server item (eg a class) to see a set of menu options including 'Server Source Control... ' and 'Server Command Menu...' at the bottom.

I noticed that these options are somewhat connected to my server-side source control hooks class that inherits from %Studio.SourceControl.Base, however, I am seeing different behavior between my custom subclass of this, and, the provided %Atelier.SourceControl subclass.

1 1
0 516

On a default VS Code installation, when you create a new file its language mode is 'Plain Text'

You have to click there to set another mode.

Luckily, there's a setting you can tweak to change this. It is called files.defaultLanguage

Set it to the ID of the language you want. Those IDs display in parentheses after each entry on the language mode selector.

3 1
1 2.4K