flowide
is an experimental visual IDE (using gtk3) for flow
programs.
Currently, it allows you to:
- Load a flow description by selecting a
toml
flow description file via a file dialog- The flow JSON representation is shown in text in the "Flow (json)" tab
- Compile the flow to it's manifest format (also json) using
flowclib
- The manifest is shown in JSON text in the "Manifest" tab
- Load a pre-compiled JSON manifest directly
- JSON is shown in text in the "Manifest" tab
- Run the compiled flow from its manifest
- STDERR and STDOUT are shown in two tabs
The UI is still very basic, but here it is after having loaded the "fibonacci" flow from context.toml description
file, compiled it to manifest.json manifest format (using flowlibc
) and then the outout on the STDOUT
tab when
running it (using flowrlib
).
You can find the latest up-to-date command line usage using:
cargo run -- --help
orflowide --help
if you have installed it usingcargo install flowide-gtk
Either will show you the usage, which currently is:
flowide 0.32.0
USAGE:
flowide [OPTIONS] [ARGS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-i, --stdin <STDIN_FILENAME> Read STDIN from the named file
-v, --verbosity <VERBOSITY_LEVEL> Set verbosity level for output (trace, debug, info, warn, error (default))
ARGS:
<FLOW> the name of the 'flow' definition file to open
<flow_args>... Arguments that will get passed onto the flow if it is executed
You can have the Makrfile install the required dependencies on Mac OS X or Linux using
make config
You can build or run using the make targets:
make build
make run
or just use cargo:
cargo build
cargo run
There are not many tests yet, but you can run all there are using:
make test
cargo test
If you run just make
, the default make target will run:
cargo build test clippy
Where clippy
is the rust cargo
component that runs a number of lint checks on the code.
flowide
is developed mainly on Mac OS X, but CI builds are done for Mac
and Linux. But since there is no automatic UI testing done in
CI, all it ensures is that it builds and unit tests pass on both platforms.