diff --git a/README.md b/README.md index 1335086..dc4dbd7 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,7 @@ CLIDE is an extendable command-line driven development environment written in Rust using the Qt UI framework that supports both full and headless Linux environments. The GUI is written in QML compiled through Rust using the cxx-qt crate, while the TUI was implemented using the ratatui crate. -It's up to you to build your own development environment for your tools. -To add tools for your purposes, create a plugin that implements the `ClidePlugin` trait. (This is currently under development and not yet available.) +It's up to you to build your own development environment for your tools. Plugins are planned to be supported in the future for bringing your own language-specific tools or features. Once you've created your plugin, you can submit a pull request to add a link to the git repository for your plugin to the final section in this README if you'd like to contribute. The following packages must be installed before the application will build. @@ -20,6 +19,68 @@ And of course, [Rust](https://www.rust-lang.org/tools/install). curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` +## Usage + +To install and run clide + +```bash +git clone https://git.shaunreed.com/shaunrd0/clide +cd clide +cargo install --path . +``` + +After installation `clide` can be used directly + +```bash +clide --help + +Extendable command-line driven development environment written in Rust using the Qt UI framework. +If no flags are provided, the GUI editor is launched in a separate process. +If no path is provided, the current directory is used. + +Usage: clide [OPTIONS] [PATH] + +Arguments: + [PATH] The root directory for the project to open with the clide editor + +Options: + -t, --tui Run clide in headless mode + -g, --gui Run the clide GUI in the current process, blocking the terminal and showing all output streams + -h, --help Print help +``` + +### TUI + +The TUI is implemented using the ratatui crate and has the typical features you would expect from a text editor. +You can browse your project tree, open / close new editor tabs, and save / reload files. +Controls for the TUI are listed at the bottom of the window, and update depending on which widget you have focused. +For now, there are no language-specific features or plugins available for the TUI – it is only a text editor. + +To run the TUI, pass the `-t` or `--tui` flags. + +```bash +# With cargo from the project root +cargo run -- -t +# Or via clide directly after installation +clide -t +``` + +![image](./resources/tui.png) + +### GUI + +The GUI is still in development. It is at this point a text viewer, instead of a text editor. +There are many placeholder buttons and features in the GUI that do nothing when used. + +The GUI is run by default when executing the `clide` application. + +```bash +# With cargo from the project root +cargo run +# Or via clide directly after installation +clide +``` + ## Development It's recommended to use RustRover or Qt Creator for development. diff --git a/resources/tui.png b/resources/tui.png new file mode 100644 index 0000000..639cf3d Binary files /dev/null and b/resources/tui.png differ diff --git a/src/main.rs b/src/main.rs index b672903..f5cf2eb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -6,7 +6,7 @@ use std::process::{Command, Stdio}; pub mod gui; pub mod tui; -/// Command line interface IDE with full GUI and headless modes. +/// Extendable command-line driven development environment written in Rust using the Qt UI framework. /// If no flags are provided, the GUI editor is launched in a separate process. /// If no path is provided, the current directory is used. #[derive(Parser, Debug)]