helix: Helix 23.05 (d52b7903) freezes editing markdown

Summary

I’ve been running the git release of Helix on arch for a couple years now. My current install is on Garuda Linux:

     ╭─watson@acer in ~ took 8ms
     ╰─λ pamac info helix-git
    Name                  : helix-git
    Version               : 23.05.242.gd52b79037-1
    Description           : A text editor written in rust
    URL                   : https://helix-editor.com
    Licenses              : Unknown
    Repository            : chaotic-aur
    Installed Size        : 144.7 MB
    Groups                : --
    Depends On            : --
    Optional Dependencies : --
    Required By           : --
    Optional For          : --
    Provides              : hx
    Replaces              : --
    Conflicts With        : helix
    Packager              : UFSCar HPC Builder <hpc.ufscar@chaotic.cx>
    Build Date            : Wed 19 Jul 2023 08:09:51 PM EDT
    Install Date          : Thu 20 Jul 2023 05:07:40 AM EDT
    Install Reason        : Explicitly installed
    Validated By          : Signature
    Backup files          : --

I’ve been editing markdown all day, every day for a while and helix started freezing recently where all keystroke processing ceases. Nothing seems to release it, esc, colon, etc.

I’ve taken to pgrep hx follwed by pkill hx at the command line to resolve and restart helix.

Reproduction Steps

I tried this:

  1. hx
  2. edit files with md extension
  3. wait for freeze within a few minutes

I expected this to happen:

No frezee.

Instead, this happened:

Freeze.

Helix log

I’ll provide the verbose log when I get it.

~/.cache/helix/helix.log
 ╭─watson@acer in ~ took 16ms
 ╰─λ cat ~/.cache/helix/helix.log
File: /home/watson/.cache/helix/helix.log
2023-07-13T08:32:07.058 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-13T08:32:56.575 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-13T08:36:45.385 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-19T12:19:55.671 helix_view::editor [ERROR] Failed to initialize the language servers for `source.bash` { cannot find binary path }
2023-07-20T03:56:06.337 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-20T05:04:27.109 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-20T05:24:50.686 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }
2023-07-20T05:31:15.038 helix_view::editor [ERROR] Failed to initialize the language servers for `source.css` { cannot find binary path }
2023-07-20T05:34:19.761 helix_view::editor [ERROR] Failed to initialize the language servers for `source.md` { cannot find binary path }

Platform

Gaurda Linux (arch)

Terminal Emulator

fish on alacritty

Helix Version

helix 23.05 (d52b7903)

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 3
  • Comments: 17 (12 by maintainers)

Most upvoted comments

The upstream issue has been closed thanks to a quick fix by @the-mikedavis so there shouldn’t be changes to the grammar necessary @MDeiml

I am still working on a minimal reproduction case for that. The current minimal reproduction case involves helix and is too complex to report upstream. We would have to write a small rust program that uses tree sitter and libloading to parse the snippet I posted above into a syntax tree and then call prev_siblings at the correct position. I didn’t get around yo that yet

Guess that should be “shouldn’t”? 😃

That should be possible for block continuations because their job I just to “subtract” from the inline part. Obviously subtracting something empty is not necessary. There are other empty nodes where this wouldn’t be possible though, but maybe this is really just about the block continuations so I’ll try.

reported upstream in https://github.com/tree-sitter/tree-sitter/issues/2421, reason seems to be a token of length 0 generated by the markdown grammar when HTML spans multiple lines.