Skip to content

Releases: tmr232/function-graph-overview

v0.0.16 - Pan & Zoom

07 May 18:27
ed04e89
Compare
Choose a tag to compare

Added

  • Pan & zoom for the graphs in both the IDE extensions and the web version

Fixed

  • Multiple catch clauses in C++ are now handled properly, even in case of comments between them.
  • Segmentation of catch clauses in C++ is now a lot better.
  • Exit nodes are now drawn properly even inside try blocks.

v0.0.15 - Fallthrough, Python & C++ Syntax, Bugfixes

26 Mar 12:42
652bcd2
Compare
Choose a tag to compare

Added

  • Python catch-all cases in match statements are now detected.
    When a catch-all is found the "no-match-found" edge is removed,
    and cases after the catch-all are removed as dead code.
  • C++ learned co_yield and co_return
  • Python learned assert

Fixed

  • Comment-tests now fail if an unsupported test type is present instead of passing silently.
  • Python match statements no longer break when a comment is present at their top-level
  • throw and raise statements now cause finally block duplication like return statements.

Changed

  • In flat-switch mode, fallthrough now goes to the case-node, not the consequence-node.
    This produces cleaner, more readable graphs even if it is less correct.

v0.0.14 - Bugfix, TS & Go fixes, Perf

17 Feb 12:32
f53d194
Compare
Choose a tag to compare

Added

  • finally blocks are now supported in TypeScript.
  • Methods are now supported in TypeScript.
  • continue label is now supported in Go.
  • Region comment note overlay thingies in the demo, hidden in debug mode or under the showRegions parameter.
    Once enabled, use cfg-overlay-start: My Message and cfg-overlay-end comments to delimit regions and show
    them in the graph.
  • Function rendering is now cached, so that they are only re-rendered when needed.
    This results in faster update times when moving the cursor in the same function.

Fixed

  • Exporting DOT files (in debug mode) no longer results in different-looking graphs
  • The web renderer now supports iOS browsers.

Changed

  • VSCode and JetBrains now use the same WebView content.
  • Placeholder ("Hello, World!") graph colors are now determined by the color scheme.
  • VSCode settings now applied instantly to the graph.
  • Flat-Switch is now the default for rendering switch-like control-flow structures.

v0.0.13 - Perf and Bugfix

06 Jan 13:04
9c17f06
Compare
Choose a tag to compare
  • Improve performance
  • Solve an issue where some functions led to infinite loops when rendering

v0.0.12 - TypeScript Support

18 Dec 15:12
c9df1e4
Compare
Choose a tag to compare
Pre-release

Added

  • A simple CLI script to render a single function from a file (scripts/render-function.ts)
  • Developer docs
  • Support for click-to-navigate in the JetBrains plugin.
  • Support for TypeScript (and JavaScript, as a subset)
  • Support for TSX (and JSX, as a subset)

Changed

  • Unified a lot of the statement processing code between different languages
  • Python & C++ no longer marked experimental.

Fixed

  • continue label and break label now work properly in Go
  • Infinite C-style loops in Go are now recognized correctly.

v0.0.11 - Getting Started Experience

01 Dec 21:03
3059ba1
Compare
Choose a tag to compare
Pre-release

I've been informed that the getting-started experience on VSCode was bad.
Added some docs & changed some settings in the hope of alleviating this.

Specifically, the Function Graph Overview: Show Graph Overview should now be available via the command-palette, making it easier to show the graph view.

v0.0.10 - C++ Support

01 Dec 16:53
d094ea6
Compare
Choose a tag to compare
v0.0.10 - C++ Support Pre-release
Pre-release

This release adds support for C++ code!

v0.0.9 - Dark Mode

10 Oct 13:55
6272dac
Compare
Choose a tag to compare
v0.0.9 - Dark Mode Pre-release
Pre-release
  • Dark-mode and custom color schemes
  • Default light/dark mode based on VSCode theme
  • Color-scheme creation in the interactive demo
  • Documented the color-scheme options

v0.0.7 - Graph Navigation

05 Oct 15:27
bacef0c
Compare
Choose a tag to compare
Pre-release

You can now click nodes in the graph to jump to the relevant lines!

Added

  • Clicking a node in the graph now places the cursor on the matching line.
  • The demo has a debug URL parameter to enable some debug features.

Changed

  • Backlinks are now using the dir=back DOT attribute to improve graph layouts.

0.0.6 - Node Highlighting

26 Sep 18:17
09d8dac
Compare
Choose a tag to compare
Pre-release

Highlights

The CFG view now highlights (in black) the node matching the cursor location in the code.
This can be disabled via the settings.

Added

  • The CFG view now highlights (in black) the node matching the cursor position.
  • Basic CFG caching for tests, making them twice as fast.
  • The extension learned to only generate a CFG on code or config changes.
    If the cursor just moves inside the same function, we don't regenerate the CFG.

Fixed

  • Rendering of select blocks in Go was broken.
  • Empty case clauses in switch statements no longer cause crashes.
  • Last case of a Python match statement no longer assumed to match.

Changed

  • Massive refactoring of CFGBuilder classes.
    New design now uses the sameGenericCFGBuilder class for all languages,
    and takes statement handlers as arguments.
    This reduces code duplication and makes it easier to add
    new languages in the future.
  • Flat switches now generate nodes for the conditions, and not only the consequence.
  • The CodeMirror editor in the demo got it's own Svelte component now, Editor.svelte.
    This allows better state management and handling/dispatching events.