Visual Environment
- The status bar reports connectivity issues. The IDE maintains a connection to the Enso Language Server. If this connection is lost, any unsaved and further work will be lost. In this build, we have added a notification in the status bar to signal that the connection has been lost and that the IDE must be restarted. In the future, the IDE will try to automatically reconnect.
- Visualizations can now be maximized to fill the screen by selecting the node and pressing space twice. To quit this view, press space again.
- Visualizations are previewed when you hover over an output port. There is now a quick preview for visualizations and error descriptions. Hovering over a node output will first show a tooltip with the type information and then, after some time, will show the visualization of the node. This preview visualization will be located above other nodes, whereas the normal view, will be shown below nodes. Errors will show the preview visualization immediately. Nodes without type information will also show the visualization immediately. You can enter a quick preview mode by pressing ctrl (or command on macOS), which will show the preview visualization immediately when hovering above a node's output port.
- Database Visualizations. Visualizations for the Database library have been added. The Table visualization now automatically executes the underlying query to display its results as a table. In addition, the SQL Query visualization allows the user to see the query that is going to be run against the database.
- Histogram and Scatter Plot now support Dataframes. The
Table
andColumn
datatypes are properly visualized. Scatter Plot can display points of different colors, shapes, and sizes, all as defined by the data within theTable
. - Many small visual improvements. See the source issue for more details.
- The dark theme is officially supported now. You can start the IDE with the
--theme=dark
option to enable it. - You can hide the node labels with the
--no-node-labels
option. This is useful when creating demo videos. - Added a Heatmap visualization. Just as for the Scatter Plot, it supports visualizing
Table
, but alsoVector
. - Add a background to the status bar.
- Display breadcrumbs behind nodes and other objects.
- Image visualization.. Visualizations for the Enso Image library. Now you can display the
Image
type and a string with an image encoded in base64. The histogram visualization has been adjusted, allowing you to display the values of the precomputed bins, which is useful when the dataset is relatively big, and it's cheaper to send the precomputed bins rather than the entire dataset.
Visual Environment
- Not adding spurious imports. Fixed cases where the IDE was adding unnecessary library imports when selecting hints from the node searcher. This makes the generated textual code much easier to read, and reduces the likelihood of accidental name collisions.
- Hovering over an output port shows a pop-up with the result type of a node. This allows easy discovery of the result type of a node, which can help with both debugging and development.
- Visualizations can define the context for preprocessor evaluation. Users can now decide which module's context should be used for the visualization preprocessor. This allows providing visualizations with standard library functionalities or defining utilities that are shared between multiple visualizations.
- Fixed an issue with multiple instances of the IDE running. This fixes an issue where multiple instances of the IDE (or even other applications) could lead to the IDE not working.
- Allow JS to log arbitrary objects. Previously using
console.log
in visualization or during development would crash the IDE. Now it correctly logs the string representation of the object. This is great for debugging custom visualizations. - Fix the mouse cursor offset on systems with fractional display scaling. The cursor now works with any display scaling, instead of there being an offset between the visible cursor and the cursor selection.
- Disable area selection. The area selection was visible despite being non-functional. To avoid confusion, area selection has been disabled until it is correctly implemented.
- Fix an error after adding a node. Sometimes, after picking a suggestion, the inserted node was spuriously annotated with "The name could not be found" error.
- Handle syntax errors in custom-defined visualizations. The IDE is now able to run properly, even if some of the custom visualizations inside a project contain syntax errors.
- Fix issues with pasting multi-line text into single-line text fields. The line in the copied text will be inserted and all additional lines will be ignored.
- Users can opt-out of anonymous data gathering. This can be done with the
--no-data-gathering
command-line flag when starting the IDE. - Provide a theming API for JavaScript visualizations. It is now possible to use the Enso theming engine while developing custom visualizations in JavaScript. You can query it for all IDE colors, including the colors used to represent types.
- You can now start the IDE service without a window again. The command-line argument
--no-window
now starts all the required backend services again, and prints the port on the command line. This allows you to open the IDE in a web browser of your choice. - JS visualizations have gestures consistent with the IDE. Panning and zooming now work just as expected using both a trackpad and mouse.
- Running
watch
command works on the first try.. Running the build commandrun watch
would fail if it was run as the first command on a clean repository. This now works. - The
inputType
field of visualizations is actually taken into consideration. The visualization chooser shows only the entries that work properly for the node's output type. - Fix applying the output of the selected node to the expression of a new node. For example, having selected a node with
Table
output and adding a new node with expressionat "x" == "y"
, the selected node was applied to the right side of==
:at "x" == operator1."y"
instead ofoperator1.at "x" == "y"
. Enso_Project.data
is visible in the searcher.- The Geo Map visualization recognizes columns regardless of the case of their name. This allows visualizing tables with columns like
LONGITUDE
orLongitude
, where previously onlylongitude
was recognized. - It is possible now to switch themes. Additionally, the theme manager was integrated with the FRP event engine, which has been a long-standing issue in the IDE. Themes management was exposed to JavaScript with the
window.theme
variable. It is even possible to change and develop themes live by editing theme variables directly in the Chrome Inspector. Use the following command to give this a go:theme.snapshot("t1"); theme.get("t1").interactiveMode()
. - The active visualization is highlighted. Now it is clearly visible when the mouse events are passed to the visualization.
- Fixed an issue where projects containing certain language constructs failed to load.
- Fixed a case where IDE could lose connection to the backend after some time.
- Improved the performance of the graph editor, particularly when opening a project for the first time.
EnsoGL (rendering engine)
- Unified shadow generation. Added a toolset to create shadows for arbitrary UI components.
Enso Compiler
If you're interested in the enhancements and fixes made to the Enso compiler, you can find their release notes here.