68 lines
No EOL
2.6 KiB
Text
68 lines
No EOL
2.6 KiB
Text
---
|
|
.title = "Helix Mode",
|
|
.date = @date("2025-10-10T00:00:00"),
|
|
.author = "Igor Támara",
|
|
.layout = "tutorial.shtml",
|
|
.draft = false,
|
|
.custom = { .githubedit = "https://github.com/neurocyte/flow-website/tree/master/content/docs/mode/helix.md"},
|
|
---
|
|
|
|
This document describes implementation of Helix Mode.
|
|
|
|
## What and what not
|
|
|
|
The first and biggest difference is that Flow has a mode that
|
|
emulates Helix, or at least has equivalent of the worthiest
|
|
actions that can be done in Helix. The conversely is not true.
|
|
|
|
`:` opens up Flow's rich command palette that might have
|
|
functionalities Helix users are used to have, if you find
|
|
something missing, it's possible to
|
|
[open a Feature Request](https://github.com/neurocyte/flow/issues),
|
|
make sure to review [other issues](https://github.com/neurocyte/flow/issues?q=is%3Aissue%20state%3Aopen%20label%3Ahelix-mode)
|
|
to avoid repeating or see if there is anyone interested
|
|
in porting on [Discord](https://discord.gg/kzJC9fA7) to ask
|
|
if or there is a workaoround, remember that it's possible
|
|
to bounce back to Flow mode if needed.
|
|
|
|
## Enhancing hx mode
|
|
|
|
This is a programmer editor, you are more than welcome to
|
|
enhance to suit your needs that maybe coincide with others.
|
|
|
|
Please take a look at [architecture](/docs/architecture) and
|
|
[contributing](/docs/contributing) for an overview and the
|
|
mechanics of getting your changes into Flow.
|
|
|
|
hx mode is modal kind, the same as vim mode, and the file
|
|
that has the particular work to make it real is in
|
|
`src/tui/mode/helix.zig`, adding a `command` and the
|
|
corresponding `meta` is what is required.
|
|
[More on commands](/docs/architecture/command).
|
|
|
|
### Pickers
|
|
|
|
Flow hx mode offers most of the picker types equivalents
|
|
with `panels` and `palettes`. Example of panels are
|
|
the `g` `r` (go to reference from lsp) and `space` `/`
|
|
(a.k.a find in files). Examples of `palettes` are
|
|
`space` `b` to pick a buffer or `space` `f` to open a
|
|
file in your project. Panels open below the editor
|
|
while palettes open overlapping the working area.
|
|
|
|
One medium sized project is to create a widget that
|
|
has one input widget, two panels, on the left the
|
|
list of options and on the right the preview of
|
|
the selected option and offer various keybindings
|
|
to manipulate the objects inside both panels with
|
|
filtering.
|
|
|
|
Given this, it's possible to start contributing via
|
|
pull requesting [keybinds](/docs/architecture/keybind),
|
|
[commands](/docs/architecture/command),
|
|
[palettes](/docs/architecture/palette), or the
|
|
special widget mentioned previously.
|
|
|
|
|
|
More about the [architecture](/docs/architecture) or jump to
|
|
[contribution guidelines](/docs/contributing). |