Commit graph

3353 commits

Author SHA1 Message Date
Stanislav Asunkin
404e56066f modules/performance: add ability to byte compile extraLuaPackages
This commit adds `performance.byteCompileLua.luaLib` options. When
enabled it byte-compiles lua packages from extraLuaPackages option.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
fac192c022 tests/modules/performance/byte-compile-lua: improve tests
* improve assert messages
* validate both byte-compiled and non-byte-compiled files are working
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
d7475dd0fa tests/modules/performance/byte-compile-lua: test with stub plugins
To reduce unexpected breakages due to changes in nixpkgs, replace the
tested plugins with specially crafted stub plugins.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
5b47c65705 tests/modules/performance/byte-compile-lua: improve bytecode detection
Previously, to determine if a file is byte-compiled, a simple binary
file detection was used, specifically checking if it contained any null
bytes. This commit updates the check to read the file header and compare
it with a known LuaJIT header.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
ddddd780e0
tests/fetch-tests: avoid unnecessary copy-to-store
Previously path was concatenated using string interpolation. This commit
switches from string interpolation to path interpolation.

The problem is nix will copy the "${directory}" to a new store
object, meaning anything outside its root won't be available.

From the nix manual:

> A path in an interpolated expression is first copied into the Nix
> store, and the resulting string is the store path of the newly created
> store object.

https://nix.dev/manual/nix/2.28/language/string-interpolation#interpolated-expression
2025-05-12 15:24:52 +01:00
github-actions[bot]
8dbd015500 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/6991569cb7cdde9891f52b43abe9916779df45b0?narHash=sha256-tSEJ/8Tjtoy4yKbfMhIgKcSR/UJ4GjYlM4BT84%2BYKW8%3D' (2025-05-11)
  → 'github:nix-community/home-manager/fb061f555f821fe4fb49f8f6f2a0cc3d5728bd52?narHash=sha256-IDsM/9/tHQBlhG3tXI2fTM84AUN1uRa7JDPT1LMlGes%3D' (2025-05-12)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/4819332186ee7058f9973ab5c2f245d6936e9530?narHash=sha256-jCKoQycs5GB04JeGdj5kdpLJuKukJp%2B8H91EzJuMBlM%3D' (2025-05-11)
  → 'github:numtide/treefmt-nix/708ec80ca82e2bbafa93402ccb66a35ff87900c5?narHash=sha256-uoQ21EWsAhyskNo8QxrTVZGjG/dV4x5NM1oSgrmNDJY%3D' (2025-05-11)
2025-05-12 12:16:49 +00:00
Jalil David Salamé Messina
69266437be
plugins/hunk: init
Add support for [hunk.nvim][1], a plugin for splitting diffs.

Also add myself as a maintainer for it.

[1]: https://github.com/julienvincent/hunk.nvim
2025-05-12 08:42:08 +02:00
Jalil David Salamé Messina
b505a2aebd
maintainers: add jalil-salame
Adding myself as a maintainer
2025-05-12 08:41:31 +02:00
Matt Sturgeon
3212791972
flake: add overridable systems input
Users can specify which systems to use by having our `systems` input
follow a different file or flake:

```nix
{
  inputs = {
    # Here we list systems in a local file
    inputs.systems.url = "path:./systems.nix";
    inputs.systems.flake = false;

    inputs.nixvim.url = "github:nix-community/nixvim";
    # Here we override the list of systems with only our own
    inputs.nixvim.inputs.systems.follows = "systems";

    # ...
  };

  outputs = inputs: {
    # ...
  };
}
```

Alternatively, instead of users listing systems in a local file, they
can use an external flake, e.g.:

- github:nix-systems/default
  - Exposes aarch64 and x86_64 for linux and darwin
- github:nix-systems/default-linux
  - Exposes aarch64 and x86_64 for linux
- github:nix-systems/default-darwin
  - Exposes aarch64 and x86_64 for darwin
- github:nix-systems/aarch64-darwin
- github:nix-systems/aarch64-linux
- github:nix-systems/x86_64-darwin
- github:nix-systems/x86_64-linux

