Skip to content

Releases: BirdeeHub/nixCats-nvim

v5.5.0

30 Aug 11:18
Compare
Choose a tag to compare

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

07 Aug 08:23
Compare
Choose a tag to compare

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

17 Jul 03:09
Compare
Choose a tag to compare

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

09 Jul 02:14
Compare
Choose a tag to compare

v5.3.0...v5.3.2

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

13 Jun 13:09
Compare
Choose a tag to compare

modules can now export their resulting derivations

v5.2.5: utils.makeOverlay to replace utils.mkOverlay due to failing checks

08 Apr 12:18
Compare
Choose a tag to compare

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:

https://github.com/BirdeeHub/nixCats-nvim/blob/5d587160dffbb30577e4bebf1caa186085d9d704/flake.nix#L405-L411

Old:

https://github.com/BirdeeHub/nixCats-nvim/blob/60b70f861f253419fced2293de27c031d052b1a0/flake.nix#L385

Dev shell change:

New:

https://github.com/BirdeeHub/nixCats-nvim/blob/5d587160dffbb30577e4bebf1caa186085d9d704/flake.nix#L385C1-L393C7

Old:

https://github.com/BirdeeHub/nixCats-nvim/blob/60b70f861f253419fced2293de27c031d052b1a0/flake.nix#L389C1-L395C7

v5.2.0: stable (with an important fix)

19 Mar 08:41
Compare
Choose a tag to compare

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

24 Feb 20:10
Compare
Choose a tag to compare

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

28 Jan 17:25
Compare
Choose a tag to compare

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

30 Dec 22:33
ad349a6
Compare
Choose a tag to compare

Follow example and help to download via pckr and mason on a non-nixos system without using nix.