Top
Best
New

Posted by doener 11 hours ago

Helix: A post-modern text editor(helix-editor.com)
132 points | 44 commentspage 2
pjmlp 2 hours ago|
Up voting, only because it is another native option, away from Atom started trend to ship Chrome alongside every single "modern" application.
jiehong 2 hours ago||
A new version should arrive this month or the next one. I think it’s worth trying it again then
small_scombrus 4 hours ago||
I desperately wish Helix would support virtual text (code folder, markdown links just showing the text when not selected), but the default keybinds and the way that selecting and editing text work just works too well in my brain to go anywhere else
rrr_oh_man 3 hours ago||
Love the FAQ

  > Post-modern?!

  It's a joke. If Neovim is the modern Vim, then Helix is post-modern.

  > Is it any good?

  Yes.
dalanmiller 5 hours ago||
Love `hx`, vim never really clicked for me and the batteries-included nature of helix is one of its best selling points.
Panzerschrek 5 hours ago||
I tried using it once by compiling it from sources. Even a release build is several hundred megabytes in size, which I find pretty wasteful. After a little investigation I found, that it has many plugins in form of a shared library, and each of them has pretty huge size, presumably because the whole Rust standard library is statically linked.
whytevuhuni 4 hours ago||
Interesting, although I checked and on NixOS the binary is just 29MB. It was statically linked, with just libc left as dynamic.

I think 29MB is still huge for a terminal text editor, but nevertheless not "hundreds".

f311a 3 hours ago||
Language grammars are ~200-250MB though. They are in a separate folder, and often they are all bundled to support all the languages. Some of them are HUGE.

  .rwxr-xr-x  4.6M aa    6 Mar 21:52  ocaml-interface.so
  .rwxr-xr-x  4.6M aa    6 Mar 21:52  rpmspec.so
  .rwxr-xr-x  4.9M aa    6 Mar 21:52  tlaplus.so
  .rwxr-xr-x  5.1M aa    6 Mar 21:52  ocaml.so
  .rwxr-xr-x  5.1M aa    6 Mar 21:52  c-sharp.so
  .rwxr-xr-x  5.3M aa    6 Mar 21:52  kotlin.so
  .rwxr-xr-x  5.4M aa    6 Mar 21:52  ponylang.so
  .rwxr-xr-x  5.5M aa    6 Mar 21:52  slang.so
  .rwxr-xr-x  6.1M aa    6 Mar 21:52  crystal.so
  .rwxr-xr-x  6.8M aa    6 Mar 21:52  fortran.so
  .rwxr-xr-x  9.2M aa    6 Mar 21:52  nim.so
  .rwxr-xr-x  9.5M aa    6 Mar 21:52  julia.so
  .rwxr-xr-x  9.9M aa    6 Mar 21:52  sql.so
  .rwxr-xr-x   16M aa    6 Mar 21:52  lean.so
  .rwxr-xr-x   18M aa    6 Mar 21:52  verilog.so
  .rwxr-xr-x   22M aa    6 Mar 21:52  systemverilog.so
Panzerschrek 3 hours ago||
That's exactly what I found. Why these files should exist at all? Some other IDEs just have a bunch of highlighting rules based on regular expressions and have a folder of tiny XML grammar files instead of a folder of bloaty shared libraries.
homebrewer 3 hours ago||
Because it's far more reliable to use proper parsers instead of a bunch of regular expressions. Most languages cannot be properly parsed with regexes.

Those files are compiled tree-sitter grammars, read up on why it exists and where it is used instead of me poorly regurgitating official documentation:

https://tree-sitter.github.io/tree-sitter

f311a 2 hours ago||
Funny enough, they are less than 10MB when compressed. I guess they could use something like upx to compress these binaries.

The whole Linux release is 15mb, but it uncompresses to 16MB binary and 200MB grammars on disk.

Why do we need to have 40MB of Verilog grammars on disk when 99% of people don't use them?

homebrewer 2 hours ago||
That would waste CPU time and introduce additional delays when opening files.

They could probably lazily install the grammars like neovim does, but as someone who doesn't have much faith in the reliability of internet infrastructure, I'll personally take it...

Just ran `:TSInstall all` in neovim out of curiosity, and the results were predictable:

  ~/.local/share/nvim/lazy/nvim-treesitter/parser
  files 309
  size 232M

  /usr/lib/helix/runtime/grammars
  files 246
  size 185M
If disk space is important for your use case, I guess filesystem compression would save far more than just compressing binaries with upx. btrfs+zstd handle those .so well:

  $ compsize ~/.local/share/nvim/lazy/nvim-treesitter/parser
  Type       Perc     Disk Usage   Uncompressed Referenced
  TOTAL       11%       26M         231M         231M

  $ compsize /usr/lib/helix/runtime/grammars
  Type       Perc     Disk Usage   Uncompressed Referenced
  TOTAL       12%       23M         184M         184M
f311a 2 hours ago||
I mean, they could decompress it once when using a language for the first time. It will still be fully offline, but with a bit uncompressing.
small_scombrus 4 hours ago||
My local build of helix is 20MB, did you use the suggested flags on the install guide page?
nurettin 5 hours ago|
I haven't opened a text editor to code in months and probably won't need to anymore. Goodbye vim and intellij, nice knowing you. It was a good while it lasted. Glad I haven't invested decades into emacs like some of my colleagues.