Professional software engineer, musician, gamer, amateur historian, stoic, democratic socialist

  • 4 Posts
  • 35 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle


  • Do you expect it to be as ubiquitous as Vi(m) has become?

    I honestly believe that Helix will eclipse NeoVim because it's designed better, the source code is more maintainable, and the philosophy is a bit more balanced and welcoming to users that care more about productivity than customizability. Refactoring Vim's spaghetti C code is a massive task, and C as a language drags it down. Where the NeoVim ecosystem is currently fractured among many Lua "distributions," Helix just builds on itself in one source tree. I think starting with a solid core before supporting plugins will be good for the future of Helix.

    do you expect Helix to improve its Vim implementation

    I'm not sure what you mean. The Helix key combos are similar but not the same as Vim, they are closer to Kakoune. Once Helix has plugins, it might be possible to get something closer to true Vim emulation.

    rival Vi(m) in being ‘ever-present’

    Yea I think Helix is here to stay, and it will continue stealing market share from other terminal editors. It probably won't convert anyone that's already invested years in learning and configuring (Neo)Vim, but for newcomers looking for a powerful option with sane defaults, Helix is far easier to get started with.

    Personally, I learned Vim at a workplace where most others used Vim. This was at a time when NeoVim was just gaining traction, so I wasn't familiar with it. Vanilla Vim didn't quite compete with VSCode for my workflows, so I worked with VSCode for a while before trying NeoVim. I found the NeoVim setup obtuse. Helix saved me all of that effort, and I was almost immediately productive.


  • "how to write sloppy rust code and squander most of the advantages of the language"

    Only half serious. But I think really the only point that I agree with is taking the easy way out with the borrow checker. I mean, at least try to borrow when it's idiomatic, but if you get frustrated, clone (or move) instead.

    Error handling when done well is not much harder than unwrapping everything, and you get many advantages. Learn to use thiserror for your library crates and anyhow for executables.

    I also agree that you should avoid unsafe 99% of the time. If you think you need it, you probably don't.








  • OK but what is "Git Patch Stacks"? It seems like I'm missing something fundamental that was never actually explained in this post.

    EDIT: Oh hey I found it after reading a different blog post on that site: https://github.com/uptech/git-ps-rs

    The post is also super rambling in the middle section.

    I have to assume that this is something similar to Mercurial's MQ plugin or Stacked Git (stgit), which allow you to manage revisions as a stack of diffs.

    I personally enjoy using stgit, and it fits just fine into the world of feature branches and PRs.

    This part scared me:

    In a Stacked Branch workflow, you are creating branches for each of your atomic commits, and then you're defining the relationships between those branches so it can formally store a directed acyclic graph of those relationships.

    Why do you want to make a separate branch for every commit? That sounds like a nightmare, and it's definitely not the intended workflow for git.


  • Do challenging projects. Read code from better engineers. Work with better engineers. Try new languages that actually solve technical problems instead of just having nice syntax. Contribute to open source projects that you use. Actually read the manuals that come with your tools. Notice when it's taking you a long time to do something and reflect on it to find a faster way. Constantly tweak your workflow to be more productive.

    And the most important of all:

    Get a split ergomech keyboard.









  • Helix. Instant startup. Minimal configuration required. Has all of the killer features I want from an IDE anyway.

    EDIT: I assumed people would just research this anyway, but a more complete list of features I enjoy from Helix:

    • very responsive
    • modal editing
    • declarative configuration file format (TOML, not Lua)
    • language server protocol
    • debug adapter protocol
    • written in Rust so I am more likely to be able to submit a PR if I need to

    Some cons (all known issues on github):

    • no plugin API yet
    • inline LSP diagnostics are overly intrusive and can overlap your code
    • cold-starts the LSP when you start the editor, so you might need to wait for symbol queries in a large project