• v0.7.2 af7c97acb9

    Release 0.7.2 Stable

    neurocyte released this 2026-02-14 16:19:07 +00:00 | 56 commits to master since this release

    Signed by neurocyte
    GPG key ID: 8EB1E1BB660E3FB9

    Fixes

    • make sure gen_version is never allowed to fail for release builds

    Contributors

    CJ van den Berg

    Downloads

    flow-control.dev (source only)
    codeberg.org (binaries & source)
    github.com (binaries & source)

    Downloads
  • v0.7.1 6f9132c3b2

    Release 0.7.1 Stable

    neurocyte released this 2026-02-14 15:42:22 +00:00 | 57 commits to master since this release

    Signed by neurocyte
    GPG key ID: 8EB1E1BB660E3FB9

    New Features

    • add relative commit age to git blame info

    Fixes

    • expand ~ when detecting selected file paths in open file command
    • fix dragging of tabs to empty tab bar area

    Contributors

    CJ van den Berg

    Downloads

    flow-control.dev (source only)
    codeberg.org (binaries & source)
    github.com (binaries & source)

    Downloads
  • v0.7.0 e044d1111e

    Release 0.7.0 Stable

    neurocyte released this 2026-02-12 18:17:01 +00:00 | 63 commits to master since this release

    Signed by neurocyte
    GPG key ID: 8EB1E1BB660E3FB9

    Announcement

    New Features

    Completion

    Flow now has full inline auto completion support! There is a new
    dropdown UI with support for insert and replace completion styles while
    editing inline. An info popup box can display completion and hover
    documentation and there are commands to toggle modes and styles
    interactively.

    There are three completion trigger modes available:

    • manual - completion is triggered via keybind to the completion command
    • automatic - completion is triggered whenever a trigger character is inserted
    • every_keystroke - completion is triggered on every insert operation

    Trigger characters are provided by the current document's LSP. Note that a
    completion request may not always return results and in that case no
    completion UI will be shown. Completion items that insert LSP snippets are
    now supported and the next snippet tab stop can be selected with the tab
    key. There are two keybind modes for inline completion. standard mode
    will steal the up/down and enter keys from the main editor and
    noninvasive mode that will not. noninvasive mode requires that you use
    the alternate keybindings ctrl+n/ctrl+p to pick a completion item
    and tab to select it. These keybindings also work in standard mode.

    The original palette style completion UI is also still available and may be
    selected with the toggle_completion_style command.

    Keybinds:

    • ctrl+space or ctrl+. - manually trigger completion
    • ctrl+space (when completing) - toggle info box, info panel or no info
    • up, down, ctrl+p, ctrl+n - pick a completion item from the list
    • enter, tab - select and insert a completion
    • esc - cancel completion
    • ctrl+k r - toggle insert or replace completion mode
    • alt+f9 - select next completion dropdown UI widget style
    • shift+alt+f9 - select next info box widget style

    Configuration options:

    • completion_trigger
    • completion_style
    • completion_insert_mode
    • completion_info_mode
    • dropdown_keybinds - standard or noninvasive
    • dropdown_limit

    Vertical Splits

    Flow Control can now show multple editors in vertical, side by side, views.
    Each split can have it's own tab bar and tabs may be moved between splits
    with mouse or keyboard commands. Commands or palettes that navigate to
    files now have an "alternate" mode that will open the file in a new split
    if it is not already open.

    Keybinds:

    • ctrl+\ - add_split
    • ctrl+k w - close_split
    • ctrl+1 to ctrl+8 - focus_split
    • ctrl+page_down - select tab right
    • ctrl+page_up - select tab left
    • ctrl+shift+page_down - move tab right
    • ctrl+shift+page_up - move tab left
    • shift+enter - (palette or command) navigate to file in a new split

    Centered View

    When only one split is open on a wide screen you can now center the view.
    The width of the centered view is controllable with keybinds and/or the
    centered_view_width configuration option.

    Keybinds:

    • ctrl+k x - toggle centered view
    • alt+- - shrink centered view
    • alt+= - expand centered view

    Horizontal scrolling

    Horizontal scrolling with a horizontal mouse wheel is now supported. Also,
    scrolling the regular vertical mouse wheel with the shift key pressed
    will now scroll horizontally. Fast scroll (hold the 'alt' key) is also
    supported for horizontal scrolling.

    Git Diffs

    Diff markers in the editor gutter are now based on the git HEAD commit if
    the current project is a git repository. Also, the new commands
    goto_next_change and goto_prev_change will move the primary cursor to
    the next/previous marker in the gutter.

    Keybinds:

    • alt+f5 - goto_next_change
    • alt+shift+f5 - goto_prev_change

    Blame

    Git blame information for the current line is displayed in the remaining on
    the line. This can be toggled with the toggle_inline_vcs_blame command.

    Keybinds:

    • ctrl+shift+g alt+b - toggle_inline_vcs_blame

    Variable Expansions

    Tasks and filter bindings may now use variable expansions in their
    arguments. Variable names to be expanded should be wrapped in {{ and
    }}.

    The following variables are available in this release:

    • {{project}} - The path to the current project directory
    • {{file}} - The path to the current file
    • {{line}} - The line number of the primary cursor
    • {{column}} - The column of the primary cursor
    • {{selection}} - The current selection of the primary cursor
    • {{selections}} - All current selections seperated by NL characters
    • {{selectionsZ}} - All current selections separated by NULL characters
    • {{indent_mode}} - The current indent mode (tabs or spaces)
    • {{indent_size}} - The current indent size (in columns)
    • {{blame_commit}} - The blame commit ID for the line at the primary cursor (if there is one)

    Highlight References

    Added support for the LSP textDocument/documentHighlight request as the
    highlight_references command. Flow will automatically mark the results of
    this query as matches so you can use the the goto_next_match and
    goto_prev_match commands to navigate them. highlight_references is also
    available as an idle action for automatic reference highlighting (See the
    Idle Actions secion below)

    Keybind:

    • ctrl+k i

    Auto Run Commands, Auto Backups & Session Saving

    auto_run_commands and auto_run_time_seconds can be used to configure
    commands that will run automatically like a cron job. save_session and
    save_session_quiet commands were also added to make auto run useful as a
    backup tool.

    The default configuration for auto_run_commands is save_session_quiet
    and the default for auto_run_time_seconds is 120, so in the (rare!) event
    of a flow crash you can return to flow with minimal data loss with flow --restart-session.

    The save_session_and_quit command was also added for when you want to
    manuall exit and restart flow with flow --restart-session.

    Idle Actions & Commands

    Idle actions & commands run whenever the user pauses their interaction with
    flow. Actions are specific functions designed to run on idle. At the moment
    just hover and highlight_references. These actions have commands to
    toggle them interactively. The idle timeout is configured with the
    input_idle_time_ms option.

    Find Mode

    There are now three find modes. Exact match, case folded (insensitive)
    and auto mode. Auto mode (the new default) selects to do an exact match
    search or case folded search depending on whether the query term contains
    case foldable characters or not. So if you enter a lowercase search term
    you get a case insensitive search. Also, auto find mode (which searches as
    soon as you select something) now has a command (and a keybind) to toggle
    it on/off.

    Keybinds:

    • alt+c (in find mode) - toggle exact or case folded search mode
    • alt+f3 - toggle auto find mode

    Key Hints

    There is a new key hints overlay that displays all currently available
    keybindings. It can be explicitly activated with alt+f1 or ctrl+?, and
    will be automatically displayed when an incomplete keybinding sequence is
    waiting for additional input. The key hints overlay is invisible to mouse
    events and can be active in any flow input mode or submode.

    Keybinds:

    • alt+f1 or ctrl+? - show/hide the key hints overlay
    • shift+f1 or ctrl+alt+? - next key hints page
    • shift+alt+f9 - next widget style for key hints

    Restart with Sudo

    You can now restart the flow session with sudo to save files with root
    permissions. The current session, with unsaved file content (but currently
    not undo info), is first saved and then automatically restored when flow is
    restarted by sudo. If the sudo command fails for any reason the saved
    flow session can be reloaded as usual with flow --restart-session. Flow
    now displays a red lock symbol in the status bar and a (configurable)
    warning message on the home screen when running with root permissions.

    Flow can now follow symlinks when writing files and scanning the project
    tree. New options retain_symlinks, follow_directory_symlinks and
    maximum_symlink_depth control symlink behavior. Symlink following on file
    save (retain_symlinks) is now enabled by default.
    follow_directory_symlinks when scanning the project tree is not enabled
    by default.

    Symbols Palette

    Added support for the LSP textDocument/documentSymbol request with a
    palette interface to browse and filter symbols in the current document.

    Keybinds:

    • ctrl+shift+o - open the symbols palette
    • enter - jump to the highlighted symbol
    • shift+enter - select the highlighted symbol
    • up/down/pgup/pgdn/home/end - browse the symbols list
    • anything else - filter the symbols list with a fuzzy search
    • esc - cancel and return to original document location

    Project switching

    Switching projects without exiting Flow Control (ctrl+r) now restores
    open tabs and splits making for a much smoother multi-project workflow.

    Last Palette

    You can now re-open the last used palette with the last_palette command.
    This restores the state of the palette when last used, which is very
    useful, for example, for browsing through multiple files that match a fuzzy
    query.

    Keybinds:

    • ctrl+, - open lasted used palette
    • [helix] space ' - open lasted used palette

    Goto Matching Bracket

    Added the classic goto matching bracket command.

    Keybinds:

    • flow - ctrl+shift+\
    • emacs - C-M-p C-M-n
    • vim - %
    • helix - mm

    Reflow text

    The reflow command can soft wrap paragraphs of text. There is basic
    detection of the line prefix to aid in reflowing indented or commented
    blocks of text. Blank lines are preserved as paragraph boundaries. The
    default line width for reflow is configured with the reflow_width
    config option and can also be specified for the current, and any following,
    reflow operation with an integer command parameter. (alt+1, etc.)

    Keybinds:

    • alt+q - reflow paragraph

    LSP Configuration

    The open_lsp_config_global and open_lsp_config_project will open a json
    file where you can add LSP configuration that is sent to the LSP on startup
    via the LSP initializationOptions init request field. Project and global
    configurations are not merged in anyway and project config overrides global
    config entirely. The project (and global) LSP configuration is stored in
    the flow configuration directory, even for project specific config.

    Language support changes

    • Set default lua formatter to stylua
    • Set ty as default lsp for python
    • Update ziggy and superhtml

    Helix mode

    • Added switch_to_lowercase
    • Add cursors with selections for selected lines (Alt+s)
    • maw and maW support
    • miw and miW support

    Themes

    • Changed the default theme to the more modern ayu-mirage
    • Added selenized theme
    • Added ethereal theme

    Misc minor features and new commands

    • add gutter_width_mode and gutter_width_minimum/maximum config options
    • add more modes to linenumstate status bar widget
    • add uuidgen keybind
    • add option to disable sgr pixel mode support
    • add show_bottom_bar_grip config option
    • make expand_selection and shrink_selection multicursor aware
    • add option to align inline diagnostics to the left
    • add toggle_command_logging command
    • add select_to_line_vim command
    • make goto in flow select mode select to line
    • map kp_ movement keys as regular keys if the kp_ variants are not explicitly mapped
    • add panel border to logview
    • subscribe to keybind_match events in inputview and display them
    • add ignore_filter_stderr config option
    • add config option keybind_mode with workaround ignore_alt_text_modifiers
    • add show_local_diagnostics_in_panel config option
    • add whitespace_mode external
    • add modes_can_change_cursor configuration option
    • add results count to generic palette
    • add results count to open_recent palette
    • add scrollbar_auto_hide config option
    • add pane_style config option
    • add option to disable modal dim effect
    • add switch_input_mode command to change keybind mode in a mini mode
    • add value type descriptions to config files
    • enable indent whitespace_mode by default
    • bind open_config to alt+f5
    • add FLOW_CONFIG_DIR env var to override configuration directory
    • propagate indent guides across blank lines
    • add path segment completion to open_recent palette

    Fixes

    There have been many, many fixes since the last release. Some big, some
    small. Please see the full commit & issue history for the full details as
    there are too many to list here.

    Contributors

    Many, many thanks to all who contributed to this release!

    CJ van den Berg
    Igor Támara
    Miguel Granero
    Danylo Kondratiev
    Jakob Ingvast
    Palanix
    Ian Johnson
    Janne Hellsten
    xdBronch

    Downloads

    flow-control.dev (source only)
    codeberg.org (binaries & source)
    github.com (binaries & source)

    Downloads
  • v0.6.0 98855a73e4

    Release 0.6.0 Stable

    neurocyte released this 2025-11-05 22:00:11 +00:00 | 829 commits to master since this release

    Signed by neurocyte
    GPG key ID: 8EB1E1BB660E3FB9

    New Features

    Many features with new default keybindings have been added. Keybinding mentioned
    in these release notes are for Flow mode unless otherwise mentioned. Please
    check the command palette or the online command & keybinding reference
    (ctrl+f2 or ctrl+k ctrl+s) for the active keybindings in other modes.

    LSP Completion

    LSP completion suggestions support has been added. Completion requests are
    triggered with ctrl+space and supports fuzzy search of completion suggestions.
    Accept a suggestiong with Return or Tab.

    Clipboard history

    A history of cut & copy operations can be opened with shift+alt+v. The history
    is grouped by multi-cursor operations, so you can copy with multiple cursors and
    then paste with a single cursor or multiple cursors. Paste operations now accept
    an integer argument (alt+1, alt+2, etc.) to select a group from the history
    to paste without first opening the clipboard history.

    Tabbar Tab Improvements

    Tabs in the tabbar have received many quality of life improvements. There is now
    a file type icon, and on hover, a close icon. Tabs can be dragged to a new
    position with the mouse, or re-ordered with the keyboard with the new keybindings
    ctrl+shift+page_up and ctrl+shift+page_down. Recently closed tabs can be
    re-opened with ctrl+shift+t.

    AST selection & navigation improvements

    The expand_selection command to expand the selection to the parent AST node
    has been improved and now should work in any sitution. shrink_selection and
    the various sibling node selection commands will now select the node at the
    cursor if there is no selection.

    Tasks

    Tasks can now be added and deleted directly from the run task menu. Also the
    run_task command now accepts a string and with add and run a task in one step,
    which is useful for running tasks directly from the command line. For example:

    flow --exec 'run_task:git grep -n TODO'
    

    Automatic Light & Dark mode selection

    If your terminal supports it, flow will now select a theme to use based on the
    system color scheme. The light mode and dark mode themes are independently
    configurable. There is also a toggle command in flow to manually switch modes
    bound to alt+f11, and a command line argument.

    Widget styles

    Palettes and menus can now be display in a range of different styles. You can
    switch through the available styles while a widget has focus with the alt+f9
    keybinding. The selected widget style is persisted on a per widget type basis.

    Goto & Byte Offsets

    The goto mini mode now supports {row}:{column} syntax. Also, pressing b in
    goto mini mode will toggle goto byte offset mode. Byte offsets are also
    supported on the command line by prefixing the offset with the letter 'b'. For
    example:

    flow src/main.zig:b123
    

    Also, goto and goto_offset commands now accept integer parameters to directly
    jump.

    Underline mode

    Underline mode, triggered with ctrl+_, ctrl+= or ctrl+plus, will underline
    the current line with various characters.

    Git status

    A new git status palette lists changed and untracked files and lets you open
    them. It may be opened with the ctrl+shift+g keybind or by clicking on the
    git branch widget in the status bar.

    Kitty extensions for unicode widths & multi cursors

    We now support kitty char width protocol extension for much better unicode
    support in kitty. We also support kitty's multi-cursor protocol extensions to
    show proper terminal cursors when editing with multiple cursors.

    Tab width settings

    The tab width may now be interactively changed on a per buffer basis and there
    are new commands to set the tab width for the current buffer, session and
    globally.

    FreeBSD

    We now produce binary release for FreeBSD, thanks to Zig 0.15 support for
    FreeBSD cross-compilation.

    Win32 improvements

    The win32 GUI renderer now supports wide characters. Also, filesystems without
    proper support for fstat will work. This means flow now works correctly under
    WSL1 and WSL2 on windows filesystems.

    Helix mode improvements

    Helix mode has seen major improvments, mostly thanks to Igor Támara.

    • :x alias for :wq
    • % select_all
    • zz scroll_view_center
    • shorcuts for buffers
    • closing and saving including close all and save all
    • close other buffers and reload all
    • feature parity with helix copy paste (P before, R replace, r after)
    • zt zc zb scroll keybinds and G support
    • space g bound to open changed and new files reported by git
    • F, T, t, f select and extension movements
    • match helix clipboard behaviour on delete
    • r to replace with a character
    • extend word to right

    Vim mode improvements

    Vim mode now has vim style aliases for buffer commands and a :qa! aliase for
    quit_without_saving.

    New file types

    • fsharp
    • commonlisp
    • csproj
    • msbuild props
    • gettext-po
    • awk
    • latex
    • nickel
    • elm
    • hcl
    • perl
    • verilog
    • reStructuredText

    New themes

    • kanagawa
    • alabaster

    Zig 0.15.2

    Flow now builds with Zig 0.15 and has been fully ported to the new std.Io.Writer
    interfaces.

    Misc Minor Changes

    • delete_line & select_line: bound to ctrl+shift+k and shift+alt+e
      respectively, with full multi-cursor and integer argument (repeat) support

    • insert_command_name (command & keybind reference) is now additionally bound to
      ctrl+k ctrl+s

    • plain move_begin is now bound to ctrl+k home

    • selections are sensibly merged if they overlap

    • files & projects

      • add open_most_recent_file command
      • allow open_file to open projects (directories)
      • make change_project call open_recent instead of jumping to last file
      • refresh open_recent palette when the project is done loading the file list
      • add flow mode keybind for find_in_files to overlay/palette mode
      • always list the active project first in the recent projects list
      • use case insenstive matching for file_browser completion
      • file_browser now completes into subdirs when there is only one match
    • display indent mode in status bar

    • improve markdown highlighting

    • configuration

      • make hover_time configurable
      • add option lsp_output "quiet" to reduce LSP log verbosity
    • add keybinds for keypad keys

    Fixes

    Many, many fixes. Too many to really list here. See commits marked fix: in the
    full git changelog for the full list of fixes.

    Contributors

    CJ van den Berg
    Igor Támara
    Jonathan Marler
    Loris Cro
    geemili
    Alex Rønne Petersen
    Daggerfall-is-the-best-TES-game
    jmcaine
    n0n
    zai1208

    Downloads

    flow-control.dev (source only)
    github.com (binaries & source)
    codeberg.org (binaries & source)

    Downloads
  • v0.4.0 7177da5a89

    v0.4.0 Stable

    neurocyte released this 2025-07-17 13:39:06 +00:00 | 1391 commits to master since this release

    Signed by neurocyte
    GPG key ID: 8EB1E1BB660E3FB9

    Celebrating 1000 github stars!

    New Features:

    • File type configuration - File types are now user configurable. Flow comes with a built-in
      list of file types that you can now modify and save to the configuration directory with the
      Edit file type configuration command. You can also create whole new file types simply by adding
      new files to the configuration directory in the file_type folder. The file type configuration
      defines the name, icon, description, formatter and language server, extensions and first line
      matching rules for a file type.

    • Auto Save - Enable auto save for the current buffer with the Toggle auto save command. This
      will automatically save the current buffer on every change. Debounce time is the currently
      configured frame rate. You can also enable auto save globally with the enable_auto_save
      configuration option, and limit which file type have auto save automatically enabled with the
      limit_auto_save_file_types configuration option (which is a list of file types, e.g.
      ["zig","rust"])

    • Highlight columns - Use the Toggle highlight columns (toggle_highlight_columns) command
      (bound to shift+f11 in flow mode) to enable a background dim effect at the configured column
      positions. The columns to highlight are configured via the highlight_columns configuration
      option.

    • Smart insert & delete - Brace pairs like (), [], {} and "" are now handled intelligently like
      in most code editors. Also, leading whitespace is now intelligently deleted in indent_size
      steps.

    • Format on save toggle - Format on save can now be toggled for the current buffer with the
      Toggle format on save command (toggle_format_on_save).

    • Git support - The status bar now shows a summary of the project's git status include current
      branch, number of changed files and number of unpushed/unpulled/stashed commits. Also, Flow now
      respects all of git's file ignore machanisms. Diffs do not yet use git, but that is planned.

    • Auto create parent directories - Flow will now automatically create parent directies if
      necessary when creating new files.

    • Tilde expansion - The Open file and Save as commands now correctly support expanding ~
      to the user's home directory.

    • Improved panic handling - Flow now has much improved panic handling and will leave the
      terminal in a known good state for all panics and segfaults. Additionally, release and nightly
      builds are now available with full debug information that will produce fully detailed backtraces
      on crash. This should help catch and fix those rare but pesky crashes. Please submit issues!
      Additionally, there is a configuration option to automatically start and connect gdb to a
      crashing flow instance. (linux only)

    • Terminal support - Flow now supports the kitty explicit text width protocol. This improves
      unicode character rendering on terminals that support it and superceeds wcwidth when available.

    • Language server protocol - Flow language server protocol backend is now fully asynchronous.
      This means that slow language servers cannot cause pauses while editing.

    • Language support

      • Added powershell syntax highlighting
      • Added hurl syntax highlighting
      • Added rpmspec syntax highlighting
      • Added protobuf syntax highlighting
      • Added uxntal syntax highlighting
      • Added C# formatter (csharpier)
      • Added PHP language server (intelephense)
    • Themes

      • Themes can now be customized with the Customise theme command
      • Added the entire base16 theme collection
      • Added the hypersubatomic theme
    • Home screen - The home screen text and list of commands can now be customized. Also, the
      current build version and build type are now shown in the bottom right corner of the home screen.

    • tree-sitter - Queries are now biniary compiled and stored in the flow executable. This
      greatly improves load times and reduces binary size. Also, incremental tree-sitter parsing is
      now checked for parsing errors and will fallback to a full re-parse if errors occur.

    • Integer arguments - Flow now supports integer arguments to many commands similar to emacs and
      vim. Related bindings have been added to Flow, Emacs, Vim and Helix modes. Pending integer
      arguments are shown in the status bar.

    • Vim mode improvements - Insert mode now produces automic undo steps, much more like Vim. Many
      vim mode bindings have been improved to more closely match Vim in their behaviour. Visual line
      mode was added.

    • Helix mode improvements - Many helix mode bindings have been improved to more closely match
      Helix in their behaviour.

    • New keybindings

      • Flow mode
        home/end now work in palettes
        ctrl+shift+F5 => reload file

      • Vim mode
        ctrl-c => exit insert mode
        :e! => reload file
        gt => next tab
        gT => previous tab
        ctrl-v => enter visual block mode
        < => unindent
        > => indent
        * => find work at cursor
        J => join line
        dgg => cut to beginning of buffer
        dG => cut to end of buffer
        f => move/select forward to char
        F => move/select backwards to char
        t => move/select forward until char
        T => move/select backwards until char
        N => goto previous match
        cc => change whole line
        C => change to end of line
        D => delete to end of line
        cw => change word right
        cb => change word left
        zz => scroll view to center
        w => [VISUAL] select word right (vim)
        W => [VISUAL] select word right
        e => [VISUAL] select to end of word right (vim)
        b => [VISUAL] select word left (vim)
        B => [VISUAL] select word left
        gg => [VISUAL] select to beginning of buffer
        G => [VISUAL] select to end of buffer
        c => [VISUAL] change word right
        C => [VISUAL] change to end of line
        D => [VISUAL] delete to end of line

    • New & updated commands

      • copy_file_name => [NEW] Copy the current buffer file name (and optionally line number) to the
        clipboard.
      • reload_file => [NEW] Reload the current file from disk (mainting undo).
      • find_file => [NEW] Alias for open_recent.
      • save_file_with_formatting => [NEW] Format and save the current file. Independant of the current
        value of enable_format_on_save.
      • save_file_without_formatting => [NEW] Save the current file without first formatting it.
        Independant of the current value of enable_format_on_save.
      • open_file => [UPDATED] Open file will now detect if the current selection contains a valid file
        path, including optional line number. If it does, it will be opened immediately without first
        prompting.
      • join_next_line => [UPDATED] Join next line will now collapse whitespace.
      • shell_execute_stream_output => [UPDATED] Will now follow output tail if cursor is at buffer
        end.
    • Command line improvements

      • --new-file => Create a new file when starting Flow.
      • --scratch => Create a new scratch (ephemeral) buffer when starting Flow.
      • --exec => You can now pass string arguments to commands by separating them from the command
        name with a colon.
    • UI improvements - Many minor usability and visual UI improvments

      • The results pane now closes if Find in files mode is cancelled
      • The clock widget now supports multiple digit styles
      • Status bar widgets can support parameters for width or style depending on the widget
      • Scrollbars and file icons can be enabled/disabled via configuration options
      • Inline diagnostics (and gutter symbols) can now be toggled with the
        Toggle display of diagnostics inline command
      • Line numbers can now be displayed in various styles (toggled via middle click and/or config)

    Fixes:

    • Add legacy input encoding compatible undo keybinding in emacs mode
    • Allow .cmd along with .exe for Windows executables
    • Fixed broken shifted keybinds for Helix mode
    • Fix palette crashing when its items's length is exceeded
    • Fix restoring of last_find_query from editor state
    • Fix make keybind module respect command.suppressed_errors list
    • Allow font names longer than 31 characters in win32
    • Fix panic on extra long plane names
    • Don't stop unindenting on blank or full unindented lines
    • Make sure to show_home if no files are opened via command line
    • Add workaround for LSPs sending junk null messages (omnisharp)
    • Don't truncate scratch buffer names in tabs and terminal title
    • Prevent unexpected message errors on missing LSP binary
    • Replace std.unicode.utf8Decode with safe function that cannot panic on invalid UTF-8 input
    • nudge_delete should handle cursor moving to same line as delete
    • Remove multithreaded buffer access in background async differ
    • Remove multithreaded buffer access in project_manager
    • Word/line wise dragging should keep the original word/line selected
    • Remove prefix from paths in ripgrep results
    • Use iso date format for default date instert keybind
    • Workaround broken dir.statFile on WSL1
    • Left an right movements jump to selection boundary
    • Prefer targetSelectionRange over targeRange if both are provided by LSP
    • Fix flicker: home screen should not load if we have a file to open
    • Update thespian to fix subprocess file descriptor race
    • Force ripgrep to never try search stdin
    • Bracketed paste should check for ctrl+j and insert \n
    • Render control codes in mini buffer input with unicode control code symbols
    • Proactive close subprocesses on early exit in shell module
    • Fix paste in goto mode
    • Don't match against legacy unshifted keys when we have extended input text
    • Remove blocking project manager call on startup
    • Never double free LSP init queue
    • Remove arbitrary limit to command buffer size
    • Remove ctrl+p command palette binding
    • Stop after removing widget in Widget.remove (fixes ReleaseFast crash)
    • Fix potention dangling pointer in mainview on view list realloc
    • MRU position should not override line numbers on command line
    • Don't restore editor view rows and cols
    • Prevent task palette from being too short to show palette label
    • Refresh hover on tab changes
    • Add workaround for conpty ul color escape sequence parser bug
    • get_mru_position should not hang if file not found in project
    • Fix row & column in get_mru_position
    • Remove initial empty frame render on startup
    • Make move_cursor_up/_down fallback to move_begin/_end
    • Don't get stuck in an overlay mode if it is triggered from the command line
    • Update cursor target column after nudge_insert/_delete
    Downloads