docs: re-organize README.md
This commit is contained in:
parent
a48b680f57
commit
f15c9adb6a
1 changed files with 65 additions and 50 deletions
115
README.md
115
README.md
|
@ -1,11 +1,43 @@
|
||||||
# Flow Control: a programmer's text editor
|
# Flow Control: a programmer's text editor
|
||||||
|
|
||||||
This is my Zig text editor. It is under active development, but usually stable
|
This is my Zig text editor. It is under active development, but very stable
|
||||||
and is my daily driver for most things coding related.
|
and is my daily driver for almost everything.
|
||||||
|
|
||||||
[](https://www.youtube.com/watch?v=iwPg3sIxMGw)
|
[](https://www.youtube.com/watch?v=iwPg3sIxMGw)
|
||||||
|
|
||||||
|
|
||||||
|
# Features
|
||||||
|
- fast TUI interface. no user interaction should take longer than one frame
|
||||||
|
(6ms) (even debug builds)
|
||||||
|
- tree sitter based syntax highlighting
|
||||||
|
- linting (diagnostics) and code navigation (goto definition) via language
|
||||||
|
server
|
||||||
|
- multi cursor editing support
|
||||||
|
- first class mouse support (yes, even with a scrollbar that actually works
|
||||||
|
properly!) (Windows included)
|
||||||
|
- vscode compatible keybindings (thanks to kitty keyboard protocol)
|
||||||
|
- vim compatible keybindings (the standard vimtutor bindings, more on request)
|
||||||
|
- user configurable keybindings
|
||||||
|
- excellent unicode support including 2027 mode
|
||||||
|
- hybrid rope/piece-table buffer for fast loading, saving and editing with
|
||||||
|
hundreds of cursors
|
||||||
|
- theme support (compatible with vscode themes via the flow-themes project)
|
||||||
|
- infinite undo/redo (at least until you run out of ram)
|
||||||
|
- find in files
|
||||||
|
- command palette
|
||||||
|
- stuff I've forgotten to mention...
|
||||||
|
|
||||||
|
# Features in progress (aka, the road to 1.0)
|
||||||
|
- completion UI/LSP support for completion
|
||||||
|
- persistent undo/redo
|
||||||
|
- file watcher for auto reload
|
||||||
|
|
||||||
|
# Features planned for the future
|
||||||
|
- multi tty support (shared editor sessions across multiple ttys)
|
||||||
|
- multi user editing
|
||||||
|
- multi host editing
|
||||||
|
|
||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
- A modern terminal with 24bit color and, ideally, kitty keyboard protocol
|
- A modern terminal with 24bit color and, ideally, kitty keyboard protocol
|
||||||
support. Kitty, Foot and Ghostty are the only recommended terminals at this
|
support. Kitty, Foot and Ghostty are the only recommended terminals at this
|
||||||
|
@ -53,30 +85,19 @@ zig build -Doptimize=ReleaseSafe -Dtarget=aarch64-linux-musl --prefix zig-out/aa
|
||||||
When cross-compiling zig will build a binary with generic CPU support.
|
When cross-compiling zig will build a binary with generic CPU support.
|
||||||
|
|
||||||
|
|
||||||
# Documentation
|
The output binary is:
|
||||||
|
|
||||||
## User manual
|
```
|
||||||
|
zig-out/bin/flow
|
||||||
|
```
|
||||||
|
|
||||||
A basic user manual is available inside flow. You can open it with the
|
It is statically built (by default) and contains all the required tree-sitter parsers
|
||||||
`Open help` command (F1).
|
and queries. No additional runtime files are required.
|
||||||
|
|
||||||
## Development Resources
|
|
||||||
|
|
||||||
Also, additional developer resources can be found on the Flow Control website at
|
|
||||||
[flow-control.dev/docs](https://flow-control.dev/docs/).
|
|
||||||
|
|
||||||
There is also an AI generated developer guide at
|
|
||||||
[](https://deepwiki.com/neurocyte/flow).
|
|
||||||
Accuracy may vary. Check details against the referenced source code.
|
|
||||||
|
|
||||||
|
|
||||||
# Running Flow Control
|
# Running Flow Control
|
||||||
|
|
||||||
The binary is:
|
The Flow Control binary is called `flow`.
|
||||||
|
|
||||||
```shell
|
|
||||||
zig-out/bin/flow
|
|
||||||
```
|
|
||||||
|
|
||||||
Place it in your path for convenient access:
|
Place it in your path for convenient access:
|
||||||
|
|
||||||
|
@ -128,6 +149,27 @@ Show supported language names with `--list-languages`.
|
||||||
|
|
||||||
See `flow --help` for the full list of command line options.
|
See `flow --help` for the full list of command line options.
|
||||||
|
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
|
||||||
|
## User manual
|
||||||
|
|
||||||
|
A basic user manual is available inside flow. You can open it with the
|
||||||
|
`Open help` command (F1).
|
||||||
|
|
||||||
|
It is also available in the website [documentation]{https://flow-control.dev/docs/}
|
||||||
|
section.
|
||||||
|
|
||||||
|
## Development Resources
|
||||||
|
|
||||||
|
Additional developer resources can be found on the Flow Control website at
|
||||||
|
[flow-control.dev/docs](https://flow-control.dev/docs/).
|
||||||
|
|
||||||
|
There is also an AI generated developer guide at
|
||||||
|
[](https://deepwiki.com/neurocyte/flow).
|
||||||
|
Accuracy may vary. Check details against the referenced source code.
|
||||||
|
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
|
|
||||||
Configuration is mostly dynamically maintained with various commands in the UI.
|
Configuration is mostly dynamically maintained with various commands in the UI.
|
||||||
|
@ -148,8 +190,10 @@ Logs, traces and per-project most recently used file lists are stored in the
|
||||||
standard user application state directory. Usually `~/.local/state/flow` on
|
standard user application state directory. Usually `~/.local/state/flow` on
|
||||||
Linux and %APPDATA%\Roaming\flow on Windows.
|
Linux and %APPDATA%\Roaming\flow on Windows.
|
||||||
|
|
||||||
|
|
||||||
# Key bindings and commands
|
# Key bindings and commands
|
||||||
|
|
||||||
|
Press `F1` to view the online manual.
|
||||||
Press `F4` to switch the current keybinding mode. (flow, vim, emacs, etc.)
|
Press `F4` to switch the current keybinding mode. (flow, vim, emacs, etc.)
|
||||||
Press `ctrl+shift+p` or `alt+x` to show the command palette.
|
Press `ctrl+shift+p` or `alt+x` to show the command palette.
|
||||||
Press `ctrl+F2` to see a full list of all current keybindings and commands.
|
Press `ctrl+F2` to see a full list of all current keybindings and commands.
|
||||||
|
@ -159,6 +203,7 @@ file and open it for editing. Save your customized keybinds under a new name
|
||||||
in the same directory to create an entirely new keybinding mode. Keybinding
|
in the same directory to create an entirely new keybinding mode. Keybinding
|
||||||
changes will take effect on restart.
|
changes will take effect on restart.
|
||||||
|
|
||||||
|
|
||||||
# Terminal configuration
|
# Terminal configuration
|
||||||
|
|
||||||
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
||||||
|
@ -172,36 +217,6 @@ kitty_mod ctrl+alt
|
||||||
|
|
||||||
For Ghostty each conflicting binding has to be reconfigured individually.
|
For Ghostty each conflicting binding has to be reconfigured individually.
|
||||||
|
|
||||||
# Features
|
|
||||||
- fast TUI interface. no user interaction should take longer than one frame
|
|
||||||
(6ms) (even debug builds)
|
|
||||||
- tree sitter based syntax highlighting
|
|
||||||
- linting (diagnostics) and code navigation (goto definition) via language
|
|
||||||
server
|
|
||||||
- multi cursor editing support
|
|
||||||
- first class mouse support (yes, even with a scrollbar that actually works
|
|
||||||
properly!) (Windows included)
|
|
||||||
- vscode compatible keybindings (thanks to kitty keyboard protocol)
|
|
||||||
- vim compatible keybindings (the standard vimtutor bindings, more on request)
|
|
||||||
- user configurable keybindings
|
|
||||||
- excellent unicode support including 2027 mode
|
|
||||||
- hybrid rope/piece-table buffer for fast loading, saving and editing with
|
|
||||||
hundreds of cursors
|
|
||||||
- theme support (compatible with vscode themes via the flow-themes project)
|
|
||||||
- infinite undo/redo (at least until you run out of ram)
|
|
||||||
- find in files
|
|
||||||
- command palette
|
|
||||||
- stuff I've forgotten to mention...
|
|
||||||
|
|
||||||
# Features in progress (aka, the road to 1.0)
|
|
||||||
- completion UI/LSP support for completion
|
|
||||||
- persistent undo/redo
|
|
||||||
- file watcher for auto reload
|
|
||||||
|
|
||||||
# Features planned for the future
|
|
||||||
- multi tty support (shared editor sessions across multiple ttys)
|
|
||||||
- multi user editing
|
|
||||||
- multi host editing
|
|
||||||
|
|
||||||
# Community
|
# Community
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue