[[Property:modification_date|Wed, 25 Jul 2018 07:17:36 GMT]] [[Property:publication_date|Wed, 27 Jun 2018 08:33:05 GMT]] [[Property:uuid|73F20392-AB22-4CD6-BFE5-83296B8BD64B]] [[Property:title|Release notes for EiffelStudio 18.07]] [[Property:link_title|18.07]] [[Property:weight|0]] ==Graphical environment== ===Improvements === * Extended sets of constructs checked by some default rules of the code analyzer and made sure the checks do not trigger false positives. * The execution parameters can be automatically loaded from the default file saved from a previous execution session (this way, an Eiffel project can have default execution parameters). * The debugger string viewer now displays information about the current cursor (character, position, ...). In addition, a new "JSON" string debugger viewer is available. ===User changes=== * Made completion more consistent: the selection list is shown even when there is just one item. * Used single-click for completion dialog. And show tool-tip when the pointer is over the entry. * New icons for '''class''' features (implying minor changes on existing features icons). * The auto-completion is not triggered anymore for `|.` or `..` cases. ==Compiler== * It is now possible to extend a project target from a different project (ECF). * The rules for '''class''' features were relaxed. Re-declaration into or joining with a class feature is valid as soon as combined assertions satisfy the class feature conditions. A non-static external and constant feature automatically gets a class post-condition if its contracts do not involve constructs that can access Current object . * Updated the Eiffel grammar to support bracket expressions as bracket targets (such as `table[x][y][z]`) * Supported detection of '''VHPR(5)''' violations for arbitrary ancestors, not just for immediate parents. This may be a breaking change for classes that inherit different generic derivations of the same class. * Added detection of a type mismatch between a manifest array and a target of the reattachment where the manifest array is used for projects created before 18.01 release to facilitate migration to the new typing rules for manifest arrays. A per-library option and a project-wide setting are available to control the checks. ==Libraries== * EiffelBase: ** Added `{EXECUTION_ENVIRONMENT}.available_cpu_count`. ** Relaxed a precondition of `{ARRAY}.subarray` to allow for calling it on empty arrays. **Marked many features of Base library as class ones to make them usable for non-object calls. **Added a feature `{ARRAY}.force_and_fill` that works like `{ARRAY}.force`, but fills previously unoccupied positions with the specified value rather than with a default one. * EiffelProcess: Marked features of `BASE_PROCESS_FACTORY`, `PROCESS_FACTORY`, and `PROCESS_INFO` as class ones to make them usable for non-object calls. * EiffelWeb: it is now possible to redefine the default http response when an exception occurs. ---- See [https://dev.eiffel.com/EiffelStudio_18.07_Releases change log] for more details.