See https://github.com/nix-systems/nix-systems
2025-05-12 03:56:19 +01:00
github-actions[bot]
02a85bd293 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/e95a7c5b6fa93304cd2fd78cf676c4f6d23c422c?narHash=sha256-axfz/jBEH9XHpS7YSumstV7b2PrPf7L8bhWUtLBv3nA%3D' (2025-05-09)
  → 'github:nix-community/home-manager/6991569cb7cdde9891f52b43abe9916779df45b0?narHash=sha256-tSEJ/8Tjtoy4yKbfMhIgKcSR/UJ4GjYlM4BT84%2BYKW8%3D' (2025-05-11)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/29ec5026372e0dec56f890e50dbe4f45930320fd?narHash=sha256-4h3s1L/kKqt3gMDcVfN8/4v2jqHrgLIe4qok4ApH5x4%3D' (2025-05-02)
  → 'github:numtide/treefmt-nix/4819332186ee7058f9973ab5c2f245d6936e9530?narHash=sha256-jCKoQycs5GB04JeGdj5kdpLJuKukJp%2B8H91EzJuMBlM%3D' (2025-05-11)
2025-05-11 12:14:01 +00:00
github-actions[bot]
e527939f79 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/a51598236f23c89e59ee77eb8e0614358b0e896c?narHash=sha256-0364XVBdfEA8rWfqEPvsgBqGFfq5r9LAo9CS9tvT7tg%3D' (2025-05-08)
  → 'github:nix-community/home-manager/e95a7c5b6fa93304cd2fd78cf676c4f6d23c422c?narHash=sha256-axfz/jBEH9XHpS7YSumstV7b2PrPf7L8bhWUtLBv3nA%3D' (2025-05-09)
2025-05-10 12:13:54 +00:00
Matt Sturgeon
1b1e43a36e
plugins/oil-git-status: set signcolumn sane default 2025-05-09 21:23:21 +01:00
Matt Sturgeon
17e13d478d
plugins/oil-git-status: improve signcolumn warning
The warning should trigger when a valid value is configured that
restricts the sign column to less than 2 columns.
2025-05-09 21:23:06 +01:00
Matt Sturgeon
2797fd8b64
plugins/oil-git-status: update signcolumn instructions
See:

- https://github.com/refractalize/oil-git-status.nvim#configuration
- https://neovim.io/doc/user/options.html#'signcolumn'
2025-05-09 19:26:36 +01:00
Matt Sturgeon
3556951d36
plugins/oil-git-status: fix whitespace in desc 2025-05-09 19:12:43 +01:00
github-actions[bot]
52db53cea2 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/50894120e8ac792a5d3046d23e4e4c4ef32cf09c?narHash=sha256-mSqWQsJYMJBI3%2BX3opqaUqeNsGQxVdaNL5iUF7a6p50%3D' (2025-05-08)
  → 'github:nix-community/home-manager/a51598236f23c89e59ee77eb8e0614358b0e896c?narHash=sha256-0364XVBdfEA8rWfqEPvsgBqGFfq5r9LAo9CS9tvT7tg%3D' (2025-05-08)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/760a11c87009155afa0140d55c40e7c336d62d7a?narHash=sha256-Y062AuRx6l%2BTJNX8wxZcT59SSLsqD9EedAY0mqgTtQE%3D' (2025-05-03)
  → 'github:lnl7/nix-darwin/6cb36e8327421c61e5a3bbd08ed63491b616364a?narHash=sha256-GeC99gu5H6%2BAjBXsn5dOhP4/ApuioGCBkufdmEIWPRs%3D' (2025-05-08)
