New CRMScript editor (again): Monaco

lock
push_pin
done
Besvart
45

Hi all,

We have been testing whether it is possible to replace Codemirror as our CRMScript editor with Monaco (the basis of VSCode). We have currently implemented this as a testable feature in our latest build, hoping that some of you will try it out and tell us what is not working :-)

You can enable Monaco as your CRMScript editor by using the "rms.fcgi?action=debug" panel and tick the Monaco-checkbox. The setting is stored as a cookie in your browser and will only affect you in that particular browser, other users will not be affected. This setting is available in build "main_10.3.7_2024.05.23-01".

Sverre

23. mai 2024 | 08:04 a.m.

Alle Svar (45)

Haven't got this build on SOD yet, but just curious, any particular reason why you are replacing the editor (again)? (better javascript/typescript support for the future? something else?)

23. mai 2024 | 08:17 a.m.
Yes, after testing we have concluded that Monaco is easier to work with for us, and it offers better support for intellisense for both javascript/typescript as well as CRMScript.

Sverre
23. mai 2024 | 11:00 a.m.

I haven't got this build yet either, but this is exciting! I can't wait to try it out. 

23. mai 2024 | 09:44 a.m.

If you guys have some SOD tennant ID's, I can upgrade them.

Sverre

23. mai 2024 | 11:00 a.m.
Cust36938
23. mai 2024 | 11:17 a.m.
Cust11255 please!
23. mai 2024 | 11:17 a.m.
Cust36668
23. mai 2024 | 02:01 p.m.
Cust27129, Thank you!
23. mai 2024 | 02:03 p.m.
Cust32284
24. mai 2024 | 11:28 a.m.

Cust26135 please.

23. mai 2024 | 06:19 p.m.

Hi all,

I have upgraded the abovementioned sites to main_10.3.7_2024.05.24-01 and also changed them from being on Release to being on Main (otherwise they would have gotten upgraded back to Release tonight). Be aware that these sites will now be upgraded more frequently to our latest code. Let us know if you need them back on the Release-branch. This can probably not be done immediately, but next week when we merge from main to release.

Sverre

24. mai 2024 | 10:30 a.m.

Hi Sverre,

I got the new editor now, first impressions are good (related to intellissense, formatting, etc).

Did notice that it is trying to load a ts.worker.js file from the wrong url:

'https://sod.superoffice.com/superoffice/cs/javascript/monaco/ts.worker.js' instead of 'https://sod2.superoffice.com/Cust11255/cs/javascript/monaco/ts.worker.js'

24. mai 2024 | 10:40 a.m.

Thank you Sverre! I tested it out for about five minutes and I like it so far.

Things I like:

  • Intellisense description dialog box is easy to read and well formatted.

 

  • Things like struct properties are immediately visible in Intellisense without having to click Save first. Yay!

 

Things to look at:

  • When hitting enter at the end of a line, it inserts four spaces. I expect it not to insert any spaces or tabs, I can do that myself if needed. 🙂


  • When getting multiple syntax errors after clicking save, they sometimes lie on top of each other, making it cluttered:


  • After first getting one syntax error (likes the ones above), it doesn't help fixing the error and then clicking save. The error tooltips still show up until I click OK.
24. mai 2024 | 11:06 a.m.

To the good people in this thread: 
https://community.superoffice.com/en/technical/forums/api-forums/service-crmscript/from-javascript-to-typescript/ 

//Eivind

7. jun. 2024 | 01:00 p.m.

Is there a shortcut to get the editor in fullscreen mode ? 

27. jun. 2024 | 11:09 a.m.
Hello Ummair,

No, there is no fullscreen-mode as of now. I've added it as feedback, though, and we might look into how it could be done.
But I'm not making any promises! :)

Out of curiosity, would you expect pressing 'F11' in the browser to ented fullscreen, or would a button somewhere be sufficient?
13. aug. 2024 | 11:23 a.m.
In the old editor I'm used to pressing F11, so I think keeping it the "old style" is fine.

I'm also missing a shortcut to indent the code in one line or selecting all the code and pressing shift+tab in the new editor. Is there a shortcut for that ?
23. aug. 2024 | 08:55 a.m.
Hi,
Pressing F1 when editor has focus will open up all available shortcuts. In next version we are also adding shortcuts to reindent lines. Thanks for providing input!
28. aug. 2024 | 11:19 a.m.
Any news on the fullscreen mode @Michael or Eivind ?
26. nov. 2024 | 03:55 p.m.

Cust45357

31. jul. 2024 | 07:10 a.m.
Hello Rayan,

This should already be available on your tenant.
Go to https://sod2.superoffice.com/{{YOUR_TENANT}}/cs/scripts/rms.fcgi?action=debug and look for the checkbox that says "Use monaco as script editor" :)

13. aug. 2024 | 01:02 p.m.

Cust38253

21. aug. 2024 | 11:29 a.m.

This is live in the 10.3.8 release now, so you can test it on SOD/production test tenants that have been upgraded to that version.

23. aug. 2024 | 08:25 a.m.

It looks like this is not a feature anymore and that its been activated as standard in a tenant we have. 
Is there a way to get the old editor back ? 

I dont like the fact that we cannot use ctrl+shift to auto indent the code. 
The indentation also looks wierd if I just use line shift after defining variables which should have same indentation.

