Compare commits
1 Commits
ui
...
802cf8e9d3
| Author | SHA1 | Date | |
|---|---|---|---|
| 802cf8e9d3 |
65
README.md
65
README.md
@@ -3,7 +3,8 @@
|
|||||||
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.
|
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.
|
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. Plugins are planned to be supported in the future for bringing your own language-specific tools or features.
|
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.)
|
||||||
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.
|
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.
|
The following packages must be installed before the application will build.
|
||||||
@@ -19,68 +20,6 @@ And of course, [Rust](https://www.rust-lang.org/tools/install).
|
|||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
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
|
|
||||||
```
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### 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
|
## Development
|
||||||
|
|
||||||
It's recommended to use RustRover or Qt Creator for development.
|
It's recommended to use RustRover or Qt Creator for development.
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 533 KiB |
@@ -6,7 +6,7 @@ use std::process::{Command, Stdio};
|
|||||||
|
|
||||||
pub mod gui;
|
pub mod gui;
|
||||||
pub mod tui;
|
pub mod tui;
|
||||||
/// Extendable command-line driven development environment written in Rust using the Qt UI framework.
|
/// Command line interface IDE with full GUI and headless modes.
|
||||||
/// If no flags are provided, the GUI editor is launched in a separate process.
|
/// If no flags are provided, the GUI editor is launched in a separate process.
|
||||||
/// If no path is provided, the current directory is used.
|
/// If no path is provided, the current directory is used.
|
||||||
#[derive(Parser, Debug)]
|
#[derive(Parser, Debug)]
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ use ratatui::widgets::{Paragraph, Wrap};
|
|||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
|
// TODO: Need a way to dynamically run Widget::render on all widgets.
|
||||||
|
// TODO: + Need a way to map Rect to Component::id() to position each widget?
|
||||||
|
// TODO: Need a good way to dynamically run Component methods on all widgets.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||||
pub enum AppComponent {
|
pub enum AppComponent {
|
||||||
AppEditor,
|
AppEditor,
|
||||||
|
|||||||
Reference in New Issue
Block a user