Commit graph

3341 commits

Author SHA1 Message Date
Matt Sturgeon
83d3535097
docs/man: include all sections from lib-doc 2025-05-19 00:20:29 +01:00
Matt Sturgeon
0c7e2aa96b
docs: user-guide/helpers.mdlib/index.md
Move the user-guide to the new lib reference docs.

Added a MDBook redirect entry.

Updated man docs.
2025-05-19 00:19:57 +01:00
Matt Sturgeon
1c6dd6579a
docs: include function docs
Embed the function reference docs into the main docs website.
2025-05-19 00:19:57 +01:00
Matt Sturgeon
dfaea5982e
docs/lib: init
Generate reference docs for functions that have RFC145 style
doc-comments.

1. function locations

  `docs/lib/function-locations.nix` scans nixvim's extended lib,
  extracting "position entries" via `unsafeGetAttrPos`.

  This is then converted into a nixdoc `locations.json` map of
  "function name" → "markdown location string".

2. mdbook menu

  `docs/lib/menu.nix` renders a mdbook menu representing all page
  entries.

3. markdown pages

  `docs/lib/default.nix` expects a set of "page entries", which come
  from `docs/lib/pages.nix` by default. It passes this data to
  `function-locations.nix` and `menu.nix`, and uses it internally to
  render markdown pages.

  Page entries can contain a `file` to render using `nixdoc`, and also a
  `markdown` attribute which will be included at the top of the docs.

  Additionally, a `title` can be included. This forms the heading
  `$name: $title`, where `name` is derived from the page's attr-path.

  See https://github.com/nix-community/nixdoc
2025-05-19 00:19:56 +01:00
Gaetan Lepage
563fdaeef9 tests: disable papis test on darwin
https://github.com/NixOS/nixpkgs/issues/408528
2025-05-19 00:26:01 +02:00
Gaetan Lepage
98d9c173fc plugins/lsp: mark laravel_ls as unpackaged 2025-05-19 00:26:01 +02:00
github-actions[bot]
54a3864796 generated: Updated lspconfig-servers.json 2025-05-19 00:26:01 +02:00
github-actions[bot]
ab2c391f6a flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'dev-nixpkgs':
    'github:NixOS/nixpkgs/eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1?narHash=sha256-ByfPRQuqj%2BnhtVV0koinEpmJw0KLzNbgcgi9EF%2BNVow%3D' (2025-05-12)
  → 'github:NixOS/nixpkgs/12a55407652e04dcf2309436eb06fef0d3713ef3?narHash=sha256-N4cp0asTsJCnRMFZ/k19V9akkxb7J/opG%2BK%2BjU57JGc%3D' (2025-05-16)
• Updated input 'git-hooks':
    'github:cachix/git-hooks.nix/fa466640195d38ec97cf0493d6d6882bc4d14969?narHash=sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS%2BnoCWo%3D' (2025-05-06)
  → 'github:cachix/git-hooks.nix/80479b6ec16fefd9c1db3ea13aeb038c60530f46?narHash=sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo%2BbnXU9D9k%3D' (2025-05-16)
• Updated input 'home-manager':
    'github:nix-community/home-manager/7c1cefb98369cc85440642fdccc1c1394ca6dd2c?narHash=sha256-GBZulv50wztp5cgc405t1uOkxQYhSkMqeKLI%2BiSrlpk%3D' (2025-05-14)
  → 'github:nix-community/home-manager/ae755329092c87369b9e9a1510a8cf1ce2b1c708?narHash=sha256-5rCGrnkglKKj4cav1U3HC%2BSIUNJh08pqOK4spQv9RjA%3D' (2025-05-16)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/f88be00227161a1e9369a1d199f452dd5d720feb?narHash=sha256-Ou4zV3OskaDKlkuiM2VT%2B1w/xceXoZ5RRM4ZuW7n5%2BI%3D' (2025-05-13)
  → 'github:lnl7/nix-darwin/8817b00b0011750381d0d44bb94d61087349b6ba?narHash=sha256-4ZVr0x%2Bry6ybym/VhVYACj0HlJo44YxAaPGOxiS88Hg%3D' (2025-05-16)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/708ec80ca82e2bbafa93402ccb66a35ff87900c5?narHash=sha256-uoQ21EWsAhyskNo8QxrTVZGjG/dV4x5NM1oSgrmNDJY%3D' (2025-05-11)
  → 'github:numtide/treefmt-nix/ab0378b61b0d85e73a8ab05d5c6029b5bd58c9fb?narHash=sha256-bo1ptiFoNqm6m1B2iAhJmWCBmqveLVvxom6xKmtuzjg%3D' (2025-05-17)
