docs: re-organize README.md

This commit is contained in:
CJ van den Berg 2025-10-15 11:42:51 +02:00
parent a48b680f57
commit f15c9adb6a
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

115
README.md
View file

@ -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.
[![Announcement](https://img.youtube.com/vi/iwPg3sIxMGw/maxresdefault.jpg)](https://www.youtube.com/watch?v=iwPg3sIxMGw) [![Announcement](https://img.youtube.com/vi/iwPg3sIxMGw/maxresdefault.jpg)](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
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](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
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](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