I have just published version 0.3.0 of rainbow-delimiters.nvim (GitHub mirror). This update brings in a number of the usual improvements to to queries and strategies, but more importantly it also makes configuration at runtime more flexible, but most importantly in light of the current date it also includes a fun little Christmas-themed strategy.
No, not another rewrite. Much better than that: the long-standing ugliness of highlighting being limited to only one node at a time has been fixed. Previously only one opening node and one closing node could be highlighted. This was perfectly adequate for most languages where you have one opening parenthesis and one closing parenthesis. However, consider HTML: we want to highlight the opening and closing tag, but if we highlight the entire top-level node we also highlight the attributes of the tag, which looks too vibrant. The alternative was highlighting the tag name, but this left the angle brackets without highlighting, which looked jarring as well.
Today FUTO released an application called Grayjay for Android-based mobile phones. Louis Rossmann introduced the application in a video (YouTube link). Grayjay as an application is very promising, but there is one point I take issue with: Grayjay is not an Open Source application. In the video Louis explains FUTO's reason behind the custom license, and while I do agree with their reason, I strong disagree with their method. In this post I will explain what Open Source means, how Grayjay does not meet the criteria, why this is an issue, and how it can be solved.
Recently Unity announced changes to their pricing model (archive) which have been very poorly received by their users, to put it gently. They have since backtracked (archive2) somewhat, but at this point it would not matter even if they completely scrapped their plans and went back to how things used to be. The trust has been broken and many game developers are waking up to the fact that Unity is effectively holding their project hostage. Switching from one engine to another is akin to a full rewrite, and depending on the size and progress of the project porting might not be a feasible thing to do.
Wait what, again? Yes, another rainbow delimiter plugin, a fork of a fork. The previous one nvim-ts-rainbow2 was built as a module for nvim-treesitter because that is what the original plugin did and what everyone else was doing. However, nvim-treesitter is deprecating the module system. This means nvim-ts-rainbow2 will eventually stop working, so we will need a new rainbow plugin sooner or later anyway.
Free Software is software which respects the user's freedom. The Four Freedoms ensure that users can run the program for any purpose, study the source code, modify the source, share the software and share modifications of the software. However, what if you are not a programmer? Does this mean Free Software only adds value to people who know how to program, and if you are a non-programmer you might as well use proprietary software? Is it all just the same then? No. In this post I will try to illustrate why Free Software matters even to non-programmers.
Sometimes I like to play video games. Sometimes these games have issues, or they can be improved upon. Sometimes these issues are so severe that the game is virtually (or even literally) unplayable. Fortunately some really smart people have done a fantastic job reverse-engineering parts of these games, their file formats, or found workarounds for engine limitations. Unfortunately too often that knowledge never gets written down and just keeps rotting in someone's head.
I have decided to open up a GitHub sponsor page. Recently I released the Neovim plugin nvim-ts-rainbow2, which has garnered a lot of stars, so I figured I might as well try this sponsor thing. There is also a Monero wallet for those who prefer to forgo the middle-man.
I have written a small Python script which patches the game files of Anno 1503 to run at higher resolutions. There is already a widescreen patch out there ready to use, so why create a patcher? Download links die, knowledge gets forgotten and people lose interest and move on. Without preservation of knowledge the patch will be lost and impossible to reproduce without trial and error all over again. My patcher exists both to be useful, and as executable documentation for posterity. There is also the possibility that if you patch the DLL file that came with your own game instead of using someone else's it might run more stable (not all builds of the game are identical), but that's just a blind guess.
Two months in the making, it is time to finally release my new Neovim plugin officially: nvim-ts-rainbow2 (GitHub mirror). This plugin uses Neovim's built-in Tree-sitter support to add alternating highlighting to delimiters. This is usually known as “rainbow parentheses”, but thanks to Tree-sitter we are not limited to parentheses, we can match any kind of delimiter, such as tags in HTML or
endblocks in some programming languages.
My current terminal emulator is Alacritty. One thing I would like is a way to change the colours while the terminal is running. The only way to do so is the edit the configuration file, but doing so by hand can be annoying. There are some scripts out there that let you do it automatically, but all that I have found rely on bloated stuff like having Node.js installed. We can do better by using just what we already have on Unix out of the box.