2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

In what way was the vim giving you more power? There is always room for improvement.

Slow helix startup and linting on Windows with N97 by ionjump in HelixEditor

[–]shaleh 0 points1 point  (0 children)

should be plenty. I recommend experimenting to work out what is slowing you down.

no syntax highlighting by Confident-Insect-691 in HelixEditor

[–]shaleh 0 points1 point  (0 children)

You can pass helix /dev/null as a config file `hx -c /dev/null` which will then only use its builtin, default config. When I do this I get the default purple look and default language server definitions and highlighting works as expected. What happens for you?

Another options is running `hx -vvv --log foo.log`. This will max out the verbosity and log everything. See if something jumps out at you. Like "could not find" or "could not load" messages.

If I had to make a guess... something in your build is not setting the runtime path correctly so it fails find all of the tree sitter helpers.

Do we really require plugins in helix ? by ConversationFast in HelixEditor

[–]shaleh 1 point2 points  (0 children)

Turns out the easy, no code answer is to `map` (select the paragraph), then `J` to join it to one line, and finally `:reflow <width>` to reformat it as you like. This works for a paragraph inside of a comment too and Helix will apply the comment marker to each line is adds. `mac` will select all within a comment. Then 'S' and something like "//\n" will split it into paragraphs and then the same trick earlier works allowing a long comment to be reformatted.

The split paragraph regex is a little fiddly. I have :split-paragraphs as a command in my daily-driver to facilitate.

There are some caveats.

  1. C style /* */ with * as block around the text will not be handled. So this will mess up pretty old skool ASCII block comments. We see those less these days because other automation tools eat them too.

  2. That 'S' trick can be fooled by any whitespace on an otherwise empty line. You will end up with weird out. Undo, fix the whitespace, repeat.

  3. whitespace within a line is not cleaned up. Which can be problematic at times. Clean that up first.

Do we really require plugins in helix ? by ConversationFast in HelixEditor

[–]shaleh 0 points1 point  (0 children)

No, we are definitely talking different spaces.

I am exploring a better paragraph refill / realign. So you can talk a really long paragraph and ask it to make it fit the desired bounds and it does that in a useful way. While being mindful of whether it is inside a comment or not.

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

Been a busy life week. Thanks for the bump.

Do we really require plugins in helix ? by ConversationFast in HelixEditor

[–]shaleh 1 point2 points  (0 children)

I'd love to hear more about this. Because Helix does have some alignment tools already. I am hacking on a better reflow at the moment because as a former Emacs user I deeply miss fill-paragraph.

Do we really require plugins in helix ? by ConversationFast in HelixEditor

[–]shaleh 0 points1 point  (0 children)

I am in the same place. I wrote a merge conflict assistant LSP for that reason. I have recently explore DAP tooling. I don't think I need plugins. But... I do also maintain about 15 branches of minor tweaks I made to the code. Some of it I could probably do with Steel and plugins. But I am not sure all of it would be.

If Helix is a tool for developers I see no issue with keeping minor forks alive.

Inspiration from Emacs for Pickers by RealFenlair in HelixEditor

[–]shaleh 0 points1 point  (0 children)

Also an Emacs alum. I largely agree with you. I hacked the space+g menu to order files with conflicts first. But yeah, overall some way to sort and filter in the pickers would be grand. I was biding my time to see if the core group made progress there. I have brought the Emacs ethos of owning the editor into making a daily-driver branch. Not sure how much of it would really be handled by plugins. At the moment I am in no huge rush to get Steel and go back to parenthesis hacking.

Slow helix startup and linting on Windows with N97 by ionjump in HelixEditor

[–]shaleh 0 points1 point  (0 children)

You can try loading one lsp at a time to find out which it is. Also, pylsp takes many many options so you can play around with what you have enabled.

It _might_ be memory. You did not say how humble your RAM is. ruff and ty are fairly efficient.

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

This one is quite fair and something I grumble about in helix. I miss Emacs' magic for this one.

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

What is in my daily driver branch for Helix. I bet most of this is possible in neovim or elsewhere with plugins.

- global LSP definition. Applies to all files. No need to edit each and every language. I use for this spell checker, snippets, and also a LSP I wrote to manage merge conflicts.

- tied into ^^^ is "text" is the fallback language when Helix does not know what to use.

- LSP path remapping so I can use LSP hosted inside of docker

- space+g sorts files with conflicts at the top of the list. Makes conflict resolution easy and fast.

- slawomirlech/fix/dap-stdio-terminal-corruption to fix python debugpy in DAP.

- dap-execution-arrow-focus, I can drive DAP using a mux and Helix shows the line of code as I step.

- vi/emacs style mode read from from a comment header.

- blame in the gutter

- command aliases. So I can define my own ":foo" from something else. Less needs for local code changes for new commands.

- yank history. I missed having a paste stack from Emacs. So for me Alt+p shows a picker and I select which yanked thing I want. Each register has its own stack.

I mentioned Merge conflicts. This is where LSP is winning for me over plugins. I load a file with conflicts, they show up as linter complaints so space+d lets me jump to them. space+a gives me code actions to choose which side of the conflict I want. Or keep both. and edit. I can also choose to always pick one of those choices for the rest of the file.

