Commit graph

3417 commits

Author SHA1 Message Date
FKouhai
1c53ad9b2f
plugins/timerly: init 2025-05-13 23:50:02 +02:00
Gaetan Lepage
d385972711 Revert "tests/lsp: disable ols test because odin is broken"
This reverts commit 6597afe209.
2025-05-13 21:30:47 +00:00
github-actions[bot]
64880922bd flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'dev-nixpkgs':
    'github:NixOS/nixpkgs/b3582c75c7f21ce0b429898980eddbbf05c68e55?narHash=sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0%3D' (2025-05-07)
  → 'github:NixOS/nixpkgs/eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1?narHash=sha256-ByfPRQuqj%2BnhtVV0koinEpmJw0KLzNbgcgi9EF%2BNVow%3D' (2025-05-12)
• Updated input 'home-manager':
    'github:nix-community/home-manager/fb061f555f821fe4fb49f8f6f2a0cc3d5728bd52?narHash=sha256-IDsM/9/tHQBlhG3tXI2fTM84AUN1uRa7JDPT1LMlGes%3D' (2025-05-12)
  → 'github:nix-community/home-manager/8d832ddfda9facf538f3dda9b6985fb0234f151c?narHash=sha256-NnPzzXEqfYjfrimLzK0JOBItfdEJdP/i6SNTuunCGgw%3D' (2025-05-13)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/6cb36e8327421c61e5a3bbd08ed63491b616364a?narHash=sha256-GeC99gu5H6%2BAjBXsn5dOhP4/ApuioGCBkufdmEIWPRs%3D' (2025-05-08)
  → 'github:lnl7/nix-darwin/f88be00227161a1e9369a1d199f452dd5d720feb?narHash=sha256-Ou4zV3OskaDKlkuiM2VT%2B1w/xceXoZ5RRM4ZuW7n5%2BI%3D' (2025-05-13)
2025-05-13 21:30:23 +00:00
github-actions[bot]
fcd3accd34 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b3582c75c7f21ce0b429898980eddbbf05c68e55?narHash=sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0%3D' (2025-05-07)
  → 'github:NixOS/nixpkgs/eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1?narHash=sha256-ByfPRQuqj%2BnhtVV0koinEpmJw0KLzNbgcgi9EF%2BNVow%3D' (2025-05-12)
2025-05-13 21:30:19 +00:00
Matt Sturgeon
cbd5f7de5e
modules/lsp/onAttach: fix bufnr and document event arg
`:h event-args`: https://neovim.io/doc/user/api.html#event-args
`:h LspAttach`: https://neovim.io/doc/user/lsp.html#LspAttach

Fixes #3319
2025-05-13 18:45:00 +01:00
Farid Zakaria
ff0ccdf572
docs: add note on "following" nixpkgs input (#3317)
The use of `follows` in a flake can cause issues even when `useGlobalPackages` is disabled.

Highlight this in the doc.
2025-05-12 21:58:54 +01:00
Stanislav Asunkin
49a7bb573a modules/top-level: change usages of import to callPackage 2025-05-12 17:39:01 +03:00
Stanislav Asunkin
4c23fb2738 tests/modules/performance/combine-plugins: use shared stub plugins
This commit replaces stub plugins with the shared ones from utils
module.
This also removes separate tests for checking python and lua
dependencies. This is now tested in the 'default' test thanks to
`pluginChecks` code.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
a49b270861 tests/modules/performance/byte-compile-lua: use shared stub plugins
This commit finalizes using shared utils stub plugins for
performance.byteCompileLua tests.
To re-use more code from utils module, 'pluginChecksFor', 'libChecksFor'
and 'pythonChecksFor' functions were introduced. These functions
generate a check code for the given plugins/libs names.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
75f2c1b1f1 modules/performance: ensure dependencies of lua packages also compiled
Previously only extraLuaPackages themselves were byte-compiled, not
theirs dependencies. This commit fixes that by compiling lua packages
recursively. It uses byte-compile-lua-lib.nix shared file.
Also this commit uses the shared stub lua libraries for extraLuaPackages
byte-compiling test.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
9474ce916a modules/performance: ensure all lua dependencies are byte-compiled
This commit replaces custom lua plugins in tests with shared stub
plugins from utils module.
After this change the test has started to fail. Debugging this issue
I found out that dependencies of plugins weren't processed.
This commit improves the test assertion to detect duplicated
dependencies in this case and fixes the underlying issue by also
processing dependencies.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
2210d7bb10 tests/utils/plugin-stubs: add shared plugin stubs for use in tests
This commit introduces a shared utils module for future use in
performance tests. It includes lua libraries and plugins of various
types and dependencies. Additionally, it provides lua code snippets to
verify that all features supplied by the plugins are functioning
correctly.
2025-05-12 17:39:01 +03:00
Stanislav Asunkin
0d78a47792 modules/top-level/plugins: use mapNormalizedPlugins utils function 2025-05-12 17:39:01 +03:00
Stanislav Asunkin
2c6182351f modules/performance: add ability to byte-compile plugin lua dependencies
This commit adds byte compiling of plugin lua dependencies
(specifically propagatedBuildInputs). It's enabled by
`performance.byteCompileLua.luaLib` option.
2025-05-12 17:39:01 +03:00
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