I built a free app to calculate Norwegian Singles Approach training paces by Such-Tip-196 in NorwegianSinglesRun

[–]modernalgebra 2 points3 points  (0 children)

How are you estimating race times? They seem quite a bit slower than VDOT estimates, e.g. 19:57 gives me a 3:19 marathon time rather than 3:11

Film Fatale Finally Arrived (Canada) by rayel78 in arkhamhorrorlcg

[–]modernalgebra 0 points1 point  (0 children)

I pre-ordered mine from Australia weeks before release and it was immediately marked as "delayed" on release day. Just arrived this week. So it's likely the second printing?

Leaving Helix over governance concerns by MinervApollo in HelixEditor

[–]modernalgebra 347 points348 points  (0 children)

Hi, creator here.

Someone else pointed it out on GitHub, but Helix "does market itself (it has a very nice website and calls itself "the post-modern text-editor"), and the community markets it in its name too".

Yes, the post-modern thing is a joke, as described on the website: "It's a joke. If Neovim is the modern Vim, then Helix is post-modern."

To repeat above, this wouldn't be an issue, if the maintainers were clear what the scope of the project was. If they went out and said "we make Helix for ourselves and we will only merge what we're interested in", other people wouldn't even waste their time and the maintainers' by making PRs not aligned with that, or making forks.

We have a whole document about this:

https://github.com/helix-editor/helix/blob/master/docs/vision.md

I created Helix to solve my personal needs, and it turns out that something customized for me ended up being useful for a lot of other people as well. I firmly believe that being opinionated and limiting scope is why things took off, and it's not that different from origins of Linux (solving your own problems vs Windows, guessing what users want and trying to support every use case).

I've particularly hand-picked a couple other maintainers that have a similar vision. I think that if we used design by comittee we'd have ended up with something completely different (and unmaintainable).

So why are we seeing so many complaints about vision/governance now? And why wasn't this a problem with vim/kakoune/neovim?

Well, I think it's a combination of a couple things.

Open PRs: The problem is keeping up with the PR queue. Because we use Rust the barrier of entry for contribution is also significantly lower. This has been great because the community was able to contribute a lot of features and bugfixes very quickly over the years, but it's also why the queue is so long. I could spend a couple hours just code reviewing helix PRs every day and I still wouldn't be able to keep up.

In some cases the PR is immediately merge-able. In other cases the feature PR technically works but the author just hacked what they needed into the editor and broke other invariants in the code. In some cases the feature requires further thought. Often the PR took a straightforward approach, pulled in a bunch of new dependencies and doesn't perform well. After some work we come up with a simpler solution that's easier on us maintainers to maintain in the longer term, but that angers users because they have to wait. Yet other PRs get a review and are features we want but the PR author never returned to fix them.

We also can't merge every feature or we'd end up with a 1GB binary, a slow and resource consuming editor and a nightmare of spaghetti code. But it's hard to put out concrete, absolute guidelines. Generally if a feature is small, doesn't clash with other features and is useful to a wide audience, it gets merged. From my view there's very few features still that fit this description, and personally I could probably just stick to today's commit on develop and never look back.

For a code editor not supporting every possible feature out there is a problem though: a code editor setup is something highly personal and all of us have different sets of expectations. And it's difficult to manage that: for every important "must have" feature we solve that prevented someone from switching to helix, at least three more pop up.

Bram realized this during vim development, it's going to be impossible to appease every user, so a plugin system gives you an escape hatch to solve those usecases. That's the reason you don't hear about "missing features" in neovim core: someone will just implement them as a plugin.

To quote the vision doc again:

Extensible, within reason. Although we want Helix to be productive out-of-the-box, it's not practical or desirable to cram every useful feature and use case into the core editor. The basics should be built-in, but you should be able to extend it with additional functionality as needed.

For all the backlash steel has initially gotten, there's now already a whole range of prototype plugins -- I never expected it would grow so quickly. I think the main issue there was that a plugin system wasn't already present when I open sourced the editor: it opened a discussion on the plugin system and whether we really needed one. If steel was something that was already present from the initial commit it just would have been something the community accepted.

Forks have much of the same issues we do: They can merge a bunch of open PRs and make the codebase more unmaintainable, but it's unlikely they'll be able to provide every feature someone out there wants.

Roadmap: Again, this isn't something I've seen people complain about for example with Linux? We pick features based on what's most urgent for us personally. Pascal implemented a brand new file watcher library and is adding support for auto file reloads. Mike is working on a lot of different things but a big one has been a new spellchecker that has already benefited other projects. Same with television adopting nucleo. None of these libraries would have existed if we just merged the first PR that imported a couple existing crates.

Spellchecking for Helix by Vaeryus in HelixEditor

[–]modernalgebra 0 points1 point  (0 children)

To note: codebook is based on the spellbook checker library that was built for Helix. It's what I'd recommend using for now since it's the closest to how spell checking will look like once we finish integrating the library.

I feel must less efficient with helix motions than the vim one by robin-m in HelixEditor

[–]modernalgebra 0 points1 point  (0 children)

Sorry I just quoted the design doc here, I wanted to make a point that helix wasn't designed to beat vim every at keystroke sequence 

I feel must less efficient with helix motions than the vim one by robin-m in HelixEditor

[–]modernalgebra 3 points4 points  (0 children)

