Entries tagged code-tools | Hugonweb Annotated Link Bibliography

lazygit

https://github.com/jesseduffield/lazygit

A terminal UI for git that helps make the difficult workflows easy, e.g. staging individual lines, interactive rebasing, cherry-picking, amending an old commit.

git-bug

https://github.com/git-bug/git-bug

This is the kind of thing I mentioned looking for when talking about Radicle. The goal is to integrate bug reports, pull-requests, and comments as objects in the git repository itself. The project still has a way to go, but I might try it out.

Radicle code forge

https://radicle.xyz

Radicle is an open source, peer-to-peer code collaboration stack built on Git.

Radicle is pretty neat, replicating cryptographically signed repositories between peers. "Collaborative objects (COBs)" like issues, patches, and comments are stored as git objects in the same repository as code.

I like the storage of COBs in the git repository and Radicle's nice command-line and TUI access to them. I'd like just those parts in a traditional client-server system rather than a peer-to-peer system.

I'm not sure I need all of the fancy features of GitHub. The core seems to be git repositories, issue tracking, and pull requests (or patches), which Radicle implements.

Hyperfine

https://github.com/sharkdp/hyperfine

Automatic benchmarking tool. Runs the given command at least 10 times in at least 3 seconds, and then shows the mean, error in the mean, min and max time. Lots of configurability, too.

git notes

https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/

You can add notes to commits, branches, and all kinds of things in git. The only problem is they aren't easy to view on anything except commits via git log. GitHub doesn't show them at all, but I think Forgejo/codeberg.org does show them and let you add/edit them (see PR4753 and PR6025).

stack overflow: how to push git notes to a central server:

git push origin 'refs/notes/*'

and

git fetch origin 'refs/notes/*:refs/notes/*'

See also the git website doc on git notes

rr debugger

https://rr-project.org/

rr aspires to be your primary C/C++ debugging tool for Linux, replacing — well, enhancing — gdb. You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time.

This seems like it could be really useful, especially for intermittent bugs e.g. race conditions.

Neovim

https://neovim.io/

A more modern, but mostly compatible, version of Vim.

After trying Kakoune and Helix, I realized it would be too much work to re-learn a bunch of key-bindings and ways of doing things. I'm not ready to put the effort into a project that isn't very far along. With Neovim, I can always go back to Vim if the project fails.

I've been messing with configuring Neovim for a few days now, and it can be intimidating when you see a bunch of code to configure something in a web search result. I've found my way around that, and have things mostly up and running.

Overall, I think I'm happy to use Neovim for now.

Helix text editor

https://helix-editor.com/

2025-04-10 Update: I tried Helix for a few days, and like it, but miss features from Vim and want something more complete. Maybe I'll try to get LSP and completion working in Vim or give NeoVim a shot!

Helix is a Vim and Kakoune inspired editor. It follows Kakoune's philosophy of multiple selections and redesigned keybindings, but brings back Vim's visual mode. It is written in Rust and tries to include what most users would include through Vim plugins, e.g. tree-sitter and language server support (LSP). It doesn't currently have plugin support.

I'm writing this post in Helix. It's nice to have more of the "batteries-included" features like tiling window support and a file manager. I haven't figured out the tree-sitter/LSP integration yet.

A few things are missing, like spell checking (maybe can use a language server?) There does seem to be Git support. It's a nice little colored line between the line numbers and the text. It doesn't work the same as Vim-Fugitive, though, as it only shows the diff from HEAD, not from staged.

Kakoune text editor

http://kakoune.org/

Kakoune is a Vim-inspired editor. Major differences from Vim include a focus on multiple selections and "orthogonal design", meaning normal-mode keybindings are redesigned to be more orthogonal. It also follows the Unix philosophy by not having much built-in. For example, to format paragraphs into a certain number of columns, I select text, hit | to pipe it to a shell program and run fmt. I'd just run gq in Vim.

I made this post with Kakoune. It took me a while to figure out how to get back to my text buffer from the documentation (type :buffer and then it shows in the autocomplete). In Vim, I tend to select things in visual mode and then perform actions on them. So I do like the selection-verb idiom of Kakoune, but don't like that visual mode is missing. It would take a while to transition from Vim.

Forgejo: Free Software Light-Weight GitHub Alternative

https://forgejo.org

Interesting alternative to GitHub. It's also meant to be much lighter weight than GitLab, which I understand is quite heavy.

The hosted version is https://codeberg.org