Crates.io | dot-viewer |
lib.rs | dot-viewer |
version | 0.1.1 |
source | src |
created_at | 2023-03-10 09:33:45.120989 |
updated_at | 2023-10-11 05:53:52.380847 |
description | A viewer/debugger for large DAGs in Vim-like TUI |
homepage | |
repository | https://github.com/furiosa-ai/dot-viewer |
max_upload_size | |
id | 806312 |
size | 107,320 |
dot-viewer
is a dot-format graph debugger in TUI, inspired by Vim.
dot-viewer
parses a dot format file using C bindings to Graphviz (v7.0.6).
The system environment should be able to find and include the following header files.
#include <gvc.h>
#include <cgraph.h>
Coming from Linux,
$ sudo apt install graphviz-dev
And coming from vanilla Ubuntu, you may want to install these too.
$ sudo apt install build-essentials cmake
$ sudo apt install clang
Coming from Mac,
$ brew install graphviz
And coming from Apple Silicon Mac, and add an environment variable,
export CPATH=/opt/homebrew/include
Or, try building from the source code following the guide.
dot-viewer
renders a subgraph with xdot.py
, an interactive dot visualizer.
It is required that xdot is executable in command-line beforehand such that the following works.
$ xdot *.dot
First initialize and update the submodule dot-graph
.
$ git submodule init
$ git submodule update
Then run crate.
$ cargo run --release [path-to-dot-file]
This will open a TUI screen on the terminal.
With dot-viewer
, users may
traverse the graph in TUI using,
goto next/prev node of the currently selected node
fuzzy search on node name
regex search on node name and attributes
make and export subgraphs using,
n
nodes of the currently selected nodeKey | Command | Actions |
---|---|---|
:q<C-R> |
quit dot-viewer |
|
:help<CR> |
show help |
esc
| | go back to the main screen
Hit esc
to go back to Normal mode whenever you are unsure of what you are doing...
Key | From | To |
---|
esc
| All | Normal
/
| Normal | Fuzzy Search
r
| Normal | Regex Search
:
| Normal | Command
Key | Actions |
---|
c
| close the current tab(view)
h/l
| move focus between current, prevs, nexts list
j/k
| traverse in focused list
n/N
| move between matched nodes
gg
| move to the topmost node in focused list
G
| move to the bottom node in focused list
tab
/backtab
| move between tabs
Key | Actions |
---|
tab
| autocomplete search keyword
enter
| apply search
e.g., in fuzzy search mode, /g1_s14_t100
and in regex search mode, r\(H: ., D: .\)
Key | Command | Actions |
---|---|---|
filter |
apply filter on current matches, opening a new tab(view) | |
neighbors [depth] |
get up to depth neighbors of the current node in a new tab(view) |
|
export [(opt) filename] |
export the current tab(view) to dot | |
xdot [(opt) filename] |
launch xdot with the filename or exports/current.dot by default |
|
subgraph |
open a popup showing subgraph tree |
tab
| | autocomplete command
enter
| | execute command
All exported files are saved in exports
directory in the project root.
Most recently exported file is copied in exports/current.dot
.
Key | Actions |
---|
h/j/k/l
| traverse the tree
enter
| change root to the selected subgraph, opening a new tab(view)
Key | Actions |
---|
h/j/k/l
| traverse help messages