major rework of the website content
This commit is contained in:
parent
061a0d938d
commit
8df841ad72
6 changed files with 222 additions and 166 deletions
10
content/community.smd
Normal file
10
content/community.smd
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
.title = "Community",
|
||||||
|
.date = @date("2025-10-15T12:24:45+02:00"),
|
||||||
|
.author = "CJ van den Berg",
|
||||||
|
.layout = "index.shtml",
|
||||||
|
.draft = false,
|
||||||
|
---
|
||||||
|
|
||||||
|
Join our [Discord server](https://discord.com/invite/4wvteUPphx)
|
||||||
|
or discuss on [GitHub Discussions](https://github.com/neurocyte/flow/discussions)
|
|
@ -15,6 +15,58 @@ command. The manual is included here for convenience.
|
||||||
* [Flow Control online help](/docs/help)
|
* [Flow Control online help](/docs/help)
|
||||||
|
|
||||||
|
|
||||||
|
## Basic Usage
|
||||||
|
```bash
|
||||||
|
flow file.zig:42 # Open at line 42
|
||||||
|
flow --language zig CMakeLists.txt # Force file type
|
||||||
|
flow --list-languages # Show all supported languages
|
||||||
|
flow --help # List of command line options
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Key Controls
|
||||||
|
| Command | Action |
|
||||||
|
|---------------------------|----------------------|
|
||||||
|
| `F1` | Open online manual |
|
||||||
|
| `F4` | Switch input mode |
|
||||||
|
| `Ctrl+Shift+P` or `Alt+x` | Command palette |
|
||||||
|
| `Ctrl+F2` | View all keybindings |
|
||||||
|
|
||||||
|
Run the `Edit keybindings` command to save the current keybinding mode to a
|
||||||
|
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
|
||||||
|
changes will take effect on restart.
|
||||||
|
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Configuration is mostly dynamically maintained with various commands in the UI.
|
||||||
|
It is stored under the standard user configuration path. Usually
|
||||||
|
`~/.config/flow` on Linux/FreeBSD/MacOS. %APPDATA%\Roaming\flow on Windows.
|
||||||
|
|
||||||
|
There are commands to open the various configuration files, so you don't have to
|
||||||
|
manually find them. Look for commands starting with `Edit` in the command
|
||||||
|
palette.
|
||||||
|
|
||||||
|
File types may be configured with the `Edit file type configuration` command.
|
||||||
|
You can also create a new file type by adding a new `.conf` file to the
|
||||||
|
`file_type` directory. Have a look at an existing file type to see what options
|
||||||
|
are available.
|
||||||
|
|
||||||
|
Logs, traces and per-project most recently used file lists are stored in the
|
||||||
|
standard user application state directory. Usually `~/.local/state/flow` on
|
||||||
|
Linux/FreeBSD/MacOS and %APPDATA%\Roaming\flow on Windows.
|
||||||
|
|
||||||
|
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
||||||
|
with common editor commands. We highly recommend rebinding them to keys that are
|
||||||
|
not generally used inside TUI applications.
|
||||||
|
|
||||||
|
For Kitty rebinding `kitty_mod` is usually enough:
|
||||||
|
```
|
||||||
|
kitty_mod ctrl+alt
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Developer Resources
|
## Developer Resources
|
||||||
|
|
||||||
* [Architecture overview](/docs/architecture)
|
* [Architecture overview](/docs/architecture)
|
||||||
|
|
34
content/downloads.smd
Normal file
34
content/downloads.smd
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
---
|
||||||
|
.title = "Downloads",
|
||||||
|
.date = @date("2025-10-15T11:14:32+02:00"),
|
||||||
|
.author = "CJ van den Berg",
|
||||||
|
.layout = "index.shtml",
|
||||||
|
.draft = false,
|
||||||
|
---
|
||||||
|
|
||||||
|
See the [installation guide](/installation) for instructions on downloading and
|
||||||
|
installing with the installer script.
|
||||||
|
|
||||||
|
## Releases
|
||||||
|
|
||||||
|
- [codeberg.org](https://codeberg.org/neurocyte/flow/releases/latest) (binaries & source)
|
||||||
|
- [github.com](https://github.com/neurocyte/flow/releases/latest) (binaries & source)
|
||||||
|
|
||||||
|
Or check your favorite local system package repository.
|
||||||
|
See [repology](https://repology.org/project/flow-control/versions) for available
|
||||||
|
versions.
|
||||||
|
|
||||||
|
|
||||||
|
## Nightly builds
|
||||||
|
|
||||||
|
- [flow-control.dev](https://git.flow-control.dev/neurocyte/flow-nightly/releases/latest) (source only)
|
||||||
|
- [codeberg.org](https://codeberg.org/neurocyte/flow-nightly/releases/latest) (binaries & source)
|
||||||
|
- [github.com](https://github.com/neurocyte/flow-nightly/releases/latest) (binaries & source)
|
||||||
|
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
- [flow-control.dev](https://git.flow-control.dev/neurocyte/flow)
|
||||||
|
- [github.com](https://github.com/neurocyte/flow)
|
||||||
|
- [codeberg.org](https://codeberg.org/neurocyte/flow)
|
||||||
|
- [sr.ht (sourcehut)](https://git.sr.ht/~neurocyte/flow)
|
|
@ -8,172 +8,48 @@
|
||||||
|
|
||||||
## a programmer's text editor
|
## a programmer's text editor
|
||||||
|
|
||||||
Flow Control is under active development, but usually very stable.
|
Flow Control is under active development, but very stable.
|
||||||
|
|
||||||
[]($video.siteAsset('video/flow-control.mp4').controls(true))
|
[]($video.siteAsset('video/flow-control.mp4').controls(true))
|
||||||
|
|
||||||
|
|
||||||
## 🚀 Features
|
## 🚀 Features
|
||||||
- **Lightning Fast** TUI with ≤6ms response times
|
- **Lightning Fast** TUI with ≤6ms frame times, **low latency** input handling
|
||||||
- **Tree-sitter** powered syntax highlighting
|
and smooth **animated scrolling**
|
||||||
|
- Intuitive UI with **tabs**, **scrollbars** and **palettes** with full
|
||||||
|
**mouse** support for all UI elements
|
||||||
|
- Support for more than **70 programming languages**, **zero
|
||||||
|
configuration** needed, via **tree-sitter** powered syntax highlighting
|
||||||
- **Language Server Protocol** pre configured support for most language servers
|
- **Language Server Protocol** pre configured support for most language servers
|
||||||
- Multi-cursor editing & mouse support
|
- Powerful **multi-cursor** editing and integrated **clipboard history**
|
||||||
- Cross-platform (Linux/macOS/Windows/Android/FreeBSD)
|
- Powerful configurable keybinding system that supports **modal** and
|
||||||
- Multiple keybinding modes
|
**non-modal** editing styles
|
||||||
- Flow Control (common GUI IDE style bindings)
|
- Multiple pre-configured **keybinding modes**
|
||||||
|
- Flow Control - GUI IDE style bindings (similar to vscode)
|
||||||
- Emacs
|
- Emacs
|
||||||
- Vim
|
- Vim
|
||||||
- Helix
|
- Helix
|
||||||
- Custom user bindings
|
- User created
|
||||||
- Hybrid rope/piece-table buffer system
|
- Hybrid rope/piece-table buffer system, edit **very large files** with
|
||||||
|
**thousands of cursors**
|
||||||
|
- Full **unicode** support, including support for the kitty text sizing protocol
|
||||||
|
- Runs on **Linux, FreeBSD, MacOS, Windows and Android** (under termux) with
|
||||||
|
easy **cross-compilation** to all supported targets
|
||||||
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
- A modern terminal with 24bit color and, ideally, kitty keyboard protocol support. Kitty,
|
- A modern terminal with **24bit color** and, ideally, **kitty keyboard
|
||||||
Foot and Ghostty are the recommended terminals at this time. Most other terminals
|
protocol** support. **Kitty**, **Foot** and **Ghostty** are the recommended
|
||||||
will work, but with reduced functionality.
|
terminals at this time. **Zellij** also works well. Most other terminals will
|
||||||
- NerdFont support. Either via terminal font fallback or a patched font.
|
work, but likely with reduced functionality.
|
||||||
- Linux, MacOS, Windows, Android (Termux) or FreeBSD.
|
- **NerdFont** support. Either via terminal font fallback or a patched font.
|
||||||
- A UTF-8 locale
|
- A **UTF-8** locale
|
||||||
|
|
||||||
## 📦 Installation
|
|
||||||
|
|
||||||
### Linux, MacOS and FreeBSD
|
|
||||||
|
|
||||||
Fetch and install the latest release to `/usr/local/bin` with the installation helper script:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -fsSL https://flow-control.dev/install | sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Install the latest nightly build:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly
|
|
||||||
```
|
|
||||||
|
|
||||||
with debug symbols:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --debug
|
|
||||||
```
|
|
||||||
|
|
||||||
See all avalable options for the installer script:
|
|
||||||
|
|
||||||
```
|
|
||||||
curl -fsSL https://flow-control.dev/install | sh -s -- --help
|
|
||||||
```
|
|
||||||
|
|
||||||
Install the installer for easy updating of flow:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo curl -fsSL -o /usr/local/bin/update-flow https://flow-control.dev/install
|
|
||||||
sudo chmod +x /usr/local/bin/update-flow
|
|
||||||
update-flow
|
|
||||||
```
|
|
||||||
|
|
||||||
At the top of the installer are variables to pre-answer the installation questions.
|
|
||||||
Configure them to your liking.
|
|
||||||
|
|
||||||
|
|
||||||
### Windows
|
|
||||||
|
|
||||||
For Windows the installer scripts are a little different.
|
|
||||||
|
|
||||||
Fetch and install the latest release to `%AppData%/Roaming/flow/bin`:
|
|
||||||
|
|
||||||
```
|
|
||||||
Invoke-RestMethod "https://flow-control.dev/install.ps1" | Invoke-Expression
|
|
||||||
```
|
|
||||||
|
|
||||||
Install the latest nightly build:
|
|
||||||
|
|
||||||
```
|
|
||||||
Invoke-RestMethod "https://flow-control.dev/install-nightly.ps1" | Invoke-Expression
|
|
||||||
```
|
|
||||||
|
|
||||||
Install the latest nightly build with pdb debug symbol files:
|
|
||||||
|
|
||||||
```
|
|
||||||
Invoke-RestMethod "https://flow-control.dev/install-debug.ps1" | Invoke-Expression
|
|
||||||
```
|
|
||||||
|
|
||||||
The Windows installer will also install itself as `update-flow.ps1` so you can just
|
|
||||||
run `update-flow` in a terminal to update to the latest release or nightly.
|
|
||||||
|
|
||||||
|
|
||||||
### Prebuilt Binaries
|
|
||||||
- Stable: [Releases](https://github.com/neurocyte/flow/releases/latest)
|
|
||||||
- Nightly: [Nightly Builds](https://github.com/neurocyte/flow-nightly/releases/latest)
|
|
||||||
|
|
||||||
Or check your favorite local system package repository.
|
|
||||||
|
|
||||||
### Build from Source
|
|
||||||
```bash
|
|
||||||
# Basic build
|
|
||||||
zig build -Doptimize=ReleaseSafe
|
|
||||||
|
|
||||||
# Cross-compile examples
|
|
||||||
zig build -Dtarget=x86_64-windows --prefix zig-out/win64
|
|
||||||
zig build -Dtarget=aarch64-linux-musl --prefix zig-out/arm-linux
|
|
||||||
```
|
|
||||||
|
|
||||||
The binary is:
|
|
||||||
|
|
||||||
```
|
|
||||||
zig-out/bin/flow
|
|
||||||
```
|
|
||||||
|
|
||||||
It is statically built (by default) and contains all the required tree-sitter parsers
|
|
||||||
and queries. No additional runtime files are required. Place it in your path for convenient
|
|
||||||
access.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
Configuration is mostly dynamically maintained with various commands in the UI.
|
|
||||||
It is stored under the standard user configuration path. Usually `~/.config/flow`
|
|
||||||
on Linux/FreeBSD/MacOS. %APPDATA%\Roaming\flow on Windows.
|
|
||||||
|
|
||||||
There are commands to open the various configuration files, so you don't have to
|
|
||||||
manually find them. Look for commands starting with `Edit` in the command palette.
|
|
||||||
|
|
||||||
File types may be configured with the `Edit file type configuration` command. You
|
|
||||||
can also create a new file type by adding a new `.conf` file to the `file_type`
|
|
||||||
directory. Have a look at an existing file type to see what options are available.
|
|
||||||
|
|
||||||
Logs, traces and per-project most recently used file lists are stored in the
|
|
||||||
standard user application state directory. Usually `~/.local/state/flow` on
|
|
||||||
Linux/FreeBSD/MacOS and %APPDATA%\Roaming\flow on Windows.
|
|
||||||
|
|
||||||
Kitty, Ghostty and most other terminals have default keybindings that conflict
|
|
||||||
with common editor commands. We highly recommend rebinding them to keys that are
|
|
||||||
not generally used inside TUI applications.
|
|
||||||
|
|
||||||
For Kitty rebinding `kitty_mod` is usually enough:
|
|
||||||
```
|
|
||||||
kitty_mod ctrl+alt
|
|
||||||
```
|
|
||||||
|
|
||||||
## 🛠️ Basic Usage
|
|
||||||
```bash
|
|
||||||
flow file.zig:42 # Open at line 42
|
|
||||||
flow --language zig CMakeLists.txt # Force file type
|
|
||||||
flow --list-languages # Show all supported languages
|
|
||||||
flow --help # List of command line options
|
|
||||||
```
|
|
||||||
|
|
||||||
## ⌨️ Key Controls
|
|
||||||
| Command | Action |
|
|
||||||
|---------------------------|----------------------|
|
|
||||||
| `F4` | Switch input mode |
|
|
||||||
| `Ctrl+Shift+P` or `Alt+x` | Command palette |
|
|
||||||
| `Ctrl+F2` | View all keybindings |
|
|
||||||
|
|
||||||
Run the `Edit keybindings` command to save the current keybinding mode to a
|
|
||||||
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
|
|
||||||
changes will take effect on restart.
|
|
||||||
|
|
||||||
|
|
||||||
## 🛣️ Roadmap
|
## 🛣️ Roadmap
|
||||||
|
|
||||||
|
See our [devlog](/devlog/2025) for on-going updates from the development team.
|
||||||
|
|
||||||
**In Development**:
|
**In Development**:
|
||||||
- LSP completion support
|
- LSP completion support
|
||||||
- Persistent undo/redo
|
- Persistent undo/redo
|
||||||
|
@ -184,5 +60,3 @@ changes will take effect on restart.
|
||||||
- Plugin system
|
- Plugin system
|
||||||
- Multi-terminal sessions
|
- Multi-terminal sessions
|
||||||
|
|
||||||
## 💬 Community
|
|
||||||
Join our [Discord server](https://discord.com/invite/4wvteUPphx) or discuss on [GitHub Discussions](https://github.com/neurocyte/flow/discussions)
|
|
||||||
|
|
94
content/installation.smd
Normal file
94
content/installation.smd
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
---
|
||||||
|
.title = "Installation",
|
||||||
|
.date = @date("2025-10-15T11:14:32+02:00"),
|
||||||
|
.author = "CJ van den Berg",
|
||||||
|
.layout = "index.shtml",
|
||||||
|
.draft = false,
|
||||||
|
---
|
||||||
|
|
||||||
|
- [Linux, MacOS, FreeBSD and Termux](#posix)
|
||||||
|
- [Windows](#windows)
|
||||||
|
- [Source](#source)
|
||||||
|
- [Tarball install](#tarball)
|
||||||
|
|
||||||
|
[]($section.id("posix"))
|
||||||
|
## Linux, MacOS, FreeBSD and Termux
|
||||||
|
|
||||||
|
Fetch and install the latest release with the installation helper script:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -fsSL https://flow-control.dev/install | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Install the latest nightly build:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly
|
||||||
|
```
|
||||||
|
|
||||||
|
with debug symbols:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -fsSL https://flow-control.dev/install | sh -s -- --nightly --debug
|
||||||
|
```
|
||||||
|
|
||||||
|
See all avalable options for the installer script:
|
||||||
|
|
||||||
|
```
|
||||||
|
curl -fsSL https://flow-control.dev/install | sh -s -- --help
|
||||||
|
```
|
||||||
|
|
||||||
|
Install the installer for easy updating of flow:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo curl -fsSL -o /usr/local/bin/update-flow https://flow-control.dev/install
|
||||||
|
sudo chmod +x /usr/local/bin/update-flow
|
||||||
|
update-flow
|
||||||
|
```
|
||||||
|
|
||||||
|
At the top of the installer are variables to pre-answer the installation
|
||||||
|
questions. Configure them to your liking.
|
||||||
|
|
||||||
|
|
||||||
|
[]($section.id("windows"))
|
||||||
|
## Windows
|
||||||
|
|
||||||
|
For Windows the installer scripts are a little different.
|
||||||
|
|
||||||
|
Fetch and install the latest release to `%AppData%/Roaming/flow/bin`:
|
||||||
|
|
||||||
|
```
|
||||||
|
Invoke-RestMethod "https://flow-control.dev/install.ps1" | Invoke-Expression
|
||||||
|
```
|
||||||
|
|
||||||
|
Install the latest nightly build:
|
||||||
|
|
||||||
|
```
|
||||||
|
Invoke-RestMethod "https://flow-control.dev/install-nightly.ps1" | Invoke-Expression
|
||||||
|
```
|
||||||
|
|
||||||
|
Install the latest nightly build with pdb debug symbol files:
|
||||||
|
|
||||||
|
```
|
||||||
|
Invoke-RestMethod "https://flow-control.dev/install-debug.ps1" | Invoke-Expression
|
||||||
|
```
|
||||||
|
|
||||||
|
The Windows installer will also install itself as `update-flow.ps1` so you can
|
||||||
|
just run `update-flow` in a terminal to update to the latest release or nightly.
|
||||||
|
|
||||||
|
|
||||||
|
[]($section.id("source"))
|
||||||
|
## Build from Source
|
||||||
|
|
||||||
|
See the [Building section of `README.md`](https://git.flow-control.dev/neurocyte/flow/src/branch/master/README.md#building)
|
||||||
|
in the source repository for build instructions.
|
||||||
|
|
||||||
|
|
||||||
|
[]($section.id("tarball"))
|
||||||
|
## Manual install from tarballs or zip files
|
||||||
|
|
||||||
|
See the [downloads](/downloads) page for binaries that you can manually install.
|
||||||
|
Just download, unpack, and place the binary anywhere you want. There are no
|
||||||
|
runtime files required and configuration directories and files are created on
|
||||||
|
demand.
|
||||||
|
|
|
@ -15,23 +15,15 @@
|
||||||
<nav id="menu" class="centered">
|
<nav id="menu" class="centered">
|
||||||
<ctx about="$site.page('')"><a href="$ctx.about.link()" text="$ctx.about.title">home</a></ctx>
|
<ctx about="$site.page('')"><a href="$ctx.about.link()" text="$ctx.about.title">home</a></ctx>
|
||||||
•
|
•
|
||||||
<a href="https://github.com/neurocyte/flow/releases/latest">downloads</a>
|
<ctx about="$site.page('installation')"><a href="$ctx.about.link()" text="$ctx.about.title">installation</a></ctx>
|
||||||
•
|
•
|
||||||
<a href="https://github.com/neurocyte/flow-nightly/releases/latest">nightly</a>
|
<ctx about="$site.page('downloads')"><a href="$ctx.about.link()" text="$ctx.about.title">downloads</a></ctx>
|
||||||
•
|
•
|
||||||
<ctx :if="$site.page('devlog').subpages().first?()"><a href="$if.link()">devlog</a></ctx>
|
<ctx :if="$site.page('devlog').subpages().first?()"><a href="$if.link()">devlog</a></ctx>
|
||||||
•
|
•
|
||||||
<a href="https://git.flow-control.dev/neurocyte/flow">source</a>
|
|
||||||
•
|
|
||||||
<ctx about="$site.page('docs')"><a href="$ctx.about.link()" text="$ctx.about.title">docs</a></ctx>
|
<ctx about="$site.page('docs')"><a href="$ctx.about.link()" text="$ctx.about.title">docs</a></ctx>
|
||||||
•
|
•
|
||||||
<a href="https://discord.com/invite/4wvteUPphx">Discord</a>
|
<ctx about="$site.page('community')"><a href="$ctx.about.link()" text="$ctx.about.title">community</a></ctx>
|
||||||
•
|
|
||||||
<a href="https://github.com/neurocyte/flow">GitHub</a>
|
|
||||||
•
|
|
||||||
<a href="https://codeberg.org/neurocyte/flow">Codeberg</a>
|
|
||||||
•
|
|
||||||
<a href="https://git.sr.ht/~neurocyte/flow">sourcehut</a>
|
|
||||||
</nav>
|
</nav>
|
||||||
<script src="$site.asset('js/index.js').link()"></script>
|
<script src="$site.asset('js/index.js').link()"></script>
|
||||||
<super>
|
<super>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue