Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We added a property in the Servoy global preference page:

When that property is enabled, the validation of javascript through parsing the files is working differently.

It will then not fully parse referenced js files that are references like:

var myVariableFromOtherScope = scopes.otherscope.giveAnObject();

 

Currently if you have this in you js file (form or scope) then that "otherscope.js" is also fully parsed, with that property enabled otherscope.js is only partially parsed by only parsing the function declarations. Because of this @return is very important to have in the JSDoc on all functions that return something. Because the parser will not able able to see it from the function itself because the body is not parsed.

Currently there is also a problem if we parse the otherscope.js file because you are in "currentscope.js" then if otherscope.js also reference again thirthscope.js that scope will not be fully parsed. This is because of performance reasons (parsing one file could result in parsing everything)

And the side effect of that is that if thirthscope.js returns objects again from other files that those objects are not seen by the current file that you are editing (so no code completion or validation). 

With this new property this is also fixed.

If you have constructor functions that assign stuff to the "this" these functions have to have @constructor  in the jsdoc. because those bodies will be parsed. If we wouldn't do that then objects properties wouldn't be seen.

So as long as you document your function correctly by having @return  and @constructor everywhere. The checking of that property could result in a lot less memory usage, and much faster parsing. Besides the fixing of the problem of deeply nested javascript files that resulted in not seen return values that it should see.

We like to have feedback for this property, to see if we can enable this by default in 8.4

 

The debugger is also changed a bit so that getting variable values that displayed in the variables view in the debugger are get differently. All commands that are send between the debugger in the developer and the Client are now executed through multiply threads. This way they won't block each other. So please check in this release candidate how the debugger works, (stepping over, stepping out and monitor the variables view if that is updating correctly)

 

The http plugin has some enhancements, now the async method on the request (get/put) can handle now many at the same time, we also added a close() method on the HttpClient that should be called if you are done with it. Servoy will auto close them when the solution is closed.

 

The rest_ws plugin has now also client side scripting, for interacting with the real Request and Response objects, so you can get or set headers. This api only works inside a rest_ws calls when there is an active request.

 

Small change in behavior: foundset.loadRecords(foundset2) or controller.loadRecords(foundset2) (when the foundset that the form has is a separate foundset) are behaving a bit different now when the "foundsert2" has filters. Those filters are now applied in the foundset where you load into.

 

Issues fixed in this release:

...