Releases: BirdeeHub/nixCats-nvim
v5.5.0
What's Changed
Full Changelog: v5.4.7...v5.5.0
- minor deprecations to functions that have had warnings for months now.
:NixCats
debug command now combines all previous :NixCats____
debug commands into 1, and adds more values you can view.
some nixCats.utils functions deprecated due to not outputting values of the right format have finally been removed.
- decided to change luaUtils template
While the old luaUtils templates should still work, you should pull a new luaUtils template by removing lua/nixCatsUtils/init.lua and lua/nixCatsUtils/lazyCat.lua and then running the following command at the root of your nvim config directory, as the new ones are better.
nix flake init -t github:BirdeeHub/nixCats-nvim#luaUtils
The old luaUtils templates will stop working in a few months (with plenty of warning) but pulling the new template now will prevent you from futher breaking changes/deprecations on updating nixCats flake input in the future.
Said upcoming depreciations, coming a few months after I figure out how to inject a warning into the generated table, are to nixCats('nixCats_store_config_location')
which will be renamed to nixCats('nixCats_config_location')
due to not always being in the store, and require('nixCats').pawsible.allPlugins.ts_grammar_plugin
which will be renamed to require('nixCats').pawsible.allPlugins.ts_grammar_path
due to possibly having to be split back up into separate directiories at some point in the future, pending possible changes to nixpkgs (which will be handled internally within nixCats so you dont have to worry about that outside of running nix flake update, but this value would then end up misnamed, which would be bothersome.)
If you use these 2 values anywhere outside of the luaUtils template and are reading this, you should update them now. If you only use them in the luaUtils template, pull a new one! The new one is better anyway.
additional function added to luaUtils template for sourcing after directories of plugins, for those who wish to lazy load things like nvim-cmp sources using either packadd
+autocommands
, or something like lz.n
(or my rendition of it, lze
) to manage calling packadd
and creating autocommands
for you
packages now overrideable via actual override function
You may now call yourpackage.override to override
the values submitted to the builder function. You may do so as many times as you like.
values available to override: (prev will contain these from the previous
call)
luaPath categoryDefinitions packageDefinitions name
nixpkgs system extra_pkg_config dependencyOverlays nixCats_passthru
While you could get the values from the flake before and combine them with new definitions into a new package, this is yet another, possibly cleaner way to do it. (see the template REREREconfigure for info on that)
Useage of override for nixCats is possibly not quite sufficiently documented yet, however it is demonstrated in nix flake init -t github:BirdeeHub/nixCats-nvim#overriding
In addition, modules have been added to package passthrough with defaultPackageName equaling the name of the package it is within.
Now, if you have an existing nixCats package, you are fully guaranteed to be able to reconfigure it, regardless of if they supplied the full set of flake outputs.
More info on overriding at
https://ryantm.github.io/nixpkgs/using/overrides/#sec-pkg-override
https://nixos.org/guides/nix-pills/17-nixpkgs-overriding-packages
In addition I fixed collision errors that occurred when you name the package nvim, and the collision errors that occur when you try to install nixCats packages with different version of nvim to the same user's path via home.packages or environment.systemPackages
I am very happy about that last thing in particular. You can now actually make packages named nvim
v5.4.3 Debug info commands overhaul
NixCats plugin user command improvements and naming consistency.
Note: some deprecations have been made. Warnings have been provided that the removal of the old version of these old commands is set for 2024-09-01
Fixed a bug where lazy wrapper ignored wrapRc setting (without changing the luaUtils template downloaded by the user)
Combined all the debug info user commands into the single NixCats command, which has been given arguments (and autocomplete for those arguments)
Made the naming scheme of the user commands and things in nixCats plugin match the name of the value in the nixCats plugin.
This means all remaining instances of included
in the nixCats plugin have been replaced by pawsible
No further breaking changes are planned. The design of nixCats allows them to be rare, as most things can simply be added as new options or categories that can be simply ignored.
However, this was necessary for fixing the original ad-hoc naming scheme of things within the nixCats plugin, which was confusing. They are now much more consistent.
In exchange, I give you a much more capable command for obtaining debug information, and time to adjust.
Apologies for the changes, (and the mess I made of git in the day or so it took me to do them) but hopefully you will enjoy the improved user command and fixes!
v5.3.2: fixes and new settings
Added a new setting unwrappedCfgDir allowing you to specify an absolute path to the unwrapped config directory instead of just the name within .config (only active when wrapRc = false)
Added the ability to wrap the python3 executable with arbitrary wrapper arguments
the users pack/ dir within their actual configuration was not being sourced correcty. This has been fixed.
Updates to help and templates for better illustration.
Internal readmes for anyone who gets curious about the parts that actually make nixCats nixCats
v5.3.0
v5.2.5: utils.makeOverlay to replace utils.mkOverlay due to failing checks
utils.mkOverlays being depreciated in favor of utils.makeOverlays due to not passing checks. overlays now accessible via outputs.overlays.packageName instead of outputs.overlays.${system}.packageName
new function is called differently and in a slightly different spot, but achieves the same end goal
devShell output changed to devShells.${system}.default due to devShell output being an old way to do it.
Overlays output change:
New:
Old:
Dev shell change:
New:
Old:
v5.2.0: stable (with an important fix)
hosting programs could cause collision before. nvim-python3 is now <packagename>-python3, same with others
nvim resolves these via vim.g.python3_host_prog/vim.g.node_host_prog variables, this is the same way the pkgs.wrapNeovimUnstable wrapper added them, just with a different name than the one they chose.
v5.1.3 stable
nixCats-nvim has had all the nix features it could need since 5.0.0 release.
Oil has been added, some help updated, a better error message added, and some readme edits have occurred since the 5.0.0 release.
These are not major changes, you should be using your own lua and plugins anyway.
The best way to get started is to use a template!!! see :help nixCats.installation_options
The template will add an empty nix template for you to put your plugins into, either a flake, module, or expression depending on which you choose. They are interchangeable, and it is easy to move your configuration to a different style if desired later, so if in doubt, start with the flake template.
The template imports the nix directory directly from nixCats via the exported utils set, as it is not needed in your configuration.
All options from the pkgs.wrapNeovimUnstable function (and some new ones!) are accessible from the flake.nix file.
Once you add your plugins to the nix file, in lua swap out your package manager for raw require('pluginname').setup() calls (if required by the plugin) OR use the luaUtils template and the help to integrate your old package manager into your nix configuration to allow it to still work without nix!
Using the template will allow you to continue receiving upgrades to the help.
The builder has no planned updates. However if something major changes within nix that requires one (VERY unlikely), using the template would allow you to receive a fix for something like that as well.
No updates to the readme, lua, or plugins imported in nixCats-nvim will affect your configuration.
Because of this, using the templates is encouraged over directly cloning the repository.
Future planned updates: possible help and readme updates, and once a week or so, nix flake update will be ran on this repo.
Nix code and luaUtils have all required features, the lua nvim configuration itself in nixCats is simply an example, so neither require updates for anything beyond breaking changes.
This repo is both the thing you import to use nixCats, and also an example configuration to demonstrate some of its features! It also gives you a working configuration to use to begin with to edit your new flake as you set it up, and to access the in-editor help.
nixCats v5.0.0
RELEASE OF nixCats 5.0.0 branch
Features:
Lazy.nvim wrapper utility
Can now ACTUALLY install multiple versions of nvim via modules without collision error
slightly better handling of things in flake.nix
modules can recieve system overlays
If you are migrating, you may want to start from a new template and copy paste your inputs, packageDefinitions and categoryDefitions sets into the new flake.nix. The sets work the same way, but the format of importing the builder is slightly different.
pckr + mason
Follow example and help to download via pckr and mason on a non-nixos system without using nix.