2025-05-09 12:15:36 +00:00
Tran Minh Hieu
cacdb97365
config-examples: add cirius-nix (#3307) 2025-05-09 10:23:35 +00:00
Alison Jenkins
2d485ca1a2
colorschemes/bamboo: init 2025-05-09 08:20:57 +01:00
Heitor Augusto
a6eda59091 plugins/lz-n: update references to options
Update the extraConfig function to access settings through opts parameter
instead of direct import. Also remove the unused options import for cleaner code.
2025-05-09 01:14:36 +01:00
Heitor Augusto
4bd021d25f plugins/lz-n: add tests for keymap(<plugin>).set API 2025-05-09 01:14:36 +01:00
Heitor Augusto
b1cfeb4f34 plugins/lz-n: add support for keymap(<plugin>).set API
Add a new `keymaps` option to the lz-n plugin that allows users to define
keymaps that use lz.n's keymap(<plugin>).set functionality. This enables
users to create keymaps that lazy-load plugins when specific keys are pressed,
using the familiar vim.keymap.set() API style.

The implementation:
- Adds a new `keymaps` option using mkMapOptionSubmodule with a custom plugin property
- Exposes a simple and consistent interface for configuring lazy-loaded keymaps
- Processes these keymaps to generate corresponding Lua code with require('lz.n').keymap().set()
- Cleanly separates plugin specs from keymap definitions while preserving their relationship
2025-05-09 01:14:36 +01:00
Heitor Augusto
bb2e1acf70 plugins/lz-n: add HeitorAugustoLN as a maintainer 2025-05-09 01:14:36 +01:00
Heitor Augusto
a9938e06ae plugins/lz-n: remove with lib 2025-05-09 01:14:36 +01:00
FKouhai
aa1ae69b57
plugins/oil-git-status: init 2025-05-09 00:19:09 +02:00
github-actions[bot]
36d63a7c3e flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/708074ae6db9e0468e4f48477f856e8c2d059795?narHash=sha256-Mp5Bbvb%2BYlFEZ76C/0wFS6C1lRfH3D60u465wFNlnS0%3D' (2025-05-07)
  → 'github:nix-community/home-manager/50894120e8ac792a5d3046d23e4e4c4ef32cf09c?narHash=sha256-mSqWQsJYMJBI3%2BX3opqaUqeNsGQxVdaNL5iUF7a6p50%3D' (2025-05-08)
2025-05-09 05:11:20 +10:00
Austin Horstman
c1fa5ee942 plugins/dap-view: disable controls test
Needs upstreamed plugin update for us to test it.
2025-05-08 13:35:47 -05:00
Austin Horstman
cca235aacf plugins/dap-view: init module 2025-05-08 13:35:47 -05:00
Austin Horstman
324801b226 plugins/whitespace: init module 2025-05-08 13:33:11 -05:00
Austin Horstman
1158bb13f2 plugins/visual-whitespace: init module 2025-05-08 13:32:52 -05:00
Austin Horstman
e656464da4 flake-modules/new-plugin: add dry run argument
Just to see the generated output in console instead of having to go find
the file.
2025-05-08 13:04:38 -05:00
Austin Horstman
d22e7878ec flake-modules/new-plugin: add maintainer argument
Automatically insert maintainer information
2025-05-08 13:04:38 -05:00
Austin Horstman
0754cdc51d flake-modules/new-plugin: sync with plugins/TEMPLATE.nix 2025-05-08 13:04:38 -05:00
Austin Horstman
f7b3f64847 flake-modules/new-plugin: refactor input normalization 2025-05-08 13:04:38 -05:00
Austin Horstman
94298096e8 flake-modules/new-plugin: optionalize package name
New default behavior accepts just the upstream plugin name and performs
the same package name normalization from nixpkgs.
2025-05-08 13:04:38 -05:00
Austin Horstman
c3b04f76ec flake-modules/new-plugin: tweak template
Update for more modern settingsExample focused approach where we declare
fewer options.
2025-05-08 13:04:38 -05:00
Matt Sturgeon
10f899d669
plugins/lsp: correct motivation for onAttach alias impl
Previously I said we alias the definitions instead of the value to allow
`mkOrder` to work correctly. That is incorrect, as order-priorities are
already sorted in `<opt>.definitions`.

The actual reason to use the definitions instead of the final value is
to avoid inf-recursion. The "from" option's `apply` function would read
the "to" option's value, which is defined based on the "from" option's
value, which is set by the "from" option's apply function...

For a one-way binding, `mkDerivedConfig` is best. For a two-way binding,
`mkAliasAndWrapDefsWithPriority` is necessary.
2025-05-08 15:51:18 +01:00
Austin Horstman
5fed6b9363 plugins/claude-code: don't test on darwin
Currently failing on our CI, for some reason.
2025-05-08 10:51:26 +02:00
Austin Horstman
52c68b4da4 plugins/claude-code: add claude-code dependency 2025-05-08 10:35:31 +02:00
Austin Horstman
b17c801f2e plugins/claude-code: init module 2025-05-08 10:35:31 +02:00
Gaetan Lepage
6597afe209 tests/lsp: disable ols test because odin is broken
https://github.com/NixOS/nixpkgs/pull/404919
2025-05-07 22:43:05 +02:00
github-actions[bot]
60f9ddf369 generated: Updated lspconfig-servers.json 2025-05-07 19:58:51 +00:00
github-actions[bot]
dfca942dbb flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'dev-nixpkgs':
    'github:NixOS/nixpkgs/ed30f8aba41605e3ab46421e3dcb4510ec560ff8?narHash=sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX%2BGGtN9f/n4lU%3D' (2025-05-04)
  → 'github:NixOS/nixpkgs/b3582c75c7f21ce0b429898980eddbbf05c68e55?narHash=sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0%3D' (2025-05-07)
• Updated input 'git-hooks':
    'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
  → 'github:cachix/git-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969?narHash=sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS%2BnoCWo%3D' (2025-05-06)
• Updated input 'home-manager':
    'github:nix-community/home-manager/8a318641ac13d3bc0a53651feaee9560f9b2d89a?narHash=sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20%3D' (2025-05-05)
  → 'github:nix-community/home-manager/708074ae6db9e0468e4f48477f856e8c2d059795?narHash=sha256-Mp5Bbvb%2BYlFEZ76C/0wFS6C1lRfH3D60u465wFNlnS0%3D' (2025-05-07)
2025-05-07 19:58:26 +00:00
github-actions[bot]
9b5e955b51 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ed30f8aba41605e3ab46421e3dcb4510ec560ff8?narHash=sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX%2BGGtN9f/n4lU%3D' (2025-05-04)
  → 'github:NixOS/nixpkgs/b3582c75c7f21ce0b429898980eddbbf05c68e55?narHash=sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0%3D' (2025-05-07)
2025-05-07 19:58:20 +00:00
Matt Sturgeon
5c52e8f9e4
plugins.lsp: alias onAttach to new lsp.onAttach
This simplifies the impl by doing global on-attach logic in a
`LspAttach` autocmd instead of adding lua lines to each server's
individual `on_attach` callback.

This is effectively a `mkAliasOptionModule` alias, other than the alias
only being applied when `plugins.lsp.enable`.
2025-05-07 14:51:45 +01:00
Matt Sturgeon
c26f5c2e31 plugins/lsp-format: use lsp.onAttach instead of an autoCmd 2025-05-06 14:08:03 +01:00
Matt Sturgeon
a45b5f372f modules/lsp: add onAttach option
Similar to `plugins.lsp.onAttach`, implement a "global" equivalent to
the per-server `on_attach` callback.

This is implemented using a `LspAttach` autoCmd.
2025-05-06 14:08:03 +01:00
github-actions[bot]
391e4fd093 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'dev-nixpkgs':
    'github:NixOS/nixpkgs/6b1c028bce9c89e9824cde040d6986d428296055?narHash=sha256-VBmKSkmw9PYBCEGhBKzORjx%2BnwNZkPZyHcUHE21A/ws%3D' (2025-05-04)
  → 'github:NixOS/nixpkgs/ed30f8aba41605e3ab46421e3dcb4510ec560ff8?narHash=sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX%2BGGtN9f/n4lU%3D' (2025-05-04)
2025-05-06 12:17:30 +00:00
github-actions[bot]
1d0e4a0bb5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6b1c028bce9c89e9824cde040d6986d428296055?narHash=sha256-VBmKSkmw9PYBCEGhBKzORjx%2BnwNZkPZyHcUHE21A/ws%3D' (2025-05-04)
  → 'github:NixOS/nixpkgs/ed30f8aba41605e3ab46421e3dcb4510ec560ff8?narHash=sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX%2BGGtN9f/n4lU%3D' (2025-05-04)
2025-05-06 12:17:25 +00:00
Matt Sturgeon
5308425718
modules/lsp/servers: move to dedicated file/dir
Move the code related to the `lsp.servers` option into a dedicated module,
cleaning up `modules/lsp/default.nix`.
2025-05-05 23:43:30 +01:00
Jeremy Fleischman
64cd675ece
Port lsp-format to use non-deprecated setup instructions
Upstream still documents the now-deprecated
`require("lspconfig").<name>.setup` mechanism. I believe the modern
alternative is to register a `LspAttach` autocmd. For more context, see:

- https://github.com/lukas-reineke/lsp-format.nvim/issues/98
- https://github.com/lukas-reineke/lsp-format.nvim/pull/99
2025-05-05 14:13:25 -07:00