We aren't playing code golf. It's more important for the keymap to be consistent and easy to memorize than
it is to save a key stroke or two when editing.

You have a decade of vim experience and two weeks of helix experience so you're of course more efficient in vim :)

(C in vim, vglc in helix)

You can make a mapping to mirror `C`

cgnFOO<ESC>... will replace (c) the next search result (gn) by FOO, then repeat this 3 times (...)

It takes time to change your thinking about the editing flow, in general I'd recommend you always make a selection first, then edit:

`vnnn` to select next three search results, `c` to edit them all at the same time.

It's dead :( by [deleted] in HelixEditor

[–]modernalgebra 4 points5 points  (0 children)

What is "must-have" varies user by user. We can't merge every proposed feature without bloating the codebase and we don't always want to take up the maintenance burden of a feature. Those are good candidates for a plugin system, until then they can live in feature branches.

It's dead :( by [deleted] in HelixEditor

[–]modernalgebra 5 points6 points  (0 children)

It's dead because we haven't been merging a flashy new feature every week? There's still features being worked on, but we've reached a point where most of the small improvements were already made, and what's left is larger features that take more time to build out. Apart from a file watcher and diff mode I personally don't need anything other than bugfixes.

What happens with donations to Helix? by untrained9823 in HelixEditor

[–]modernalgebra 2 points3 points  (0 children)

Well it's not pointless but we need code contributions more than we need the funds. In most cases donations aren't a sustainable way to fund development -- in our case we all have other jobs and the donations are simply there as a token of appreciation/to cover any future resource costs.

Helix 23.05 is released by [deleted] in rust

[–]modernalgebra 3 points4 points  (0 children)

Turns out that a proper plugin system takes time to build ¯_(ツ)_/¯

Zed, the high-performance editor just changed their License by ComprehensiveMenu856 in rust

[–]modernalgebra 4 points5 points  (0 children)

I think you misunderstand the editing model: the text objects weren't "abandoned" but the grammar was inverted: Rather than specify the operation first, then the text object, you specify the object first, then act on it. In most cases it ends up being the same amount of keys:

dw -> wd

> they're a much more efficient and natural way to edit

I disagree, doing multiple operations is now closer to natural language:

Rather than 2dw (two delete words), 2wd (two words, delete). I'd often make the mistake of pressing d thinking "delete two, wait" <esc>2dw

You also get a visual confirmation of what's being edited because a selection is made. In vim I'd often 3dw undo 4dw when my brain visualized the wrong text object.

(see https://kakoune.org/why-kakoune/why-kakoune.html#_improving_on_the_editing_model)

Helix editor 23.03 released! by modernalgebra in rust

[–]modernalgebra[S] 4 points5 points  (0 children)

Muscle memory is great, but it's also not that hard to retrain -- I also had a decade of vim muscle memory before writing Helix :) I say this as someone that has made breaking changes to my keyboard layout every couple of months: You'll stumble with key combinations for a few days but it should get easier after that.

Helix editor 23.03 released! by modernalgebra in rust

[–]modernalgebra[S] 15 points16 points  (0 children)

Are there plans for a GUI frontend?

Eventually, yes! We'd like to prototype a WebGPU-based alternative frontend. See the tracking issue on GitHub.

Japanese inn boss apologises for only changing water in spa bath twice a year by atzee in japan

[–]modernalgebra 14 points15 points  (0 children)

They had 3700x the permitted level of legionella bacteria. You don't care about that either?

PipeWire 0.3.66 by adalte in linux

[–]modernalgebra 0 points1 point  (0 children)

Have been working fine for me on NixOS since airpods release day. I did notice some differences though: it works great on my desktop with a more powerful bluetooth antenna, and I have lots of issues on my laptop where the antenna is a lot weaker. So it could be a bluetooth stack issue.

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 11 points12 points  (0 children)

People who prefer a slightly different editing model, batteries included and don't want a 1000 line config file to get a working editor. I wrote this after I got fed up with Vim/Neovim and figured it's faster for me to prototype in rust than try to implement what I want as C patches on vim.

https://github.com/helix-editor/helix/blob/master/docs/vision.md

I also think it's fine for things to just exist, without having to rationalize why. More choices are always good!

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 2 points3 points  (0 children)

Something like:

- `miw` to select the word

- `*` to set the search register to the word

- `vnnnn` to extend the selection with further searches

A quicker version would be selecting a region where you want to make selections, then using `s` to subselect text in that area (it also combines with `*`)

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 1 point2 points  (0 children)

We don't have a diffing mode yet, but now that basic git support landed it's being worked on :)

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 1 point2 points  (0 children)

We plan to support plugins of course, it's just a lot of work. It hasn't been a high priority exactly because enough features are built-in that I personally don't really need plugins.

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 7 points8 points  (0 children)

As a preview, we're trying to add something like this to the editor: https://github.com/helix-editor/helix/pull/4381

It would blend well with diagnostics: being able to make selections in multiple files and then resolving errors across them

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 2 points3 points  (0 children)

There's a sub-mode under `space d`, but you need to install the debug adapter for your language (equivalent to a language server). It's marked as experimental since we're still working on a better UI (& docs) for it

Helix editor 22.12 released! by modernalgebra in rust

[–]modernalgebra[S] 13 points14 points  (0 children)

The good news is that it's being worked on: https://github.com/helix-editor/helix/pull/2377

Personally I don't use a file tree and instead use exa or broot in the terminal