Releases: tmr232/function-graph-overview
Releases · tmr232/function-graph-overview
v0.0.16 - Pan & Zoom
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
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
andco_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
andraise
statements now causefinally
block duplication likereturn
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
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, usecfg-overlay-start: My Message
andcfg-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
- Improve performance
- Solve an issue where some functions led to infinite loops when rendering
v0.0.12 - TypeScript Support
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
andbreak label
now work properly in Go- Infinite C-style loops in Go are now recognized correctly.
v0.0.11 - Getting Started Experience
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
This release adds support for C++ code!
v0.0.9 - Dark Mode
- 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
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
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.