0.5.0
Release notes
Oct 3, 2024

Features

Variables

The Midio langauge now has support for local variables, which can be used by adding a variable getter or setter from the node palette (press space and search for 'getter' or 'setter'). Check out the variable docs here.

Misc features

  • Added action for continuing all paused processes. A button can be found on the processes panel, through the command palette.
  • Stepping while debugging now jumps to the next node debugging pauses at.
  • Added a new 'breakpoints' panel to view all active breakpoints
  • Made it possible to see value summaries for unconnected node properties
  • Improved UX of property input boxes for larger inputs. When the input gets past a certain size, a larger text area appears which is easier to use.
  • The URL you get when hovering the globe icon on Http.Endpoint nodes should now display the correct URL used to reach it. Click the icon to copy the URL to your clipboard.
  • Increased max memory available to each midio process, and made them handle out of memory exceptions mode gracefully.
  • External dependencies (added from the package manager) can now be inspected in the left side overview panel. Note that they are read only (even if the UI lets you editor them for now, which will only have a local and non-persistent effect). This makes it easier to see what functions a package contains, and lets a package author add usage examples.
  • While step debugging, stepping causes the view to jump to the next node. This makes it easier to follow what is happening when the next node is inside a function, for example. We will add more options for step debugging in the future, but this felt like a sensible default.
  • Added the ability to view documentation for nodes in the editor.

Bug fixes

  • Fixed bug which caused operations on selection between different blocks to affect each other, which could make you delete or move nodes you didn't intend to.
  • Fixed bug which caused several indexes in a row in waypoints to be interpreted wrongly.
  • Context checker now handles cycles, and only reports errors if a context is actually missing.
  • Our internal messaging system is now more robust for large messages.
  • Fixed a bunch of scenarios where 'convert to function' didn't work properly.
  • Fixed bug which caused the frontend to crash when renaming the project.
  • Fixed some situations where type errors weren't reported to the editor.

Misc changes

  • The popup edior used for editing anonymous functions has been removed. Anonymous functions are now edited in the same kind of editor as any other function.
  • Anonymous functions now get an entry in the left side overview panel. They currently don't get any meaningful names, but this will be added in a future release.
  • Added a new starter template for new projects, which contains some usage examples and examples of various useful patterns. Should be a better starting point than an empty module for new users.
  • When renaming a module or function in the left side overview, the existing name is now preselected in the input field.
  • Waypoint input box now has no max width so that you can always see the full content.

Std lib

Changes and bug fixes

  • Input and output names of functions are now more consistent.
  • Fixed bug in Strings.Template, which didn't work correctly with non-ascii characters.
  • Std.Strings.Join.separator now defaults to ''
  • Changed order of Http.Response inputs to match Http.Endpoint
  • Made Http.FetchUrl more efficient at allocating header values.

Additions

  • Added Std.Strings.Contains - which checks if a string is a substring of another string

Removed the ability to create new types (for now)

Until we've fixed our type editor, it felt wrong to have it available as it was practically impossible to use. The type editor will be reworked, and is an important feature for Midio.