Merge pull request #734 from horriblename/lazy-file
Some checks are pending
Set up binary cache / cachix (default) (push) Waiting to run
Set up binary cache / cachix (maximal) (push) Waiting to run
Set up binary cache / cachix (nix) (push) Waiting to run
Validate flake & check documentation / Validate Flake Documentation (push) Waiting to run
Validate flake & check documentation / Validate hyperlinks in documentation sources (push) Waiting to run
Validate flake & check formatting / Validate Flake (push) Waiting to run
Validate flake & check formatting / Formatting via Alejandra (push) Waiting to run
Build and deploy documentation / Check latest commit (push) Waiting to run
Build and deploy documentation / publish (push) Blocked by required conditions
Check for typos in the source tree / check-typos (push) Waiting to run

lazy: create LazyFile user event, load copilot-lua on LazyFile
This commit is contained in:
raf 2025-03-23 16:04:56 +00:00 committed by GitHub
commit 14fb42562e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 38 additions and 3 deletions

View file

@ -38,3 +38,22 @@ As of version **0.7**, we exposed an API for configuring lazy-loaded plugins via
}; };
} }
``` ```
## LazyFile event {#sec-lazyfile-event}
You can use the `LazyFile` user event to load a plugin when a file is opened:
```nix
{
config.vim.lazy.plugins = {
"aerial.nvim" = {
package = pkgs.vimPlugins.aerial-nvim;
event = [{event = "User"; pattern = "LazyFile";}];
# ...
};
};
}
```
You can consider `LazyFile` as an alias to
`["BufReadPost" "BufNewFile" "BufWritePre"]`

View file

@ -89,6 +89,7 @@
[blink.cmp]: https://github.com/saghen/blink.cmp [blink.cmp]: https://github.com/saghen/blink.cmp
- Add [blink.cmp] support. - Add [blink.cmp] support.
- Add `LazyFile` user event.
[diniamo](https://github.com/diniamo): [diniamo](https://github.com/diniamo):
@ -244,8 +245,8 @@
syncing of nvim shell environment with direnv's. syncing of nvim shell environment with direnv's.
- Add [blink.cmp] source options and some default-disabled sources. - Add [blink.cmp] source options and some default-disabled sources.
- Add [blink.cmp] option to add - Add [blink.cmp] option to add
[friendly-snippets](https://github.com/rafamadriz/friendly-snippets) [friendly-snippets](https://github.com/rafamadriz/friendly-snippets) so
so blink.cmp can source snippets from it. blink.cmp can source snippets from it.
- Fix [blink.cmp] breaking when built-in sources were modified. - Fix [blink.cmp] breaking when built-in sources were modified.
[TheColorman](https://github.com/TheColorman): [TheColorman](https://github.com/TheColorman):

View file

@ -37,6 +37,12 @@ in {
inherit (cfg) setupOpts; inherit (cfg) setupOpts;
after = mkIf cfg.cmp.enable "require('copilot_cmp').setup()"; after = mkIf cfg.cmp.enable "require('copilot_cmp').setup()";
event = [
{
event = "User";
pattern = "LazyFile";
}
];
cmd = ["Copilot" "CopilotAuth" "CopilotDetach" "CopilotPanel" "CopilotStop"]; cmd = ["Copilot" "CopilotAuth" "CopilotDetach" "CopilotPanel" "CopilotStop"];
keys = [ keys = [
(mkLuaKeymap ["n"] cfg.mappings.panel.accept (wrapPanelBinding ''require("copilot.panel").accept'' cfg.mappings.panel.accept) "[copilot] Accept suggestion" {}) (mkLuaKeymap ["n"] cfg.mappings.panel.accept (wrapPanelBinding ''require("copilot.panel").accept'' cfg.mappings.panel.accept) "[copilot] Accept suggestion" {})

View file

@ -134,6 +134,15 @@ in {
startPlugins = ["lz-n" "lzn-auto-require"]; startPlugins = ["lz-n" "lzn-auto-require"];
optPlugins = pluginPackages; optPlugins = pluginPackages;
augroups = [{name = "nvf_lazy_file_hooks";}];
autocmds = [
{
event = ["BufReadPost" "BufNewFile" "BufWritePre"];
group = "nvf_lazy_file_hooks";
command = "doautocmd User LazyFile";
once = true;
}
];
lazy.builtLazyConfig = '' lazy.builtLazyConfig = ''
require('lz.n').load(${toLuaObject lznSpecs}) require('lz.n').load(${toLuaObject lznSpecs})

View file

@ -126,7 +126,7 @@
}; };
event = mkOption { event = mkOption {
type = nullOr (oneOf [str (listOf str) lznEvent]); type = nullOr (oneOf [str lznEvent (listOf (either str lznEvent))]);
default = null; default = null;
description = "Lazy-load on event"; description = "Lazy-load on event";
}; };