All the docs contained in this group of commits are marked as not draft, except for editor, which I will be working as I get more experience and get more precise on the various topics related to the editor and groups of functions.
76 lines
No EOL
2.8 KiB
Text
76 lines
No EOL
2.8 KiB
Text
---
|
|
.title = "Helix Mode",
|
|
.date = @date("2025-10-10T00:00:00"),
|
|
.author = "Igor Támara",
|
|
.layout = "tutorial.shtml",
|
|
.draft = false,
|
|
.custom = {
|
|
.githubedit = "/docs/mode/helix.smd",
|
|
.codepath = "src/tui/mode/helix.zig",
|
|
},
|
|
---
|
|
|
|
This document describes implementation of Helix Mode.
|
|
|
|
[]($section.id('what'))
|
|
## 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 with 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
|
|
workaround, remember that it's possible to bounce back to Flow mode
|
|
if needed.
|
|
|
|
[]($section.id('enhancing'))
|
|
## Enhancing hx mode
|
|
|
|
This is a programmer's 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).
|
|
|
|
[]($section.id('pickers'))
|
|
### Pickers
|
|
|
|
Flow hx mode offers most of the picker types equivalents with `panels`
|
|
and [palettes](/docs/architecture/palette). 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 with 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.
|
|
|
|
[]($section.id('next'))
|
|
## Next steps
|
|
|
|
Said all of 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).
|
|
|
|
Join the [#helix-mode channel](https://discord.gg/sxdejrAA) and get in
|
|
touch with other hx users. |