28. aug. 2024 | 10:52 a.m.
Hi Ummair,
Thank you for pointing this issue out, we are working on making this experience better in next version (10.3.9). We enabled Monaco as default editor to be able to gather more input on experience that perhaps is not covered in our testing. Appreciate your patience with us.
28. aug. 2024 | 11:17 a.m.

Whats up with the color changing of commented bulk of code in the new editor.

There are several examples
This is one. Here it looks like the last right paranthesis is part of a comment by the color of it. 



When it in reality is not. Taking the code to notepad++

 

It is quite frustrating with these kind of "false" problems, specially in files with alot of code.

29. aug. 2024 | 09:49 a.m.
Hi Ummair,
Could you please post your whole script ?
29. aug. 2024 | 10:40 a.m.
Its a big script with alot of sensitive code.
I will try to recreate it with some dummy code later and post it.
29. aug. 2024 | 10:42 a.m.
%EJSCRIPT_START%

<%
  
    String a; 
    String b;
        
%>


    
%EJSCRIPT_END%
29. aug. 2024 | 01:17 p.m.
Looks like the editor here is not accepting the pasted code.
Trying this one:


function firstFunction() {

}

/* function secondFunction(){


/* var url = "<%print(getProgramBlogic());%>";
var script = "&action=doScript&includeId=testscript";

$.ajax({
url: url+script,
dataType: "",
type: "GET",
contentType: "application/json; charset=utf-8",
beforeSend: function(jqXHR, settings) {
url = settings.url;
//console.log(url);
},
success: function(data) {

console.log(data);
if(data>0){

}else{
//showError(data);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {console.log("error:"+ errorThrown);}
});

}
*/


function thirdFunction() {

}

/* end document ready */



});

29. aug. 2024 | 01:18 p.m.

Hi,
It looks like you have a block comment start in front of function secondFunction, but no end?

29. aug. 2024 | 01:24 p.m.
Yeah, I think I wrote that in one of the comments which didnt get posted here.
There was/is no no end for one of the comments. But all the other editors (including notepad++, the editor used in SuperOffice community, and the old editor in Service) shows this mistake differently.
You can try to paste the code in other editors and see for yourself. The code will also run without any error that an "end comment" is missing, or an unexpected syntax error has occured.
30. aug. 2024 | 09:18 a.m.
Since this is using the mixed-mode feature, where you can jump in and out of CRMScript, what actually is written when out of CRMScript is just treated as text by CS. So it will always work to execute the CRMScript, no matter what is in there.
You could imagine creating a CRMScript which would be called as an API, and the response should be json or XML.
In the above example, it can be that this is executed fine by a browser, because most browsers allows a certain degree of syntactical errors, and do their best to guess the intention of the JavaScript.

My personal meaning, when testing the above script, is that I found the error with one starting comment without an end comment more easily when seeing this in the Monaco editor, compared to for example VS code. In VS code I was mislead at first glance to think that everything was ok.
In Monaco, I pretty fast could spot that there was an error with the commenting.
But this is of course just my personal opinion.
30. aug. 2024 | 10:50 a.m.
I agree that it should be strict @Stian, and in new scripts it should also be OK.
But imagine going through a script with 4000+ lines and then you encounter some bulks of code with a wrong color because of an unfinished comment, like the example above..
30. aug. 2024 | 11:33 a.m.

Hi,

The command pallet says the following shortcuts should work for commenting out multiple lines should work, however non of them actually do.

Also, having text selected and selecting one of the commands does not do anything either.

 

I'm using Firefox.

Jari

 

 

29. aug. 2024 | 01:50 p.m.
We have done some improvements in upcoming release (10.3.9), so please verify again after. But in some scenarios it does not require you to actually select line, just placing cursor should be enough.
30. aug. 2024 | 07:04 a.m.

Just tried in on SOD, release SuperOffice CRM Online 10.3 Build main_10.3.9_2024.08.30-01. There the commands with a shortcut assigned do work, both with and without selection.

30. aug. 2024 | 07:15 a.m.
Thanks for verifying this David.
30. aug. 2024 | 07:23 a.m.

Still a few issues that still exists since switching to the new editors.

  1. Hold Alt and mousekey down and drag over multiple rows and write anything.
    Expected: If you highlighted rows and for example wrote // it would comment out the affected rows.
  2. Might not be because of the new editor (think it came before that), but not being able to copy text from a script unless you edit it is anoying as hell.

Regards
Pär

30. aug. 2024 | 09:30 a.m.
'Might not be because of the new editor (think it came before that), but not being able to copy text from a script unless you edit it is anoying as hell.'

This is fixed in this new new editor (you can also copy again without the editor specifically being in focus!)
30. aug. 2024 | 09:52 a.m.

When adding a comment via // and press enter afterwards, the next line will have an indent which I think should be removed

 

I would expect:

4. sep. 2024 | 01:32 p.m.
We have made alot of improvements in next version 10.3.9, so please retest when this is available.
4. sep. 2024 | 01:57 p.m.
I tested this in the upcoming release, and it now works as you would expect.
5. sep. 2024 | 06:15 a.m.

The intellisense suggestions seem a bit too enthusiastic..

If for example I type in the else keyword, i get these suggestions:

So pressing enter after else will auto complete to 'executeSQLQuery'...

Tested on SuperOffice CRM Online 10.3 Build main_10.3.9_2024.09.10-01

10. sep. 2024 | 08:07 a.m.
Hi David,
We have made some additional improvements when it comes to reserved keywords in coming release (10.3.10). Thank you for pointing this out.
11. sep. 2024 | 11:12 a.m.

Legg til svar