Skip to content

Releases: arnab-sen/GALADE

GALADE v1.8.0

12 Jan 19:41
Compare
Choose a tag to compare

Changelog:

New features and additions:

  • Any nodes that haven't been laid out will now be forced to be laid out as roots, from which the layout algorithm will attempt new passes
  • Added the ability to generate the code for mapping every instantiation to a dictionary, with instance names as the keys (Tools > Create Instantiation Dictionary)
  • Can now nodes using CTRL + Up/Down is by selecting the node you wish to reorder
    • The layout will now also automatically update after the move has occurred
  • Added a menu item (File > Open Recent Projects...) for opening previously opened projects
    • These entries can be edited in in settings.json under "RecentProjectPaths"
  • Added support for node descriptions. An instance's description can be viewed by pressing the new "?" button:
    image
    • The descriptions can be edited directly, and will save whenever their text is changed
    • When the diagram is saved, all instance descriptions will appear in their corresponding instantiation's metadata, under the "Description" key. This is also where the descriptions are loaded from when creating the diagram
  • Added support for wire descriptions:
    • A wire's description can be viewed in its tooltip:
      image
    • The description can also be edited through right click > Edit description, which will open a textbox at the current mouse position:
      image
    • Like node descriptions, wire descriptions will also appear in the metadata for their respective WireTo line when the code is generated
  • Increased the show duration for all tooltips from 5 seconds to 60 seconds - it should now be much easier to read instance, port, and field/property documentation. The tooltips will still hide as per usual when the mouse is moved
  • #18: Selected and highlighted nodes now appear above all other nodes

Bug fixes:

  • Fixed a bug where the available abstraction types from the current project would not clear when another project is opened through File > Open Project
  • Fixed an issue where pasted nodes weren't updating their type
  • #17: Can now paste multiline text into textboxes
  • Fixed and issue where pasted nodes would share field/property references

GALADE v1.7.2

07 Jan 06:31
Compare
Choose a tag to compare

Changelog:

New features and enhancements:

  • Added a new context menu option to wires that lets the user promote the selected wire's chronological wiring order to the top at either the source or destination port
    • Promoting at the destination port is the same as changing that connection into a tree connection:
      image

Bug fixes:

  • Fixed an issue with blank new lines being added to the wiring code destination file
  • Fixed the following layout issue:
    • Say you start with this diagram:
      image
    • With depth-first layout enabled, adding a wire from C -> E to the original diagram would change the layout like so:
      image
    • With breadth-first layout enabled, adding a wire from E -> D to the original diagram would change the layout like so:
      image
    • The new layout algorithm allows for both cases, while also keeping the layout the same as that of the original diagram:
      image
    • Instead of producing a breadth-first or depth-first tree, the tree is produced by treating the order of the graph's list of edges (which corresponds to the order of the WireTos) as a topological ordering
    • Note that this makes the option to switch between breadth-first and depth-first layouts redundant, so the menu item that does that has been removed

GALADE v1.7.1

06 Jan 09:35
Compare
Choose a tag to compare

Changelog:

New features and enhancements:

  • Added a menu item (View > Use depth-first layout) that lets the user toggle between whether the nodes should be laid out depth-first or breadth-first (breadth-first is used by default)
  • Added a menu item (View > Use automatic layout when rewiring) that lets the user toggle automatic layout after rewiring on and off (note: the diagram will still automatically lay itself out when a new node is added with the A key. However, nodes can be added to the current mouse position without triggering the automatic layout by using right click > Add Root)
    • The layout algorithm can still be run by pressing the R key

Bug fixes:

  • Fixed an issue where constructor arguments would not be searched

GALADE v1.7.0

04 Jan 08:45
Compare
Choose a tag to compare

Changelog:

New features and enhancements:

  • Significantly reduced graph creation time
  • The "Check for Updates" menu item now asks GitHub's API for the latest release version number, and the result will show in the status bar. It will say if a new release is available. This is automatically done once when GALADE is opened, and every 30 minutes after that. The old functionality (opening the Releases page) has been moved to the new "Open Releases page" menu item
  • #1: Generated instantiations now start with their instance type rather than "var"
  • #8: Selected wires will now appear above unselected wires
  • #12: Node field/property dropdowns now only show uninitialised fields and properties
  • The graph laying out is now done breadth-first instead of depth-first, so e.g. the following can now be done without everything rewiring into one flat branch:
    image
  • Any port ending with "_B" before type parameters will now be considered to be a reverse port (e.g. IDataFlow_B<string>). IDataFlowB and IEventB will still be supported, but it is expected that they will use "_B" eventually too
  • When new abstractions are created, dragging and dropping their source files onto GALADE will now make their abstraction models available in the instance type dropdowns, so you no longer have to reopen GALADE and recreate the diagram whenever you create a new abstraction

