Unfortunately, there is no simple way of any debug for any web requests. And it does not really matter in docker or not.

At the moment we have only TextMate-based grammar in public, which is used in VSCode and on GitHub. I see no way of conversions from TextMate to Rouge. So, the only way would be to implement it from scratch. Not so easy, but still possible. 

I can do it, I have some experience in such tasks, but don't have so much spare time at the moment. Would be interested in investing in the project?

You already extend %XML.Adaptor, and it means that you can call XML Export directly.

Set status = objectTest.XMLExportToString(.xml)
Write xml

will produce

<Test><Person><name>John</name><age>22</age></Person><Address><location>New York NY 10036</location></Address></Test>

Yes, when you created a new class, it is just a file on your local disk. When you saved it, VSCode caught this action, and sent it to the server, and compiled it. But deleting this file, not a reason to do the same on the server.

You can delete class with Explorer view, there you may find any classes, that are stored on the server. By context menu you can Delete the item on the server, or Export it to get the local version. Icons close to class names, the same as in File Explorer view, may indicate the connection to your local file.

It’s a class not routine, and you call to method not label, so instead of double dollar, you have to use double dots 


You got the error <STORE>, which means that your process is reached its memory limit. You may try to increase that limit in SMP, to a value more than your file size two times. Or try to change it with $ZStorage just for the current process. For sure, if you have enough memory for it.

I think this may help

ClassMethod CleanNull(json As %DynamicObject) As %DynamicObject
  Set iter = json.%GetIterator()
  Set toRemove = ""
  While iter.%GetNext(.key, .value) {
    Set type = json.%GetTypeOf(key)
    If (type="null") {
      Set toRemove = toRemove _ $Listbuild(key)
    ElseIf (type="object")||(type="array") {
      Set $Property(json, key) = ..CleanNull(value)
  Set ptr = 0, corr = 0
  While $Listnext(toRemove, ptr, key) {
    Do json.%Remove(key - corr)
    set corr = corr + 1
  Return json

And Testing metho

ClassMethod TestJSON()
  set json = {
    "recipients": [ 
      { "name":"Utsavi", "email":"utsavi@gmail.com"},
      { "name":"Utsavi 1", "email":"utsavi1@gmail.com"},
      null, null
    "content":[null, {"title":"Test.pdf", "data":"ygwehfbnwfbhew"} ]
  Set result = ..CleanNull(json)
  Do result.%ToJSON()

Will return this

{"recipients":[{"name":"Utsavi","email":"utsavi@gmail.com"},{"name":"Utsavi 1","email":"utsavi1@gmail.com"}],"content":[{"title":"Test.pdf","data":"ygwehfbnwfbhew"}]}