Skip to content

Releases: tmr232/function-graph-overview

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.

v0.0.5 Python Support

18 Sep 10:34
6f250d2
Compare
Choose a tag to compare
v0.0.5 Python Support Pre-release
Pre-release

Added

  • Initial support for Python.
  • Support for node clusters. This is used heavily in Python, for context-managers and exception-handling.
  • A "share" feature to the demo
  • A "save SVG" option to the demo

Testing

  • Enable live-testing with the web viewer. Requires that you run both bun web-tests --watch and bun web at the same time.
  • By default, bun web only shows failing tests
  • bun web color-codes tests to note which are failing
  • bun lint added tsc --noEmit
  • DOT output in bun web is not pretty-printed, and can be automatically opened in GraphvizOnline

Fixed

  • Switch-like structures in flatSwitch now show an alternative edge from the head to the exit node.
    This was previously missing.
  • Thick-backlinks (for loops) are now generated correctly based on loop detection.

Basic C Support

10 Sep 12:40
Compare
Choose a tag to compare
Basic C Support Pre-release
Pre-release

Added basic support for the C language, both in the demo and the extension.

v0.0.3

07 Sep 13:52
Compare
Choose a tag to compare
v0.0.3 Pre-release
Pre-release
  • Learned Go's fallthrough keyword
  • Learned an option to draw flat-switches (where all cases are direct descendants of the switch head)
  • Added utilities for basic reachability testing
  • Expose simplify and flat switch settings in demo
  • Expose flat switch setting in extension