Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib/neovim-plugin: Add lazyLoad option to plugins #1

Closed
wants to merge 33 commits into from
Closed

Conversation

psfloyd
Copy link
Owner

@psfloyd psfloyd commented Jul 16, 2024

This PR is the second split of PR nix-community#1866, it works on a solution for the issue nix-community#421.
All suggestions from the original PR are included.

Already implemented

  • Adding mkLazyLoadOption to generate lazyLoad options for plugins.
  • Adding and implementing a lazy-loading mechanism using lz.n.
  • Conditionally enabling lazy or regular loading depending on user settings in mkNeovimPlugin.

Planned

  1. Integrate with mkVimPlugin if necesary
  2. Allow multiple backends lz-n or lazy

Regarding 2.
Should we add a global config.lazyLoader option with global parameters for lazy-loading?
On that namespace we could add an enable option and apply it to the corresponding backend.

getchoo and others added 30 commits July 9, 2024 06:06
- Added `--commit` with a git-based message
- `nix fmt` only operates on files known to git
- ensure `generated` directory exists
- Rename workflow to simply "update"
- Drop the DeterminateSystems/update-flake-lock action
- Instead use `nix flake update --commit-lock-file`
- Also use `generate-files`'s `--commit` option
- Use peter-evans/create-pull-request to open a PR
The test fails if a nixvim maintainer is also a nixpkgs maintainer.
intellitab was still using the old deprecated option.
The plugin's default is not compatible with nix, because it ends up in
the read-only /nix/store.

Set our default to the one used in their upcoming "1.0" version.
opts getting wiped out by setting entire set as default instead of each
attribute
The plugin allows passing either the string `"all"` or a list of languages.
Introduce `_mk-source-plugin.nix`, which returns a module handling a
specific none-ls source plugin.

This wasn't possible previously due to IFD conflicting with evaluating
module imports.

Adjusted the test to use the `options` provided via module args, and
cleaned up some stuff allowing "unpackaged" sources to not be listed
again in the test file.
We can just make `packaged` nullable again.
Flake lock file updates:

• Updated input 'flake-parts':
    'github:hercules-ci/flake-parts/4e3583423212f9303aa1a6337f8dffb415920e4f' (2024-07-01)
  → 'github:hercules-ci/flake-parts/9227223f6d922fee3c7b190b2cc238a99527bbb7' (2024-07-03)
• Updated input 'git-hooks':
    'github:cachix/git-hooks.nix/0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07' (2024-06-24)
  → 'github:cachix/git-hooks.nix/2b6bd3c87d3a66fb0b8f2f06c985995e04b4fb96' (2024-07-08)
• Updated input 'home-manager':
    'github:nix-community/home-manager/59ce796b2563e19821361abbe2067c3bb4143a7d' (2024-07-01)
  → 'github:nix-community/home-manager/6b7ce96f34b324e4e104abc30d06955d216bac71' (2024-07-07)
• Updated input 'nix-darwin':
    'github:lnl7/nix-darwin/ec12b88104d6c117871fad55e931addac4626756' (2024-07-01)
  → 'github:lnl7/nix-darwin/0f89b73f41eaa1dde67b291452c181d9a75f10dd' (2024-07-07)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/00d80d13810dbfea8ab4ed1009b09100cca86ba8' (2024-07-01)
  → 'github:NixOS/nixpkgs/655a58a72a6601292512670343087c2d75d859c1' (2024-07-08)
• Updated input 'treefmt-nix':
    'github:numtide/treefmt-nix/bdb6355009562d8f9313d9460c0d3860f525bc6c' (2024-07-02)
  → 'github:numtide/treefmt-nix/6fc8bded78715cdd43a3278a14ded226eb3a239e' (2024-07-08)
- Run the `update.yml` workflow on the triggered branch, replace the
  job matrix with a conditional step that runs update on nixos-24.05.
- Added a `cancel-in-progress` concurrency group.
- Disabled committing in PR action (using negative add-paths).
> Unable to request reviewers.
> If requesting team reviewers a 'repo' scoped PAT is required.
This function will be used to generate lazyLoad options for plugins.
It is defined in options for later use in mkNeovimPlugin.
Using mkLazyLoadOption generate lazyLoad option for all plugins
generated using mkNeovimPlugin.
Plugin maintainers can opt out by setting `allowLazyLoad = false`.
Plugin maintainers can provide default vaules by setting option in
lazyLoad.
@psfloyd psfloyd changed the base branch from lz.init to main July 16, 2024 06:19
@psfloyd psfloyd closed this Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants