Visual Environment
- Long names on the Node Searcher's list are truncated. The part of the
name that doesn't fit in the Searcher's window is replaced with an ellipsis
character ("…"). - Magnet Alignment algorithm is used while placing new nodes. When we
find an available free space for a new node, the node gets aligned with the
surrounding nodes horizontally and vertically. This helps to preserve a nice
grid-like layout for all the nodes. - Nodes created via the TAB key or by clicking the (+) button on the
screen are now placed below all the selected nodes when more than one node is
selected. (Previously, they were placed below the first node that was
selected.) This makes it easier to achieve a compact, vertical layout of the
graph. - Nodes created near existing nodes via the TAB key or by dropping a
connection are now repositioned and aligned to existing nodes. This is
to make the resulting graph prettier and avoid overlapping. In such cases,
created nodes will be placed below an existing node or on the bottom-left
diagonal if there is no space underneath. - Nodes can be added to the graph by double-clicking the output ports of
existing nodes (or by clicking them with the right mouse button). - Node Searcher preserves its zoom factor. The visible size of the node
searcher and edited node is now fixed. It simplifies node editing on
non-standard zoom levels. - Nodes can be added to the graph by clicking (+) button on the screen.
The button is in the bottom-left corner. Node is added at the center or pushed
down if the center is already occupied by nodes. - Maximum zoom factor is limited to 1.0x if IDE is not in Debug Mode.
- Debug Mode for Graph Editor can be activated/deactivated using a
shortcut. It allows access to a set of restricted features. See
debug-shortcuts. - New nodes can be created by dragging and dropping a connection on the
scene. - Node connections can be dropped by pressing the Esc key while dragging
them. - Added support of source maps for JS-based visualizations.
- Fixed the alignment of newly created nodes to existing nodes with
visualizations enabled. When applicable, new nodes are now placed below
visualizations. (Previously, they were placed to the left of the
visualizations.) - Fixed histograms coloring and added a color legend.
- Fixed broken node whose expression contains non-ASCII characters.
- Fixed developer console warnings about views being created but not
registered. - Fixed developer console errors related to Language Server (mentioning code
3003 and "Invalid version"), occurring during project opening and after new
node cration. - Fixed developer console error about failing to decode a notification
"executionContext/visualisationEvaluationFailed"
EnsoGL (rendering engine)
- You can change font and set letters bold in the
text::Area
component. Use theset_font
and
set_bold_bytes
respectively.
Enso Standard Library
- Implemented
Vector.distinct
allowing to remove duplicate elements from a
Vector - Implemented
Duration.time_execution
allowing timing of the execution of an
expression within the UI - Improved performance of
Vector.filter
andVector.each
; implemented
Vector.filter_with_index
. MadeVector.at
accept negative indices and
ensured it fails with a dataflow error on out of bounds access instead of an
internal Java exception. - Implemented the
Table.select_columns
operation. - Implemented the
Table.remove_columns
andTable.reorder_columns
operations. - Implemented the
Table.sort_columns
operation. - Fixed
Vector.sort
to handle tail-recursive comparators - Implemented
Range.find
,Table.rename_columns
and
Table.use_first_row_as_names
operations - Implemented
Text.at
andText.is_digit
methods - Implemented
Runtime.get_stack_trace
together with some utilities to process
stack traces and code locations - Implemented
Vector.flatten
- Significant performance improvement in
Natural_Order
and newFaker
methods added toStandard.Test
- Implemented
Integer.parse
- Made
Text.compare_to
correctly handle Unicode normalization - Extend
Text.contains
API to support regex and case insensitive
search. - Implemented new
Text.take
andText.drop
functions, replacing existing
functions - Implemented new
Text.starts_with
andText.ends_with
functions, replacing
existing functions - Implemented
Text.to_case
, replacingText.to_lower_case
and
Text.to_upper_case
- Implemented initial
Table.group_by
function on Standard.Table - Implemented
Text.pad
andText.trim
- Updated
Text.repeat
and added*
operator shorthand - General improved Vector performance and new
Vector.each_with_index
,
Vector.fold_with_index
andVector.take
methods. - Implemented new
Text.insert
method - Implemented
Bool.compare_to
method - Implemented
Map.first
,Map.last
functions. ExpandedTable.group_by
to
also compute mode, percentile, minimum, maximum. - Implemented
Text.location_of
andText.location_of_all
methods. - Replaced
Table.group_by
withTable.aggregate
- Implemented
Panic.catch
and helper functions for handling errors. Added a
type parameter toPanic.recover
to recover specific types of errors. - Added warning handling to
Table.aggregate
- Improved performance of
Table.aggregate
and full warnings
implementation - Implemented
Text.reverse
- Implemented support for most Table aggregations in the Database
backend. - Update
Text.replace
to new API. - Add encoding support to
Text.bytes
andText.from_bytes
. Renamed and added
encoding toFile.read_text
. NewFile.read
API. - Improved the
Range
type. Added adown_to
counterpart toup_to
and
with_step
allowing to change the range step. - Aligned
Text.split
API with other methods and addedText.lines
. - Implemented a basic reader for the
Delimited
file format.
Enso Compiler
- Added overloaded
from
conversions. - Upgraded to Graal VM 21.3.0
- Added the ability to decorate values with warnings.
- Fixed issues related to constructors' default arguments
- Fixed compiler issue related to module cache.
- Fixed execution of defaulted arguments of Atom Constructors
- Converting Enso Date to java.time.LocalDate and back
- Functions with all-defaulted arguments now execute automatically
- Provide
tagValues
for function arguments in the language server - Delay construction of Truffle nodes to speed initialization
- Frgaal compiler integration to allow for latest Java constructs
- Move Builtin Types and Methods definitions to stdlib