You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm reading several discussions asking for magit or fugitive git integration in helix. While it would certainly be nice to have that, they are very feature rich, with complex UI, and would probably require a lot of work to implement in helix.
Moreover, many of these features are already well covered by other terminal tools like gitui, gitu, lazygit, tig, and probably a few more that I missed.
There is one thing those external tools are not doing that well (or not at all): conflict resolution. In fact, they are, at best, proposing to select one side or the other, and rely on the text editor or a merge tool as soon as the resolution is more involved. Even when it's possible to just choose a side or the other, not doing it in the editor make us miss the validation that we may have from the language servers currently running in our project.
We can already do the conflict resolution in helix, but without much possible action or visual display to help us.
That's where smerge-mode seems very interesting to me: it's a great help to deal with conflicts, and yet doesn't use any complex UI. It highlights the differences between the versions in the conflict directly in the text with the conflict markers. There are a couple of key bindings to jump between conflicts, select one side, the other or all the sides in a conflict, and select or cycle through the versions compared when highlighting the differences between versions in a conflict.
Here is a video of smerge-mode in action
So just some coloring and a few keybindings. Simple, efficient. It looks like a great match for helix :-)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hi!
I'm reading several discussions asking for magit or fugitive git integration in helix. While it would certainly be nice to have that, they are very feature rich, with complex UI, and would probably require a lot of work to implement in helix.
Moreover, many of these features are already well covered by other terminal tools like gitui, gitu, lazygit, tig, and probably a few more that I missed.
There is one thing those external tools are not doing that well (or not at all): conflict resolution. In fact, they are, at best, proposing to select one side or the other, and rely on the text editor or a merge tool as soon as the resolution is more involved. Even when it's possible to just choose a side or the other, not doing it in the editor make us miss the validation that we may have from the language servers currently running in our project.
We can already do the conflict resolution in helix, but without much possible action or visual display to help us.
That's where smerge-mode seems very interesting to me: it's a great help to deal with conflicts, and yet doesn't use any complex UI. It highlights the differences between the versions in the conflict directly in the text with the conflict markers. There are a couple of key bindings to jump between conflicts, select one side, the other or all the sides in a conflict, and select or cycle through the versions compared when highlighting the differences between versions in a conflict.
Here is a video of smerge-mode in action

So just some coloring and a few keybindings. Simple, efficient. It looks like a great match for helix :-)
I was thinking of abusing the lsp semantic tokens to implement it in a language server, but then I remembered that helix doesn't support lsp semantic tokens.
Is it a feature that may be interesting for others than me?
Would it have a chance to be integrated in helix?
If yes, I might give it a try :-)
Beta Was this translation helpful? Give feedback.
All reactions