Child pages
  • New in 7.0

Versions Compared

Key

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

...

  • Make it possible to drag Forms from the Solution Explorer directly onto existing Tabpanels/TablessPanels/SplitPanels in the Form Editor 
  • Size feedback in the status bar for the Form itself
  • Fix the show/hide/reorder behavior of the Toolbars of the Form Editor

...

  1. Servoy now offers automated JavaScript refactoring support
  2. At design-time all code is being validated and where needed builder markers are generated (which can be ignored or result in Errors or Warnings based on configuration, see #Build process )
  3. Code-completion has improved drastically
  4. Call Hierarchy support on methods
  5. Search for References support
  6. JavaScript Search support

In order for all this to work, the builder process needs to be able to infer typing information from the JavaScript source. With JavaScript being a weak-typed and dynamic language, this information can't always be inferred from the source-code itself. The typing information that cannot be inferred from the source-code itself can be supplied using JSDoc. In order to supply all the relevant information the JSDoc support within Servoy Developer has been extended as well.

...

Workarounds:

JSDoc support

  • Support for the @deprecated tag: When a variable or function is marked as deprecated any reference to the object will generate a builder marker
  • Support for the @private tag: Hides the object for access from outside the current scope. Accessing the hidden object from outside the scope in which it is defined will generate a builder marker 
  • Support for typed Arrays: 
    • Wiki Markup
      @type String\[\] 
    • @type Array\<String\>
  • Support for typing JSFoundSets and JSRecord to be of a specific datasource: 
    • @type JSFoundset\<datasource\> 
    • @type JSRecord\<datasource\>
      (a datasource string is build up like this: "db:/{serverName}/{tableName}", so for example "db:/udm/contacts")
  • Support for rest paramers: if parameters: Allows to indicate through JSDoc that a function can handle an take unlimited number trailing arguments of parameters of the same type, instead of having to hard-code a fixed number of parameters, the last parameter can be specified as a rest parameter, indicating     

Misc.

  • Better support for advanced JavaScript code specified type
  • Support for @AllowToRunInFind on functions to indicate that the the function should be executed on event handlers while in FindMode:
    Eliminates the //controller.search() workaround. Note that that running JavaScript while in FindMode has it's limitations and not all behavior is 100% defined. More details will follow.   

Misc.

  • Better support for advanced JavaScript code structures
  • Better support for inline Java code
  • Automatic JSDoc @type setting on global and Form variables 
  • a3: Fixed expand/collapse behavior when saving the Script Editor after adding new variables or functions
  • a3: Added support for putting comments in script files (.js files) outside functions and outside JSDoc tags linked to variables and functions. Note that the comments are lost in the following scenario's:
    • When using Servoy Repository for team development: The Servoy Repository stores individual variables and functions, so anything else in the .js file is lost. Solution: use SVN instead which is file-based
    • When exporting the Solution to a .servoy file: just like the Servoy Repository, the .servoy export format only contains the individual variables and functions. When the .servoy file is used to move a Solution from development into test/Q&A/production, there should be no issue loosing the comments. However, if the .servoy export is going to be used to transport the source into another workspace/development environment, the loss of the extra information could be unwanted. In this case the solution would be:
      1. Share sourcecode between different developers by allowing (anonymous) checkout from the source repository used (for example SVN). 
      2. Use the native Eclipse Archive file export/import functionality to export and later import an entire Eclipse project (a.k.a. Servoy Solution) 
  • Fixed indentation of code when moving code using the "Move Sample" and "Move Code" buttons in the Solution Explorer view
  • Fixed indentation of code when pasting code into the Script editor

...

  • Investigate if the "Paste to JavaScript console" option in the Context menu of the Script Editor can be removed or made to work
  • Investigate if the "Run as ..." and "Debug as ..." options in the Context menu of the Script Editor can be removed or made to work
  • Bring back support for the old way to type a foundset or records to belong to a certain database and table
  • Investigate if code-completion can be offered inside JSDoc tags
  • Full support in JSDoc for typing as a specific type of Form: "@type Form<myformName>". Current support does not include form variables and form methods  
CSS Editor

A new CSS StyleSheet editor has been incorporated into Servoy Developer, with the following features:

...

  • Made all possible builder markers for JavaScript file configurable:
    See Window > Preferences > JavaScript > Error/Warnings: Each possible builder marker on JavaScript files is listed and can be set to be ignored or to generate either an Error or a Warning marker 
  • Added QuickFix to create the unresolved method on builder markers for unresolved methods attached to events and commands 
  • Added "Element in form "...." is outside the bounds of form." builder marker for elements placed below the last Form part. Note: elements placed below the last form part on a form are not instantiated at runtime, thus are not in the elements array or visible on the Form
  • Added builder marker to warn about dataprovider of type text with a small length that are attached to HTMLArea's or RTFArea's, as these type of fields generate more markup in the dataprovider than the user actually sees
  • Added builder marker to warn about fields with a format setting that isn't appropriate for the type of the data provider: 'Element in form "..." has incompatible format with its data type (...) : "..."'
  •  Description Resource Path Location Type
    Element in form "sybaseCalc" has incompatible format with its data type (Text) : "####.00". sybaseCalc.frm /servoy_office/forms servoy_office/forms/sybaseCalc.frm Form Problem
Miscellaneous 
  • Added a Servoy Active Added builder markers for use of deprecated scripting API
  • Added builder markers for use of deprecated JavaScript variables and functions (see #Script Editor > JSDoc support)
  • Added builder markers for access to not declared objects or properties of objects
  • Added builder markers for calling functions (global methods, form methods and scripting API) with the wrong number and/or type of parameters
  • Added builder markers for variables and parameters that hide data providers, variables or parameters at a higher scope
Miscellaneous 
  • Added a Servoy Active Solution Working set: the workset functionality of Eclipse allows to limit the scope of operations like searching or display of builder markers. The Servoy Active Solution workset is a pre-defined workset that contains the Active Solution and all it's modules. The Servoy Active Solution working set can be used in:
    • Problems view: The contents of the Problems view can be filtered to only show the builder markers for the active solution. Click "View menu" > Configure Contents > Select "Servoy Active Solution Filter"
    • Searching: In the Search dialog, the scope of the Search can also be restricted to the Servoy Active Solution workset:
  • Servoy MarketPlace integration
    • Servoy MarketPlace can be opened in Servoy Developer, through Help > Servoy MarketPlace
    • When supported by the product in the MarketPlace, the product can by instantly downloaded and installed into Servoy Developer 
  • Added option to show the firstForm of the solution that is being activated (see Window > Preferences > Servoy > Form Editor) 
  • Wiki Markup
    Improved output to console of Javascript objects: \{name: someValue}&nbsp;instead of \[object Object\]
  • Added predefined update url for JSDoc plugin (https://www.servoyforge.net/projects/jsdoc)
  • Updated Servoy Developer to Eclipse Helios (3.6)
  • Reduced memory footprint of solutions in Servoy Developer by about 40% 
  • Reduced startup time of Servoy Developer by lazy loading not active solutions
  • Added command line Solution Exporter
  • Added JUnit testclass for running JSUnit tests contained in a solution within the JUnit framework
  • Made update of Calculations and Aggregates in the Replace Table action optional
  • In the Debug Smart Client, a call to application.showUrl(...) will open the URL in a browser within Servoy Developer
  • In Table Editor, when creating a new column containing the text "email" or "url" in the columnName, automatically set the type to "Text" and the length to resp. 254 or 2048 (based on the specifications for email addresses and urls)
  • Added "Maximum prepared statements idle" property in Database Server Editor (was already exposed on the Admin page)
  • Made "Link with Editor" work for Styles, Tables and Database Servers as well
  • Added "FoxPro DBF" New server template
  • Added ability to to also externalize hard-coded Strings inside JavaScript code (See Externalize Messages dialog)

...

  • Dedicated SolutionType values for pre and post import hooks, instead of relying on a naming convention
  • Ability to use a global method as PK generator (a3), through selecting a global method under Auto Enter > Lookup Value on the Column in the Table editor
  • Added Copy action in columns rows in Table Editor, to quickly get the column name into the clipboard
  • Support for using variables of type Boolean inside relations, mapping on integer columns
  • Added ability to use separators in ValueLists
  • Made "Left Outer Join" the default value for new relations
  • Support i18n filter fallbacks for i18n.setI18NMessagesFilter, by supplying the an underscore concatenated string of filter values (see samplecode)
  • Support to mark functions through the JSDoc @AllowToRunInFind tag to be executed as event handlers while in FindMode:
    Previously methods attached to event handlers would only execute in FindMode if the contained the code the execute a search (controller.search() or foundset.search()). As of Servoy 6 any method that contains the @AllowToRunInFind tag in it's JSDoc will be executed in FindMode when attached to an event. Note that there are limitations to what is possible in scritping while in FindMode and that certain behavior is not well defined. More information on this will follow.

Still to be done

  • Refactor the implementation of i18n filter fallbacks to work based on an Array of values, instead of a underscore concatenated string of values 

...