COS extension for Microsoft Visual Studio Code

Hi,

I know you're doing a big effort to build a new IDE in Eclipse ecosystem but Visual Studio Code is a new an even better and faster tool for coding... did you have any plans to release any COS extension for it in the near future? There you can already find extensions for all current more common progrmaming languages and it would be great to have COS as one of them.

Thanks

  • + 2
  • 0
  • 1018
  • 4
  • 1

Answers

Hi, Sergio!

There are some efforts in this field in the community. Have you seen this VSCode extension?

It supports COS highlighting for UDL sources and pretty much that's it.

But anyway it can be used for COS coding if you are OK with importing code to Caché manually and debugging Caché ObjectScript in the terminal.

For code importing/exporting I would recommend to try this tiny library: cache-udl.

 

Thanks Evgeny. Tested but it's very poor yet. Intellisense support and debug mechanism together with capabilities for easy export/import  from Caché instances are a must.

Many thanks anyway. It's good to know that someone else saw the potential of VS Code and tried to implement support for it. Hopefully at some point it'll be built.

Hi, Sergio!

Guys recently added the class compilation to the extension.

Looking forward to see Intellisense and debug)

 

Implementing IntelliSense seems to require a major overhaul of the current extension as it requires the usage of a language server and a language client that sends and retrieves a lot of essential metadata for code diagnostics. Some of that I don't know if InterSystems publicly discloses.

A brief protocol explanation: https://code.visualstudio.com/blogs/2016/06/27/common-language-protocol
The full protocol: https://github.com/Microsoft/language-server-protocol/blob/master/protoc...

The implementation using NodeJS: https://github.com/Microsoft/vscode-languageserver-node

On the last repository you will notice that it actually contains the JSONRPC 2.0 message definition, the protocol, and finally the base server and client implementations.