2025-05-19 00:26:01 +02:00
github-actions[bot]
d20864c6c7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1?narHash=sha256-ByfPRQuqj%2BnhtVV0koinEpmJw0KLzNbgcgi9EF%2BNVow%3D' (2025-05-12)
  → 'github:NixOS/nixpkgs/12a55407652e04dcf2309436eb06fef0d3713ef3?narHash=sha256-N4cp0asTsJCnRMFZ/k19V9akkxb7J/opG%2BK%2BjU57JGc%3D' (2025-05-16)
2025-05-19 00:26:01 +02:00
Heitor Augusto
6ef96cb478
plugins/copilot-chat: add curl dependency 2025-05-18 15:27:42 -03:00
Heitor Augusto
928fc1a16f
plugins/copilot-chat: helpers -> lib.nixvim 2025-05-18 15:26:09 -03:00
Heitor Augusto
68dd111eb3
plugins/copilot-chat: remove with lib 2025-05-18 15:23:31 -03:00
Heitor Augusto
5474f9a33f
plugins/copilot-lua: add nodejs dependency and remove nodePackage option 2025-05-17 20:28:20 -03:00
Heitor Augusto
284ce8043b
plugins/copilot-lua: add curl dependency 2025-05-17 20:28:11 -03:00
Heitor Augusto
1deeb7f689
plugins/lsp: add package for luau_lsp 2025-05-17 12:32:21 -03:00
Matt Sturgeon
61c44d7a7f
docs/man: minor cleanup
- Move lua filter to separate file
- Use a subshell to write `nixvim-header.5`
- Use bash function to avoid repetition
2025-05-17 03:30:13 +01:00
Matt Sturgeon
2a4719f275
docs/mdbook: add page ToC
https://github.com/slowsage/mdbook-pagetoc
2025-05-17 02:24:00 +01:00
Matt Sturgeon
ffdeb40a50
flake/dev: sort flake inputs 2025-05-17 00:07:06 +01:00
Matt Sturgeon
0ccc452af2
maintainers: enforce sorting 2025-05-17 00:07:06 +01:00
Matt Sturgeon
0a6bd171cf
flake: add keep-sorted to treefmt 2025-05-17 00:07:06 +01:00
Matt Sturgeon
2628efee71
flake/devshell: add treefmt to shell 2025-05-16 04:29:34 +01:00
Matt Sturgeon
4c989abc8c
flake/devshell: run treefmt directly in format command
This is much faster than running `nix fmt`.

Running treefmt directly will use the treefmt installed in the current
shell. Running `nix fmt` will first re-evaluate the flake.
2025-05-16 04:29:34 +01:00
Matt Sturgeon
46e1359338
flake: use pre-configured treefmt package in git-hooks 2025-05-16 04:05:42 +01:00
github-actions[bot]
95ca65c8d1 flake/dev/flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/8d832ddfda9facf538f3dda9b6985fb0234f151c?narHash=sha256-NnPzzXEqfYjfrimLzK0JOBItfdEJdP/i6SNTuunCGgw%3D' (2025-05-13)
  → 'github:nix-community/home-manager/7c1cefb98369cc85440642fdccc1c1394ca6dd2c?narHash=sha256-GBZulv50wztp5cgc405t1uOkxQYhSkMqeKLI%2BiSrlpk%3D' (2025-05-14)
2025-05-14 12:16:07 +00:00
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