Releases: tmr232/function-graph-overview
Releases · tmr232/function-graph-overview
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.
v0.0.5 Python Support
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
andbun web
at the same time. - By default,
bun web
only shows failing tests bun web
color-codes tests to note which are failingbun lint
addedtsc --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
Added basic support for the C language, both in the demo and the extension.
v0.0.3
- 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
andflat switch
settings in demo - Expose
flat switch
setting in extension
v0.0.2
Initial Release!
v0.0.1 Updated documentation