Bug fixes:

  • (Fixed in v1.6.1, adding here for clarity) #2: Fixed an issue where searching for a node and then selecting its result would reset that node's fields, properties, and generics to their default values
  • #3: Ports that are lists now show their types correctly
  • #4: Port descriptions are now parsed correctly when their port names are surrounded by quotation marks in the <summary> section
  • #6: Port descriptions are now parsed correctly when the abstraction class has "where" clauses for its generic types
  • #7: Clicking on a search result repeatedly now correctly focuses on, and navigates to, the corresponding node
  • #9: Node context menus now no longer show up as empty when right clicking on certain areas
  • #10: Node field/property values now persist instead of resetting when changing between field/property names
  • #11: Node field/property values are now removed from the instance initialiser as soon as they are no longer visible on the node

GALADE v1.6.1

23 Dec 00:12
Compare
Choose a tag to compare

Changelog:

  • When a type is selected in a node, all of its properties will be saved for that type, so when changing back and forth between types in a single node, its generics, fields, and properties should now persist for each type instead of resetting the node to its type's default values

GALADE v1.6.0

13 Dec 04:03
Compare
Choose a tag to compare

Changelog:

  • Fixed an issue causing IDataFlowB and IEventB ports to be wired the wrong way
  • Node type is now set when pressing tab while editing the node type
    • Pressing tab will navigate to the node name TextBox
  • Added several more types to generic type dropdowns
  • Node name TextBoxes no longer accept tab key presses
    • When tab is pressed, focus navigation will proceed normally
  • Can now select a port through focus navigation with the tab key
    • However this only works when there are no node parameters, as node parameter TextBoxes consume tab key presses (and create indentations instead)
  • A wire's tooltip will now show the type and name of both its source port and destination port
  • Node context menus now have toggles for setting their IsRoot and IsReference properties
  • Removed unused context menu item to open a node's abstraction source code in a default internal editor
    • An abstraction's source code can now be opened through right click (on node) > "Open source code in your default .cs file editor"
  • Resetting the view on a node now places the node in the centre of the view rather than at the top left
  • When adding a new node, the current view is now centred on that node
  • Added options to jump to a wire's source/destination to the background canvas context menu and removed those options from the wire's context menu
    • Now, the last selected wire will be used for navigation through those options
  • Can now search node fields and properties (both names and values)
  • Added search filters for where in the nodes to search, to help improve performance
  • Changed a menu item typo: "Change for Updates" -> "Check for Updates"
  • Default node metadata will now be generated in the code to help avoid any issues with JSON syntax

GALADE v1.5.0

09 Dec 21:54
Compare
Choose a tag to compare

Changelog:

  • Hid debug menu items/unused features
  • Added a menu item to the main menu that lets the user open the GALADE user guide/wiki
  • The visibility of the side panel can now be toggled through View > Show Side Panel
  • Any port ending with "B" (prior to any generic types) will now be considered to be a reverse port, for example IDataFlowB and IEventB
  • Fixed an issue with unknown implemented port names showing as "?" instead of "?{port.Type}"
  • Added the ability to jump to a wire's source and destination through that wire's context menu

GALADE v1.4.0

09 Dec 01:07
Compare
Choose a tag to compare

Changelog:

  • Port documentation (both implemented and accepted) is now parsed from the <summary> section in an abstraction's source file.
    For example:
    image
    • It must be noted that types should not contain spaces. For example, IDataFlow<Dictionary<string, string>> should instead be IDataFlow<Dictionary<string,string>>
    • For Visual Studio's IntelliSense to work correctly, all instances of "<" should be replaced by "&lt;", and all instances of ">" should be replaced by "&gt;", unless they are part of tags
    • Every port in an abstraction should have a unique name
  • Implemented ports can now be named by adding an inline comment next to the list of implemented ports.
    For example, the following class MyClass has implemented ports IDataFlow<string> inputString and IDataFlow<int> inputNumber:
    public class MyClass : IDataFlow<string>, IDataFlow<int> // inputString, inputNumber
    • The order of names in the comment must match the order of the interfaces

GALADE v1.3.0

08 Dec 00:22
Compare
Choose a tag to compare

Changelog:

  • Metadata for any instantiation or WireTo can now be added in as JSON in a comment next to its respective code line
  • Can now use "@" at the start of a variable name to denote that instance as a reference instance that is defined elsewhere in the code
  • Fixed an issue where a diagram's code would only be generated in between the first set of code generation landmarks found
  • The main window will now show the name of the currently opened diagram
  • The code generation success message will now include the name of the currently opened diagram
  • Fixed an issue where unnamed constructors could be generated after named constructors, causing compilation issues

GALADE v1.2.1

07 Dec 00:30
Compare
Choose a tag to compare

Changelog:

  • Fixed an issue where diagrams would become excessively wide