lazy.nvim/TODO.md

3.3 KiB

TODO

  • fancy UI to manage all your Neovim plugins

  • auto lazy-loading of lua modules

  • lazy-loading on events, commands, filetypes and key mappings

  • Partial clones instead of shallow clones

  • waits till missing deps are installed (bootstrap Neovim and start using it right away)

  • Async

  • No need to manually compile

  • Fast. Automatically caches and compiles byte code of all lua modules needed during startup

  • Correct sequencing of dependencies (deps should always be opt. Maybe make everything opt?)

  • Config in multiple files

  • dev option and patterns for local packages

  • Profiling

  • lockfile lazy-lock.json

  • upvalues in config & init

  • automatically check for updates

  • commit, branch, tag, version and full semver support

  • statusline component to see number of pending updates

  • semver https://devhints.io/semver

  • auto-loading on completion for lazy-loaded commands

  • bootstrap code

  • Background update checker

  • health checks: check merge conflicts async

    • unsupported props or props from other managers
    • other packages still in site?
    • other package manager artifacts still present? compiled etc
  • status page showing running handlers and cache stats

  • temp colorscheme used during startup when installing missing plugins

  • automatically reloads when config changes are detected

  • handlers imply opt

  • dependencies imply opt for deps

  • show spec errors in health

  • fix plugin details

  • show disabled plugins (strikethrough?)

  • log file

  • git tests

  • Import specs from other plugin managers

  • packspec

    • add support to specify engines, os and cpu like in package.json
    • semver merging. Should check if two or more semver ranges are compatible and calculate the union range
      • default semver merging strategy: if no version matches all, then use highest version?
    • package meta index (package.lua cache for all packages)
  • check in cache if rtp files match

  • I think the installation section, specifically the loading part, could use an extra sentence or two. I was confused on what config.plugins was initially. Maybe a quick, "for example, if you have a lua file ~/.config/nvim/lua/config/plugins.lua that returns a table" or something it'd remove most question marks I think.

  • When autoinstalling the plugins the cursor isn't focused on the floating window, but on the non-floating window in the background.

  • Doing :Lazy clean doesn't show which plugins were removed.

  • Shouldn't the "Versioning" section be in the "Lockfile" chapter?

  • Why are personal dotfiles used as examples? Dotfiles change all the time, there's no guarantee this will be relevant or even exist in two years.

  • What's the difference between lazy-loading and verylazy-loading?

  • Most emojis in "Configuration" aren't shown for me.

  • add section on how to uninstall

  • add :Packadd command or something similar

Typos:

  • automcatilly check for plugin updates
  • A custom name for the plugin used for the local plugin directory and as the dispay name
  • local plugins need to be explicitely configured with dir