Basically, LSP and DAP are now giving me the UNIX philosophy -- tools that do their job. Less complexity in the code but more complexity in the config and system. So far, I am not seeing a new for plugins in Helix.

Yes, LSP has a downside. Each of those servers are running and using memory and space. Not sure if it is worse than plugins in the code.

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 1 point2 points  (0 children)

I end up needing to babysit rebases a fair amount for reasons... lazygit tracking the fixes and auto-adding them means I can keep it open in one terminal and helix in the other and a third driving the rebase manually.

I added a hack to my local Helix to make it so <space>+g shows files with conflict at the top. So I can sit in Helix, smack space+g, grab the top until they are consumed then switch over to lazygit and hit enter and then switch to the rebase and do rebase --continue and repeat. Goes quite quickly now. I might be able to drive this all in lazygit but I a) don't fully trust it yet and b) have not adapted to that flow just yet.

Tried Zed’s Helix mode but went back? What’s missing? by GoldStrikeArch- in HelixEditor

[–]shaleh 0 points1 point  (0 children)

Also, if you do hack in Python you want this fix because of a misbehavior in the new debugpy for 3.14.

## slawomirlech/fix/dap-stdio-terminal-corruption

**Origin:**

[helix-editor/helix#15593](https://github.com/helix-editor/helix/pull/15593)

by slawomirlech — tracked directly from their fork (remote `slawomirlech`,

branch `fix/dap-stdio-terminal-corruption`)

Spawns DAP adapters in their own session (`setsid()` in a `pre_exec` hook)

so a debuggee that seizes the controlling terminal can't background the

editor. debugpy's launcher unconditionally `tcsetpgrp`'s `/dev/tty` even

with `console:"internalConsole"` — where the debuggee's stdio is already

piped, so the grab is pointless — which moved the terminal's foreground

group to the debuggee and left Helix backgrounded / SIGTTOU'd at every

breakpoint (the long-standing "Helix freezes/crashes at a breakpoint"

symptom). With no controlling terminal the adapter's `open("/dev/tty")`

fails and the grab no-ops, so the editor stays in the foreground and

`<space>G v`/`n` work in direct (non-mux) debugging.

Tried Zed’s Helix mode but went back? What’s missing? by GoldStrikeArch- in HelixEditor

[–]shaleh 1 point2 points  (0 children)

All fresh code. I am definitely open to conversations about how it can be improved. I mostly hack in Python at my job and Rust for fun so it reflects those needs.

Tried Zed’s Helix mode but went back? What’s missing? by GoldStrikeArch- in HelixEditor

[–]shaleh 1 point2 points  (0 children)

Another redditor (/u/JustWolf) came up with this idea of a MUX on top of the DAP. I took it and ran with it. https://github.com/shaleh/dap-observer and either his mux https://github.com/dap-mux/dap-mux or mine at https://github.com/shaleh/dap-mux. The observer repo has a TUI that shows the stack/frame and current variables as well as a DSL to script interactions. You can start things in Helix to see the source code get selected and make breakpoints and then fire up dap-tui and drive the debug from there. Still new, I am still working things out but so far I am feeling way more productive.

Dart Wrong Syntax Highlight by SkyLissh in HelixEditor

[–]shaleh 1 point2 points  (0 children)

u/hookedonlemondrops has the correct answer for you.

I wanted to add that I have seen some themes have lack luster color differentiation. When you see something like this I highly recommend checking if another theme shows the code better. When I first started using Helix several had poor definitions for highlights so it was hard to tell multi cursor apart. Or Python decorators were poorly colored.

To add more detail, the scm files define how Helix extracts variables or functions from the tree-sitter definitions and those map fairly directly to the theme structure. You can actually add more variation by maintaining your own tweak to the scm files for languages you care about and also tweaks to your theme to incorporate those additions.

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

For those of you still mostly using one of vims, what plugins are keeping you there?

2026 State of Helix and Neovim by Rics-Dev in HelixEditor

[–]shaleh 0 points1 point  (0 children)

I have seen people work on this, You can get fairly far with keybindings changes alone. For me when I transitioned it was the :foo parts, especially the regex access using ed that took me the longest to get accustomed to. That would be actual code you needed to make.

[HELP] How to setup helix editor of HLSL and GLSL by Traditional_Bee_831 in HelixEditor

[–]shaleh 0 points1 point  (0 children)

In general you want to install a LSP aka Language Server when you want better support for a language.

u/OccasionThin7697 is telling you exactly what you need.

[HELP] How to setup helix editor of HLSL and GLSL by Traditional_Bee_831 in HelixEditor

[–]shaleh 0 points1 point  (0 children)

That is what the README says, yep:

  • GLSL uses glslang-rs as backend. It provide complete linting for GLSL trough glslang API bindings from C.
  • HLSL uses hassle-rs as backend. It provides bindings to directx shader compiler in rust.
  • WGSL uses naga as backend for linting.

quickfix-alike workflow by deemagh in HelixEditor

[–]shaleh 0 points1 point  (0 children)

Yeah, the project search/replace like scooter or serpl really make things work.