Flow Control now has it’s first language server based feature. Goto definition. F12 or Alt-MouseLeft will jump to the definition of the symbol at the cursor. Also, flow now has cross file location history support, so you can jump back/forward via Alt-Left/Right or Mouse8/9.
Today’s update replaces notcurses with libvaxis for rendering to the terminal.
This brings much, much broader terminal support with it. Flow Control will now run pretty much anywhere, including Windows! Native Windows builds do not yet support mouse input and there may be a few bugs as it’s so new. WSL builds do not have these limitations and will now run in Windows Terminal. Also, now that Flow Control has way fewer C dependencies it can be easily cross-compiled. Build the aarch64-linux-musl target, upload it to your Android phone and run it it Termux!
Keybinding support varies dramatically from terminal to terminal, so I still recommend you run Flow in kitty or ghostty if you can.
Just tacking on a note that WezTerm supports kitty protocol (must be enabled), so your program should work fine there as well.
I haven’t confirmed that, if I ever get around to doing so I’ll edit this post with an update.
Looks nice!
I did a little testing and, yes, wezterm seems to support kitty keyboard protocol if you manually enable it. Denying any knowledge of kitty keyboard protocol unless you set a value in a configuration script seems a little silly to me though. Also, a few basic keyboard commands still don’t work (like ctrl-shift-arrows). I guess those are probably conflicting keybindings that need more config to fix.
Paste doesn’t work either. Probably incomplete OSC52 support, or possibly another config variable to enable it.
So I’m not going to recommend wezterm just yet, but it does seem fairly promising.
Configurability is part of the point of WezTerm, so a lot of stuff is feature flagged.
If you’ve found bugs in their implementation of the protocol, I’m sure they’d appreciate you raising an issue so they can track it.
I haven’t tested Flow Control, but when I was playing around with making a keyboard event handler for the Kitty Keyboard Protocol, I tested it on Alacritty, which as of version 0.12.0 (i think) supports KKP.
That being said, tmux does not. I discovered that after writing up an extensive bug report for alacritty thinking they had messed up their KKP support.
Flow Control now has a command palette with keybinding hints and fuzzy search. This should make it a lot easier to learn/discover the available commands and their keybindings. Press C-S-p
(or :
in vim mode) to open it.
hello ,
“zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl --prefix zig-out/aarch64-l”
I’m with Linux 86x64 does it work…
Please.
Yes, this should work:
zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl --prefix zig-out/aarch64-linux -Dcpu=baseline
What issue are you seeing? An error or something? Are you using zig-0.13.0?
zig-0.13.0.
But it was by reading on GitHub, where it was specified…
This editor is an amazing project, and I’m looking forward to what’s to come. Thank you for your hard work!
You can now customize your keybindings with the Edit key bindings
command. This will open the keybindings json file in the configuration directory for the mode you are using. If the file does not yet exist it will be created from the built-in configuration. You can also save your keybinding configuration under a new file name to create a whole new keybinding mode.
have to wait till you implement more of the helix commands, cause its pretty unusable in helix mode atm
but looks cool, will be watching
Yes, there are a lot of bindings for helix commands that don’t exist yet. Most of them are fairly trivial to implement though.
You are very welcome to open one or more feature requests to help prioritize which helix bindings are most important.
hello:
I tested Flow and I like it, but I have some questions:
a) Is there a visualization mode and an insertion mode like in Helix?
b) Why can’t I start it from a VTE terminal that I usually build for my programs, even though Helix works with it?
a) There is a Helix keybinding mode that has modal NOR/INS/SEL modes. It is not really complete, there are many missing bindings. You are very welcome to come and help us prioritize which bindings get implemented. There is also a Vim binding mode which has modal NORMAL/INSERT/VISUAL modes.
b) You’ll have to provide more specific details. Why can’t you start it? Flow works with pretty much every terminal I’ve tried it with. Not all terminals support kitty keyboard protocol, but flow should still work. You just won’t be able to use all keybindings. Key bindings are configurable now though in the latest Flow Control version so you can work around it. Also, the Vim & Helix modes tend to use keybindings that work with legacy terminals because of their history.
One thing I’ll add, that I learned while writing a Kitty Keyboard Protocol library, is that TMUX doesn’t support it, so if you are running tmux, even on a terminal that does support KKP, you won’t get them.
Good point. Also, Zellij does support KKP.
Flow Control’s first binary release: