lazy.nvim/CHANGELOG.md

143 KiB

Changelog

11.9.1 (2024-06-30)

Performance Improvements

  • automatically suspend the scheduler when all threads are waiting (#1591) (c7ed87f)
  • suspend when tasks are active (2f4ac03)

11.9.0 (2024-06-29)

Features

Bug Fixes

  • ui: when closing details, jump to plugin header. Closes #1338 (3772914)

11.8.2 (2024-06-29)

Bug Fixes

  • process: deal with process errors (a75d950)
  • ui: save/restore view right before/after rendering (5d334b9)

Performance Improvements

  • rocks: vim.fn.executable is slow on WSL2, so only check for luarocks when needed. Closes #1585 (9ab3061)

11.8.1 (2024-06-29)

Bug Fixes

  • async: remove debug assert (3513227)

11.8.0 (2024-06-29)

Features

  • plugin: allow loading specs without pkg (695a058)

11.7.0 (2024-06-29)

Features

  • minit: fallback to habamax when no colorscheme set (88f4d13)

11.6.0 (2024-06-29)

Features

  • task: build procs can now yield a LazyMsg for more control (9cf7459)

11.5.2 (2024-06-28)

Bug Fixes

11.5.1 (2024-06-28)

Bug Fixes

Performance Improvements

  • async render (ab46edb)
  • use timer instead of check for async executor (f85575a)

11.5.0 (2024-06-27)

Features

  • added opts.headless to control ansi output when running headless (a0a51c0)
  • added localleader-i to inspect a plugin (2e1167d)
  • health: show steps to get luarocks working. See #1570 (c0fd59b)
  • health: show user's lazy.nvim version in checkhealth (9c8e7a4)
  • ui: keep cursor position when rendering view (591ded8)
  • ui: remap gx -> K. Fixes #1561 (e3e4314)
  • ui: show indication of plugins that need build. See #1563 (53f314d)

Bug Fixes

  • manage: dont skip install for plugins that need a build, but dont have an url (like local plugins). Fixes #1563 (a0391c3)
  • meta: resolve deps from meta instead of fragments. Fixes #1566 (6a42327)
  • pkg: only show pkg changed when effectively changing a pkg file. Fixes #1567 (24a86d5)
  • rocks: if installing with luarocks (binaries) fails, then build from source. Fixes #1563 (8227632)
  • runner: only check for errors when a task is no longer running (e02c5b1)
  • runner: only use Config.plugins when updated. Fixes #1560 (97f4df0)
  • runner: properly do concurrency (66a4170)
  • runner: wait_step (93b3a77)
  • ui: diagnostics without status (249902a)

Performance Improvements

  • prevent active waiting in coroutines. suspend/resume instead (68cee30)

11.4.2 (2024-06-26)

Bug Fixes

  • config: dont start checker/change_detection when running headless (2aa8e06)
  • git: fetch commit from origin or local to check if branch was changed. See #1549 (28e435b)
  • rocks: build.type instead of build.build_type (aa1c957)
  • rockspec: dont lazy-load rock deps (4733611)
  • runner: bring concurrency back (56075b5)
  • ui: don't show output when it's the same as error (e79805d)

Performance Improvements

  • tasks are now fully async (0614ca6)
  • util: improve impl of throttle (3695215)

11.4.1 (2024-06-25)

Bug Fixes

  • health: show what plugins need luarocks and if none, use warnings instead of errors. See #1551 (0d9fd63)

11.4.0 (2024-06-25)

Features

  • pkg: utils to get rock to url mappings (be74a8a)
  • rocks: simple rockspecs are now fully resolved by lazy without luarocks. See #1548 (6b8bf58)

Bug Fixes

  • meta: only tag new top-level pkg fragment as optional (25981e1)

11.3.0 (2024-06-25)

Features

  • rocks: use hererocks to install luarocks when luarocks is not found (d87da76)

Bug Fixes

  • fragments: check for empty plugin names (dea1f68)
  • meta: no need to check for old_dir when frags were not built yet. Fixes #1550 (24c8322)
  • rocks: better errors / warnings when something goes wrong with luarocks (7d3f691)
  • rocks: hererocks paths on windows (45cd8d3)
  • rocks: windows (4ca3e9a)

11.2.1 (2024-06-24)

Bug Fixes

  • loader: no need to check plugin.dir in auto_load (62a47b9)

11.2.0 (2024-06-24)

Features

  • rewrite some known plugins to lazy specs instead of luarocks (plenary.nvim). Closes #1540 (a089d43)

Performance Improvements

  • minimize meta rebuild when loading specs (1446f6c)

11.1.0 (2024-06-24)

Features

  • make it easier to disable luarocks (07c067a)
  • show rockspec deps in plugin details (656d3d1)

Bug Fixes

  • health: added luarocks check to health (0f45c0d)
  • health: only check for luarocks when luarocks is enabled. (ae4881d)
  • health: show missing luarocks as warning (e3ee51b)
  • runner: sync package specs after installing and before building (105d480)

11.0.1 (2024-06-24)

Bug Fixes

  • rocks: dont trigger rebuild for luarocks when build is overriden (146de4e)

11.0.0 (2024-06-24)

⚠ BREAKING CHANGES

  • new docs for v11.0

Features

  • added support for plugin packages by lazy, rockspec and packspec (3be55a4)
  • build: build files and functions are now async. use coroutine.yield to interrupt and report progress (368747b)
  • luarocks support (f1ba2e3)
  • meta: check for dir changes for plugins already added to the rtp (ee2ca39)
  • new docs for v11.0 (183f59e)
  • packspec (8eba74c)
  • pkg: import package specs in the scope of the plugin (c1912e2)
  • rewrite of spec resolving (75ffe56)
  • spec.rocks is no longer needed & added support for installing any luarock (fcfd548)

Bug Fixes

  • fragments: prevent adding the same spec instance more than once (dbffad6)
  • luarocks: cleanup luarocks when deleting a plugin (b73c57e)
  • pkg: automatically update pkgs when editing a pkg file (7b6ddbf)
  • pkg: correctly pre-load package specs and remove them when needed during resolve (4326d4b)
  • pkg: make sure state dir exists (3515cb5)
  • pkg: versioning and reload specs when pkg-cache is dirty (fd8229d)
  • rocks: only build rockspec when it has deps or an advanced build step (9a6c219)

10.24.3 (2024-06-23)

Bug Fixes

10.24.2 (2024-06-16)

Bug Fixes

  • plugin: rebuild optional when needed and remove frags from parent deps. Fixes #1402 (b4316da)

10.24.1 (2024-06-16)

Bug Fixes

  • plugin: better way of dealing with local specs. Fixes #1524 (be5dfba)

10.24.0 (2024-06-15)

Features

  • find local_spec in parent directories as well. Closes #1519 (e2e10d9)

Bug Fixes

  • plugin: check optional plugins again after resolving enabled. Fixes #1402 (067fd41)

10.23.0 (2024-06-07)

Features

  • plugin: opts_extend can be a list of dotted keys that will be extended instead of merged (1f7b720)
  • util: opts merging now supports lists extending by tagging a table with __extend = true. Use with care (74fd361)

10.22.2 (2024-06-06)

Bug Fixes

  • keys: buffer-local nop mappings (ff90417)
  • keys: never lazy-load <nop> or empty rhs keymaps (3e4c795)

10.22.1 (2024-06-02)

Bug Fixes

10.22.0 (2024-06-01)

Features

  • set vim.env.LAZY to lazy root (6a141a6)

10.21.2 (2024-05-31)

Bug Fixes

  • ui: deduplicate plugins when selecting multiple (#1491) (b77aaa0)

10.21.1 (2024-05-31)

Bug Fixes

  • view: backward compat for older Neovim versions. Fixes #1489 (917dfbe)

10.21.0 (2024-05-26)

Features

  • added support for local spec files .lazy.lua (9dde1f1)
  • single-plugin keys in the lazy view in visual mode (#1476) (7667a73)

Bug Fixes

  • render: disable underline for diagnostics (#1478) (ea7b9c3)

10.20.5 (2024-05-21)

Bug Fixes

  • checker: ignore dev plugins (#1384) (2e04a0c)
  • git: force autocrlf=false. Fixes #1055 (d2a4ce2)
  • help: get rid of any tbl_flatten or iter flatten code (56a34a8)
  • keys: properly deal with ft list for keys. Fixes #1448 (82cf974)
  • keys: properly re-create buffer-local mappings. Fixes #1448 (39de11a)
  • use vim.iter():flatten():totable() over vim.tbl_flatten (#1454) (d039aec)

10.20.4 (2024-05-12)

Bug Fixes

  • heath: vim.uv. Fixes #1412 (481aed7)
  • reload: strings in lua reload (#1439) (2fcbcaf)
  • ui: add conditional nvim_get_hl_by_name for Neovim 0.8.0 (#1429) (24234f4)
  • ui: hover now opens repo url when no diff with main. Fixes #1430 (4084506)
  • ui: set backdrop filetype to lazy_backdrop. Fixes #1399 (31ddbea)

10.20.3 (2024-03-28)

Bug Fixes

  • ui: disable backdrop when Neovim is transparent (0ccf031)

10.20.2 (2024-03-27)

Bug Fixes

  • ui: only enable backdrop when guicolors is set. Fixes #1387 (d37a76b)
  • ui: special handling for floats closed before VimEnter. Seems that WinClosed events dont execute before that. Fixes #1390 (eefb897)

10.20.1 (2024-03-26)

Bug Fixes

10.20.0 (2024-03-26)

Features

  • ui: backdrop for the lazy floating window. Can be disabled with opts.ui.backdrop (a6b74f3)

Bug Fixes

10.19.0 (2024-03-22)

Features

  • util: option to force system app for util.open (66466a2)

10.18.3 (2024-03-22)

Bug Fixes

10.18.2 (2024-03-22)

Bug Fixes

10.18.1 (2024-03-22)

Bug Fixes

  • uv shim was not falling back to vim.loop (#1370) (61dddae)

10.18.0 (2024-03-22)

Features

  • refactor all vim.loop -> vim.uv and add a shim when needed (9e157df)

10.17.0 (2024-03-07)

Features

  • loader: warn when maplocalleader is changed after init (#1326) (0694651)

Bug Fixes

  • manage: better support for using the default colorscheme during install. See #1277 (670a6fe)
  • types: fix incorrect LuaLS types (#1339) (5aea4e7)
  • ui: remove a single space character from home title (#1309) (d5c58bb)
  • update to new treesitter capture groups (#1294) (298bed1)

10.16.0 (2024-01-21)

Features

Bug Fixes

  • fs: error when plugin directory to delete is not a valid directory (47d4baa)
  • git: comment sign detection in get_config function (#1281) (d0d410b)
  • health: dont warn on submodules. Fixes #1174 (1b3df6c)
  • keys: allow global/local ft keymaps to exist at the same time. Fixes #1241 (5757b55)
  • keys: fix abbreviation expansion on lazy load (#1219) (d09084c)
  • keys: make sure we don't delete the global mapping when executing an ft keymap. See #1241 (a9b9a4b)

10.15.1 (2023-11-04)

Bug Fixes

  • build: allow build=false to skip building (314193a)
  • ui: properly highlight breaking change commit scope (#1160) (3674036)

10.15.0 (2023-10-25)

Features

  • ui: check pinned packages that can't be updated (#1139) (4446fdb)

Bug Fixes

  • loader: when reloading, clear plugin properties cache (#1153) (312e424), closes #445

10.14.6 (2023-10-17)

Bug Fixes

  • cmd: schedule error message instead of showing directly (03419f3)
  • loader: dont autoload when lazy handlers have not been setup yet. Fixes #1132 (daab5fe)
  • ui: running tasks are now less twitchy (7613ab2)

10.14.5 (2023-10-17)

Bug Fixes

  • loader: fixed event check in reload. Fixes #1124 (cdfa788)

10.14.4 (2023-10-16)

Bug Fixes

  • ui: fixed keymaps in debug view (fb9795e)

10.14.3 (2023-10-16)

Performance Improvements

  • plugin: cache lazy handler values (c1b9887)

10.14.2 (2023-10-16)

Bug Fixes

  • plugin: work-around for Plugin.values error. Will add proper fix later. Fixes #1124 (2270bbb)

10.14.1 (2023-10-16)

Bug Fixes

  • loader: don't load handlers before installing plugins (1cfd6d1)

10.14.0 (2023-10-15)

Features

  • plugin: treat url changes as warnings. They will only be shown with checkhealth (0c53d46)

Bug Fixes

  • plugin: dont allow dir changes when we already loaded files from the plugin's old dir. Show an error in this case. Fixes #993 (c8e2091)
  • plugin: improved dir/dev merging. Fixes #993 (3dc413d)

10.13.4 (2023-10-14)

Bug Fixes

  • cmd: lazy-cmds no longer show an error for buffer-local commands (3b31897)

10.13.3 (2023-10-14)

Bug Fixes

  • ui: sort lazy plugin handlers (ad5da0a)

10.13.2 (2023-10-13)

Bug Fixes

  • float: disable swapfile for files shown in Float (3769461)
  • util: Util.merge now skips nil args (70f764b)

10.13.1 (2023-10-12)

Bug Fixes

  • git: unset GIT_INDEX_FILE so we dont accidentally overwrite a different git repo. Fixes #1107 (7f70dd1)

10.13.0 (2023-10-12)

Features

10.12.0 (2023-10-11)

Features

  • event: added support for structured events (see readme on event) (303a3ed)
  • event: custom lazy event hook for distros (b65d308)

Bug Fixes

  • ui: use actual handler values for rendering plugin handlers (99ee284)

10.11.0 (2023-10-10)

Features

  • util: expose pretty stacktraces for notify (7b84609)

10.10.0 (2023-10-10)

Features

  • git: show error for local changes during check/update (43e9165)
  • git: show help on how to remove local changes (58e5726)

Bug Fixes

  • docs: broken table in readme (#1097) (89581ce)
  • git: automatically restore doc/tags when modified (736529d)
  • process: make sure cwd is a valid directory (92869d0)

10.9.1 (2023-10-09)

Bug Fixes

  • manage: prevent auto conversion 'CRLF' to 'LF' in update lazy-lock.json on Windows. Fixes #1093 (#1094) (5579d72)
  • profiling: ensure proper traces in case of require errors (2782f81)

10.9.0 (2023-10-09)

Features

  • profiling: added options to enable additional profiling (423a152)

Performance Improvements

10.8.2 (2023-10-08)

Bug Fixes

  • keys: fixed adding managed keys (9d92e65)

10.8.1 (2023-10-08)

Bug Fixes

10.8.0 (2023-10-08)

Features

  • keys: refactor code and allow disabling keymaps per mode. mode no longer needs to be exactly the same in order to disable. (b79099c)

10.7.3 (2023-10-07)

Bug Fixes

  • keys: fixed buffer-local mappings (09e30f8)

10.7.2 (2023-10-07)

Bug Fixes

  • event: move all ft logic to the event handler (8871602)
  • ft: fix ft handlers to properly use new events. Fixes #1084 (e4ea874)

10.7.1 (2023-10-06)

Bug Fixes

  • event: prevent loading event handler more than once in some cases (6b37927)

10.7.0 (2023-10-06)

Features

  • plugin: added support for cond for imports (#1079) (58e954a)

Bug Fixes

  • event: better dealing with even handlers. Fixes #788 (ef2a5d0)
  • event: use tbl_contains instead of list_contains (2b2adb9)

10.6.0 (2023-10-05)

Features

  • keys: you can now create buffer-local filetype keymaps by specifying ft=. Fixes #1076 (c42e63c)

10.5.1 (2023-10-04)

Bug Fixes

  • plugin: rebuild plugins after fixing optional and cond to ensure enabled will work correctly (638c8e6)

10.5.0 (2023-10-03)

Features

  • plugin: keep track of the module a spec fragment was defined in (8eb8de2)

Performance Improvements

  • util: don't try to load nvim-treesitter when markdown parser is builtin (8b73492)

10.4.1 (2023-09-30)

Bug Fixes

  • plugin: prevent recursive loop with cond=false. Fixes #1061 (09e5010)

10.4.0 (2023-09-29)

Features

  • plugin: dont include plugin spec fragments for disabled or optional plugins (#1058) (f3c7169)

Bug Fixes

  • help: sort readme tags case sensitive. Fixes #67 (54ecfc7)
  • ui: sort plugins case insensitive (4f27fc3)

10.3.1 (2023-09-27)

Bug Fixes

  • properly setup handlers when loading a plugin before startup (build) etc (24f6b6f)
  • return true when opening diff (#970) (0e1d264)

10.3.0 (2023-07-22)

Features

  • plugins: Given an optional plugin, conditionally discard deps (#947) (e7334d8)

10.2.1 (2023-07-22)

Bug Fixes

  • loader: getscriptinfo compat with stable. Fixes #944 (e428c5e)

10.2.0 (2023-07-20)

Features

  • view: add option ui.pills. Set to false to disable the top buttons in the lazy window (#938) (84266b9)

10.1.0 (2023-07-12)

Features

  • loader: LazyLoad event with plugin name as data field. Useful to do stuff when a plugin loads (ea5b2e0)

10.0.2 (2023-07-09)

Bug Fixes

  • event: pass data to event lazy loaders. Fixes #922 (fd94e69)

10.0.1 (2023-07-06)

Bug Fixes

  • stats: corrected typo in cputime() for Linux (#916) (5082cd5)

10.0.0 (2023-07-06)

⚠ BREAKING CHANGES

  • plugin: cond is now the same as enabled, but skips clean

Features

  • plugin: cond is now the same as enabled, but skips clean (fbb0bea)

9.25.1 (2023-06-30)

Bug Fixes

  • build: allow build command to override plugin's build and option to disable warning (189371c)

9.25.0 (2023-06-30)

Features

  • build: added support for build.lua, build/init.lua (#903) (4c26421)

Bug Fixes

  • health: false warning when checking plugins configured with 'optional' key (#897) (24803fc)

9.24.2 (2023-06-22)

Bug Fixes

  • config: on windows default concurrency is now set to 2*available parallelism. See #887 (d7d5842)

9.24.1 (2023-06-19)

Bug Fixes

  • debug: show original keymaps instead of ids for the keys handler (56b1f77)
  • manage: trigger LazySyncPre. Fixes #881 (6163413)
  • ui: trailing space in button row. Fixes #884 (410a736)

9.24.0 (2023-06-17)

Features

Bug Fixes

  • ui: set wo options with local. don't use vim.wo. See #829 (7f4da7d)

9.23.0 (2023-06-08)

Features

  • startup: added data/site to the rtp. Will be used by upcoming treesitter version (f131606)

Bug Fixes

  • event: dont use autocmd pattern to detect event retriggering. Fixes #858 (bc89502)

9.22.2 (2023-06-03)

Bug Fixes

  • ui: setup colors when loading a float (dbb2b60)

9.22.1 (2023-06-03)

Bug Fixes

  • keys: replace term codes to calculate ids (d65a3d6)

9.22.0 (2023-06-03)

Features

  • float: floats can now be persistent (94472b8)

9.21.1 (2023-05-28)

Bug Fixes

  • loader: don't run ftdetect twice for paths already on the rtp during startup. Fixes #839 (36a9132)

9.21.0 (2023-05-27)

Features

  • commands: added highly experimental Lazy reload ... command. See #445 (a6c8f22)
  • loader: when reloading, always re-source loaded vimscript files. See #445 (d8a5829)

Bug Fixes

  • ui: make progress bar work again (efa02ff)

9.20.0 (2023-05-27)

Features

  • ui: added support for setting a title of the lazy window. Fixes #814 (9dce081)

9.19.1 (2023-05-27)

Bug Fixes

  • plugin: delay check if plugin ref exists until after loading all plugins. Fixes #833 (199e100)
  • plugin: fixup. It's fine that Plugin.url doesn't exist (42ff600)

9.19.0 (2023-05-25)

Features

  • git: change default log args to last 8 (49a7f21)
  • plugin: trigger LazyPlugins after loading plugin specs (57062f3)

Bug Fixes

  • plugin: check that import is a string. See #825 (c325c50)
  • plugin: fix url based plugin name and added extra safety checks. Fixes #824 (32170a8)

9.18.2 (2023-05-23)

Bug Fixes

9.18.1 (2023-05-22)

Bug Fixes

  • plugin: rename weak => optional. Makes more sense :) (9177778)

9.18.0 (2023-05-22)

Features

  • plugin: added support for weak specs. They will not be included in the final spec if not specified somewhere else (8564f6d)

Bug Fixes

  • better weak handling (af39d61)
  • ui: close ui when opening a help file. Fixes #808 (cc7a764)
  • ui: take border into account for window position. Fixes #812 (451f217)

9.17.0 (2023-05-18)

Features

  • cmd: added Lazy load all to load all plugins (11131ea)

9.16.1 (2023-05-17)

Bug Fixes

  • loader: dont clear tasks when installing missing plugins (80c4dec)
  • loader: reset cache before installing plugins during startup. Fixes #803 (aecdaab)

9.16.0 (2023-05-13)

Features

  • loader: added explicit support for finding the main module for mini.nvim plugins (dab6cd5)

9.15.0 (2023-05-13)

Features

  • ui: show the loaded icon for local plugins in a different color (96dd205)

Bug Fixes

  • config: use url_format for the lazy plugin (#792) (d2d67b5)

9.14.11 (2023-05-05)

Bug Fixes

  • ui: don' render extmarks for empty lines (dbe0e29)

9.14.10 (2023-05-02)

Bug Fixes

  • ui: issue with rendering empty lines. Fixes #770 (98ba47e)

9.14.9 (2023-05-02)

Bug Fixes

9.14.8 (2023-04-27)

Bug Fixes

  • health: show error if setup didn't run (0c7b418)

9.14.7 (2023-04-24)

Bug Fixes

  • build: make sure to properly load handlers for plugins that were built during startup. Fixes #744 (a758588)

9.14.6 (2023-04-23)

Bug Fixes

  • util: use vim.o.shell by default (0cbf466)

9.14.5 (2023-04-19)

Bug Fixes

  • loader: keep using the internal lua cache till 0.9.1 (78b981b)

9.14.4 (2023-04-18)

Bug Fixes

  • cmd: show descriptive error when command was not found after loading its plugins (b582fc5)

9.14.3 (2023-04-16)

Bug Fixes

  • checkhealth: use non-deprecated versions if possible (#729) (c8cad54)
  • render: show message if not yet committed (#707) (b7a1a0f)

9.14.2 (2023-03-25)

Bug Fixes

  • keys: dont add (n) to keys id (9f9d733)

9.14.1 (2023-03-24)

Bug Fixes

  • cache: handle corrupted cache files (db5b67e)

9.14.0 (2023-03-22)

Features

  • ui: added test to dimmed commits (0e230ca)

Bug Fixes

9.13.1 (2023-03-20)

Bug Fixes

9.13.0 (2023-03-17)

Features

9.12.1 (2023-03-16)

Bug Fixes

  • cmd: properly deal with commands with nargs=? or nargs=1. Fixes #659 (efe36bd)

9.12.0 (2023-03-15)

Features

  • cache: automatically reset topmods when a user changes a file for a path on the rtp (5b7b8c5)
  • cache: drop dependency on ffi (810acc1)
  • cache: remove any mentions of lazy. Move the cache to cache/luac instead of cache/lazy/luac (49dda87)
  • cache: use vim.cache everywhere. poly-fill when needed (ea1a044)

Bug Fixes

  • cache: remove dependency on jit (942c805)

9.11.0 (2023-03-14)

Features

  • plugin: added config.defaults.cond. Fixes #640 (9afba38)

Bug Fixes

  • loader: never load lua files from a plugin where cond=false. Show error instead (10f5844)

9.10.3 (2023-03-13)

Bug Fixes

9.10.2 (2023-03-07)

Bug Fixes

  • git: always set origin name when cloning (#622) (53be2c0)
  • plugin: properly pass is_list for recursively merging props (355312e)

9.10.1 (2023-03-04)

Bug Fixes

  • process: unset GIT_WORK_TREE (c60f7ea)

9.10.0 (2023-03-02)

Features

  • render: dim housekeeping commits by default (#612) (1f7ffec)

9.9.0 (2023-02-28)

Features

  • health: check for paths on the rtp from plugged or packer (9bd1c94)

Bug Fixes

  • cache: add hack to work-around incorrect requires back. Not a fan of this. Fixes #603 (79f85e5)
  • git: honor clone.defaultRemoteName. Fixes #602 (5af9380)
  • git: properly deal with failed clones. Fixes #571 (7722378)
  • health: whitelist deactivate prop (5694483)
  • keys: set nowait for lazy keymaps when needed. Fixes #600 (1657ae9)
  • ui: always show diagnostics virtual text (0f713b2)

9.8.5 (2023-02-20)

Bug Fixes

  • ui: disable colorcolumn on floating window (#575) (43496fa)
  • ui: don't close on BufLeave. Fixes #561 (7339145)

9.8.4 (2023-02-17)

Bug Fixes

  • spec: make sure imported specs are sorted alphabetically (ff76e58)
  • ui: return abort key instead of <c-c> (5cfe156)

9.8.3 (2023-02-16)

Bug Fixes

  • cache: hack to work around plugins trying to load relatve modules. Fixes #543 (e916f41)
  • ui: disable folding of floating window (#550) (6771c7e)

9.8.2 (2023-02-15)

Bug Fixes

  • cache: lsmod now also supports lua libs. Fixes #544 (9ca3222)

9.8.1 (2023-02-14)

Bug Fixes

  • keys: fixed keys types. rhs can be false (6a18404)

Performance Improvements

9.8.0 (2023-02-13)

Features

  • git: Plugin.submodules = false will now skip fetching git submodules (0d3f2c4)

Bug Fixes

  • cmd: fix Error when trigger on range defined command that doesn't support count (#519) (a147110)
  • icons: replace an obsolete Nerd icon (#529) (bc978ca)
  • loader: don't deactivate when not loaded (c83d2ae)
  • util: executable checks for Util.open (#528) (4917222)

Performance Improvements

  • new file-based cache that ensures correct rtp order (#532) (462633b)

9.7.0 (2023-02-08)

Features

  • deactivate WIP (57a3960)
  • use "wslview" instead of "xsl-open" if it exists (#509) (2451ea4)

Bug Fixes

  • install: dont load the colorscheme again if a config() of the colorscheme also loads it. Fixes #488 (49b43de)
  • keys: feed keys instead of returning expr for Neovim 0.8.x. Fixes #511 (c734d94)
  • keys: refactor retrigger mechanism (#428) (4272d21)
  • keys: replace keycodes manually (ddaffa0)

9.6.0 (2023-02-07)

Features

  • cmd: use cmd table instead of trying to create the cmd string. Fixes #472 (3c29f19)

9.5.1 (2023-02-06)

Bug Fixes

  • commands: sync with plugins list should not delete those plugins. Fixes #475 (0c98031)
  • health: existing packages on windows. Fixes #474 (527f83c)
  • log: properly check if plugin dir is a git repo before running git log (3d2dcb2)
  • process: allow overriding GIT_SSH_COMMAND. Fixes #491. Fixes #492 (452d4eb)

9.5.0 (2023-01-24)

Features

  • config: added option to disable git filter. NOT recommended. Fixes #442 (26a67e3)
  • dev: optionally fallback to git when local plugin doesn't exist (#446) (772d888)
  • health: check for git in health checks (9b5cc1b)
  • util: utility method to walk over all modules in a directory (5d9d354)

Bug Fixes

  • checker: dont check for updates when there's tasks with errors (c32a618)
  • checker: dont clear tasks when running update check (ed21070)

9.4.0 (2023-01-22)

Features

  • added config.ui.wrap and improved wrapping when wrap=true. Fixes #422 (d6fc848)
  • checker: checker will now save last check time and only check at configured frequency even after restarting Neovim (813fc94)

Bug Fixes

  • checker: make sure we show logs when only doing a fast check (4008b57)
  • git: unset GIT_DIR when spawning a process. Fixes #434 (9858001)
  • render: get profile_{sort,filter} key bindings from ViewConfig (#416) (27ca918)
  • spec: dont complain about an invalid short url, when a full url is set. Fixes #421 (c389ad5)

9.3.1 (2023-01-17)

Bug Fixes

  • git: when a Plugin.branch is set, don't use config.defaults.version. Fixes #409 (bd37afc)
  • spec: dont copy dep and super state from existing plugins (da4e8cc)
  • spec: when overriding a spec by name that has not been imported yet, show an error when needed (baaf8dd)
  • work-around for libuv issue where fs_scandir_next sometimes fails to return a file type (c791c0e)

Performance Improvements

  • plugin: de-duplicate dependencies, keys, ft, event and cmd (1b2a6f6)

9.3.0 (2023-01-16)

Features

  • git: some debugging tools for git (208f91b)
  • keys: allow overriding a keys value to vim.NIL to not add the key (fdf0332)
  • spec: overriding keys with an rhs of false will remove the key instead (870af80)
  • spec: you can now override specs using only the plugin name instead of the short url (0cbd91d)

Bug Fixes

  • build: make sure rplugin.vim is loaded when doing a build. Fixes #382 (666ed7b)
  • loader: load plugin opts inside a try clause to report errors (7160ca4)
  • util: rever (e8cb863)

Performance Improvements

  • util: dont trigger VeryLazy autocmds when exiting (1e67dc0)
  • util: properly check that Neovim is exiting. Dont run VeryLazy when that's the case (efe72d9)

9.2.0 (2023-01-13)

Features

  • commands: allow commands like Lazy ... | ... (#377) (7b78ce3)
  • spec: event, keys, ft and cmd can now also be a function that returns the values to be used (2128ca9)

Bug Fixes

  • cache: de-duplicate topmods. Fixes #349 (81017b9)
  • float: only clear diagnostics for valid buffers (7b0d1a7)
  • ui: open diff and others over the ui. Don't try to be smart about it. Fixes #361 (3fbe4fe)
  • use vim.api.nvim_exec_autocmds instead of vim.cmd[[do]] to prevent weird vim.notify behavior (b73312a)

9.1.3 (2023-01-11)

Bug Fixes

  • cache: use cached chunk when specs are loading for valid plugins (07fd7ad)
  • loader: prevent loading plugins when loading specs (e1cd9cd)

9.1.2 (2023-01-11)

Bug Fixes

  • handlers: allow overriding handler values (74bc61a)
  • ui: possible error during initial install (a646238)
  • ui: properly position Lazy tabs when opening another cmd. Fixes #361 (8756c09)
  • ui: reset buf and win options on resize (3b44c3c)

Performance Improvements

  • util: execute VeryLazy right after UIEnter (5aca928)

9.1.1 (2023-01-10)

Bug Fixes

  • ui: get_plugin should return when ui is not showing (5faadf6)

9.1.0 (2023-01-10)

Features

  • spec: allow git@ and http urls in Plugin[1] without url=. Fixes #357 (4304035)
  • util: Util.merge now support advanced merging strategies. Docs coming soon (b28c6b9)

Bug Fixes

  • cache: dont keep invalid entries in the cache (cleanup) (9fa62ea)
  • diffview: fixed parameter for showing single commit with DiffView. Fixes #304 (a32e307)
  • docs: auto-gen of readme stuff (3a216d0)
  • spec: Plugin.opts is now always a table. Fixes #351 (e77be3c)
  • spec: don't import specs more than once (ad7aafb)
  • ui: keymap for building a single plugin changed from b to gb. Fixes #358 (e6ee0fa)

9.0.0 (2023-01-08)

⚠ BREAKING CHANGES

  • spec: setting a table to Plugin.config is now deprecated. Please use Plugin.opts instead. (backward compatible for now)

Features

  • git: added fast Git.get_origin and Git.get_config (a39fa0f)
  • git: lazy now detects origin changes and will fix it on update. Fixes #346. Fixes #331 (615781a)
  • spec: setting a table to Plugin.config is now deprecated. Please use Plugin.opts instead. (backward compatible for now) (7260a2b)
  • util: better deep merging with Util.merge (6a31b97)

8.1.0 (2023-01-07)

Features

  • spec: show error when loading two specs with the same name and a different url. Fixes #337 (c313249)

Bug Fixes

  • cache: check that modpaths still exist when finding mod root (d34c85d)
  • config: Don't cache check for attached UIs (#340) (05b55de)
  • config: properly handle uis connecting after startup (5ed89b5)

8.0.0 (2023-01-06)

⚠ BREAKING CHANGES

  • util: require("lazy.util").open_cmd() is deprecated. See the docs

Features

  • commands: :Lazy! load now skips cond checks when loading plugins. Fixes #330 (eed1ef3)

Bug Fixes

  • loader: revert change that loaded /plugin after config. Fixes #328 (2ef44e2)
  • loader: source runtime files without silent. Fixes #336 (102bc27)

Code Refactoring

  • util: require("lazy.util").open_cmd() is deprecated. See the docs (4f76b43)

7.12.1 (2023-01-05)

Bug Fixes

  • cache: check full paths of cached modpaths. Fixes #324 (b2dec14)
  • loader: run plugin config before sourcing runtime (c59c05c)
  • util: Util.try can now work without an error message (e4f79a4)

7.12.0 (2023-01-04)

Features

  • spec: allow import property on a plugin spec (dea43af)

Bug Fixes

  • keys: Use vim's default value for an unset g:mapleader (#316) (3bde7b5)

7.11.0 (2023-01-04)

Features

  • loader: disable plugins (a7ac2ad)
  • spec: spec merging now properly works with Plugin.enabled (81cb352)

Bug Fixes

  • diff: make diffview work again. Fixes #304 (e61b334)
  • keys: only replace localleader and maplocalleader. Fixes #307, fixes #308 (507b695)
  • loader: dont show error of missing plugins if they are disabled (09fd8fa)
  • loader: move mapleader check to loader, so it can be set by spec files (b4d4e6b)
  • util: assume type is file when no type is returned by scandir. Fixes #306 (2e87520)

Performance Improvements

  • spec: more efficient merging of specs and added Plugin._.super (bce0c6e)

7.10.0 (2023-01-03)

Features

  • spec: allow overriding Plugin.enabled (05aec48)
  • ui: added section with disabled plugins (299ffdf)
  • version: allow version=false to override default version (f36c7cb)

Bug Fixes

  • git: better errors when a branch/tag/version could not be found. Fixes #276 (277a2ab)
  • git: properly compare git commits with short refs (dc9c92a)
  • health: check for all packages on the rtp, excluding dist packs (1c854d7)
  • install: dont try re-installing failed missing plugins during startup. Fixes #303 (c85f929)
  • keys: make operator pending mode work. Fixes #286 (cdb998c)
  • keys: operator (2e3e65b)
  • keys: operator pending mode (e93f50f)
  • spec: show error when users load a plugins module called lazy (1fd8015)
  • stats: fixed cputime on linux (06db1ec)
  • stats: more robust checks for native cputime (b5f4106)
  • stats: use fallback for cputime on windows. Fixes #280 (ddcdc5e)
  • stats: windows (85173dc)
  • ui: check if win is still valid (e749e68)
  • util: made Util.lsmod more robust. See #298 (953c279)

7.9.0 (2023-01-02)

Features

  • commands: added build command to force rebuild of a plugin (23c0587)
  • event: track event trigger times (46997de)
  • help: accept patterns for readme (#269) (d521a25)
  • loader: incrementally install missing plugins and rebuild spec, so imported specs from plugins work as expected (2d06faa)
  • spec: added import to import other plugin modules (919b7f5)
  • spec: added support for importing multiple spec modules with import = "foobar" (39b6602)
  • spec: allow mergig of config, priority and dependencies (313015f)
  • spec: show spec warnings in checkhealth only (bc4133c)
  • ui: show new version that is available instead of general message (34e2c78)
  • ui: when updating to a new version, show the version instead of the commit refs (0fadb5e)
  • util: added trackfn that wraps a function and tracks timings (50a456c)

Bug Fixes

  • cache: allow lazyvim as a plugin (f6b0172)
  • cache: autoloading was broken! (9e90852)
  • cache: dont return directories in lsmod (9893430)
  • cache: keep ordering of topmods the same as in rtp (11eee43)
  • cache: only autoload when plugins have been parsed. Needed to support import (0bc73db)
  • cache: properly return two values for finddir (1ec8f08)
  • commands: fixed plugin completion for commands (205ce42)
  • fetch: always fetch latest origin tags. Fixes #264 (a9de591)
  • handler: properly show errors generated by setting up handlers (4d77cf2)
  • health: always use main spec (6ff480b)
  • help: properly escape helptags search pattern (#268) (1edd1b8)
  • loader: always load init.lua in plugin mods (60e96b4)
  • loader: setup handlers after installing missing plugins. Fixes #272 (b23a5dc)
  • plugin: only get plugin from spec when needed. (ce3e1fc)
  • spec: allow a spec module to be on the rtp and not only in config (51c23b6)
  • spec: normalize deps before adding spec to make sure merging works as expected (7d75598)

Performance Improvements

  • cache: cache all lua files till UIEnter instead of VimEnter (77ff7be)
  • track some additional cputimes (d992387)

7.8.0 (2022-12-31)

Features

  • ui: press <c-c> to abort any running tasks. Fixes #258 (d6b5d6e)

Bug Fixes

  • util: remove double forward slashes (ed0583e)

7.7.0 (2022-12-31)

Features

  • git: added support for packed-refs. Fixes #260 (865ff41)
  • ui: make browser configurable. Fixes #248 (679d85c)
  • ui: show when plugin would be loaded for unloaded plugins. Fixes #261 (5575d2b)

Bug Fixes

  • bootstrap: fixed bootstrap script (de82a99)
  • duplicate state check in bootstrap (#255) (51fb95e)
  • git: always get both tag and version (cb29427)
  • keys: forward count to keymaps. Fixes #252 (a834b30)
  • ui: only show plugins to clean under clean (45d669f)

Performance Improvements

  • loader: re-use topmod cache to find setup() module (730bb84)

7.6.0 (2022-12-30)

Features

  • api: allow passing options to float so it can be used outside of lazy (2a617a7)
  • commands: added health command to run :checkhealth lazy (86dff1b)
  • health: added spec parsing errors to :checkhealth (32511a1)
  • restore: you can now restore a plugin to a certain commit. Fixes #234 (1283c2b)
  • startup: missing plugins will now install the versions in the lockfile if available. Fixes #138 (81ee02b)

Bug Fixes

  • cache: clear cached entry on errors (def5cc5)

7.5.0 (2022-12-29)

Features

  • bootstrap: bootstrap with last lazy stable release (929198b)

7.4.2 (2022-12-29)

Bug Fixes

  • loader: normalize rtp paths on windows #230 (a4bd4dc)

7.4.1 (2022-12-29)

Bug Fixes

  • ftdetect: source ftdetect files only once. Fixes #235 (9f3fb38)

7.4.0 (2022-12-29)

Features

  • cache: update package.loaded on require (021e546)
  • plugin: allow some lazy.nvim spec props to be set by the user (c8553ca)
  • profile: nicer threshold prompt (#210) (ff8f378)
  • ui: added extra cache stats to the debug tab (c2f7e2d)

Bug Fixes

  • cache: ad jit.version to cache version string. Fixes #225 (e3ffcff)
  • cache: added support for top level lua linked directories. Fixes #233 (853d4d5)
  • cache: always normalize modname separators (8544c38)
  • cache: check package.loaded after auto-load and return existing module if present. Fixes #224 (044e28b)
  • cache: dont update rtp in fast events (4b75d06)
  • cache: make it work again... #fixup (370b1b9)
  • cache: OptionSet is not triggered during startup, so use #rtp instead to see if it changed (9997523)
  • cache: properly get rtp during fast events (95b9cf7)
  • cache: reload file if compiled code is incompatible. Fixes #225 (b8c5ab5)
  • cmd: fixed signature of cmd._del. Fixes #229 (a2eac68)
  • commands: E5108 in getcompletions (#207) (acd6697)
  • config: reset packpath to include VIMRUNTIME only. Fixes #214 (db043da)
  • ft: only trigger filetypepluing and filetypeindent for ft handler. Fixes #228 (7de662d)
  • git: add --no-show-signature. Fixes #218 (6c0b803)
  • health: add cond key (#203) (b813fae)
  • health: add new key priority to :checkhealth lazy (#196) (dc03fa1)
  • loader: implemented correct adding to rtp. fix #230, fix #226 (3a1a10c)
  • loader: show proper error message when trying to load a plugin that is not installed. Fixes #201. Fixes #202 (956164d)
  • loader: temporary fix for Vimtex and others. See #230 (c7122d6)
  • loader: when config=true, pass nil to setup(). Fixes #208 (5f423b2)
  • only show fired ft events in debug obviously. Fixes #232 (c7c1295)
  • rtp: correct order of adding to rtp. Fixes #226 (4e3a973)

Performance Improvements

  • move autoloader to cache and always use lazy's modname path resolver which is much faster (34977c2)

7.3.0 (2022-12-27)

Features

  • plugin: added Plugin.priority for start plugins (edf8310)
  • profile: added accurate startuptime to ui/stats/docs (a2fdf36)
  • reloader: trigger LazyReload when changes were detected and after reload. Fixes #178 (4e4493b)
  • ui: added new section specifically for updates (3b46160)
  • util: use treesitter to highlight notify messages when available (d1739cb)

Bug Fixes

  • cache: never use packer paths from cache (bb53b84)
  • ft: always trigger FileType when lazy-loading on ft (5618076)
  • plugin: find plugins with /lua/ instead of /lua (8a3152d)
  • plugin: pass plugin as arg to config/init/build (b6ebed5)
  • reloader: remove extra trailing separator (#180) (c4d924a)
  • ui: removed newlines from profile tab (0d0d11a)

7.2.0 (2022-12-26)

Features

  • cache: make ttl configurable (4aa362e)
  • plugin: added Plugin.cond. Fixes #89, #168 (aed842a)
  • ui: made all highlight groups and icons configurable (0ea771b)
  • ui: make lazy icon configurable (#163) (8ea9d8b)
  • ui: re-render after resize. Fixes #174 (9a2ecc8)

Bug Fixes

  • diff: use git show when only displaying one commit (#155) (037f242)
  • keys: don't escape pendig keys twice and only convert when number (46280a1)
  • keys: only delete key handler mappings once (9837d5b)
  • loader: add proper error message when trying to load a plugin that doesn't exist. Fixes #160 (9095223)
  • ui: get plugin details from the correct plugin in case it was deleted (2f5c1be)

7.1.0 (2022-12-24)

Features

  • build: build can now be a list to execute multiple build commands. Fixes #143 (9110371)
  • manage: added user events when operations finish. Fixes #135 (a36d506)
  • ui: added custom commands for lazygit and opening a terminal for a plugin (be3909c)
  • ui: added multiple options for diff command (7d02da2)
  • ui: you can now hover over a plugin to open a diff of updates or the plugin homepage (593d6e4)
  • util method to open a float (7c2eb15)
  • util: open terminal commands in a float (8ad05fe)

Bug Fixes

  • checker: update updated after every manage operation. Fixes #141 (86f2c67)
  • help: make sure we always generate lazy helptags (f360e33)
  • manage: only clear plugins for the op instead of all (fc182f7)
  • plugin list can be string[]. Fixes #145 (74d8b8e)

7.0.0 (2022-12-23)

⚠ BREAKING CHANGES

  • default lazy cache path is now under cache instead of state
  • init() no longer implies lazy-loading. Add lazy=false for affected plugins
  • run init() before loading start plugins. Fixes #107

Features

  • init() no longer implies lazy-loading. Add lazy=false for affected plugins (8112640)
  • loader: automatically lazy-load colorschemes (07b4677)
  • spec: config can be true or a table that will be passed to require("plugin").setup(config) (2a7b004)
  • spec: allow using plugin names in dependencies (4bf771a)
  • ui: added options to sort/filter profiling data (7dfb9c1)

Bug Fixes

  • added error message to debug failing extmarks #117 (65e9036)
  • checker: dont report updates on install during startup (8251c23)
  • install: make sure to setup loaders before attempting install so colorscheme can load. Fixes #122 (7b9b476)
  • keys: don't create with remap! (b440b3a)
  • keys: dont delete handlers manually. Let loader do that (72b3899)
  • keys: key handlers were not working after reload (3f60f2d)
  • manage: do not reload pugins on clear (b5d6afc)
  • pass plugins instead of plugin names to command. Fixes #103 (42f5aa7)
  • remove debug print (08d458c)
  • remove lazy keymaps with the correct mode. Fixes #97 (56890ce)
  • run init() before loading start plugins. Fixes #107 (2756a6f)
  • ui: fix buffer being properly deleted (#112) (9e98389)
  • ui: fixed extmarks while wrapping. Fixes #124 (e973323)
  • ui: sort profiling chronological by default (50e3b91)

Code Refactoring

  • default lazy cache path is now under cache instead of state (cc6276e)

6.0.0 (2022-12-22)

⚠ BREAKING CHANGES

  • lazy api commands now take an opts table instead of a list of plugins

Features

  • added support for nvim --headless "+Lazy! sync" +qa (2e14a2f)
  • checker: defer checker to after VeryLazy to make sure nvim-notify and others are loaded (fd1fbef)
  • keys: more advanced options for setting lazy key mappings (1c07ea1)
  • lazy api commands now take an opts table instead of a list of plugins (bc61747)
  • ui: show modpaths in debug (6304231)

Bug Fixes

  • cache: overwrite cache entry with new modpath when loading a file. Fixes #90 (2200284)
  • clean: update lockfile on clean (#88) (dd9648f)
  • cmd: allow ranges. Fixes #93 (c0c2e1b)
  • git: make sure we properly fetch git submodules. Fixes #72 (7f6f31d)
  • git: remove --also-filter-submodules. Fixes #86 #83 (488b487)
  • install: update lockfile also on install (4cf176b)
  • removed spell again from site. not needed. can download in config/spell (58f0876)
  • rtp: keep site in rtp (94d0125)
  • show mapleader warning with vim.schedule. Fixes #91 (28f1511)

5.2.0 (2022-12-21)

Features

  • loader: allow to add extra paths to rtp reset. Fixes #64 (876f7bd)
  • loader: warn when mapleader is changed after init (4ca3039)
  • make hover easy to override (f0e1b85)
  • plugin: allow plugin files only without a main plugin module. Fixes #53 (44f80a7)
  • util: utility method to get sync process output (e95da35)

Bug Fixes

  • cache: if we can't load from the cache modpath, find path again instead of erroring right away (a345649)
  • checker: allow git checks only for non-pinned plugins (#61) (a939243)
  • git: dereference tag refs. Fixes #54 (86eaa11)
  • git: only mark a plugin as dirty if an update changed the commit HEAD. Fixes #62 (bbace14)
  • health: don't show warning on module=false (c228908)
  • help: sort tags files for readmes so tags work properly. Fixes #67 (2fd78fb)
  • keys: feedkeys should include pending keys. Fixes #71 (2ab6518)
  • loader: lua modules can be links instead of files. Fixes #66 (b7c489b)
  • loader: source rtp /plugin files after loading start plugins. Fixes (ff24f49)
  • strip / from dirs. Fixes #60 (540847b)
  • ui: install command can have plugins as a parameter (232232d)
  • ui: set current win only when its valid (3814883)

5.1.0 (2022-12-20)

Features

  • added options to configure change detection. Fixes #32 (6c767a6)
  • ui: make the windoww size configurable. Fixes #34 (941df31)

Bug Fixes

  • add filetype to window buffer. (#41) (897d6df)
  • git: don't run git log for submodules. Fixes #33 (9d12cdc)
  • loader: source filetype.lua before plugins. Fixes #35 (ffcd0ab)
  • spec: only process a spec once (b193f96)
  • use nvim_feekeys instead of nvim_input for keys handler. Fixes #28 (5298441)

Performance Improvements

  • ui: clear existing extmarks before rendering (06ac8bd)

5.0.1 (2022-12-20)

Bug Fixes

  • add neovim libs to rtp for treesitter parsers etc (df6c986)
  • always set Config.me regardless of reset rtp (992c679)
  • build: use the shell to execute build commands (1371a14)
  • cache: if mod is loaded already in the loader, then return that (ffabe91)
  • checker should not error on non-existing dirs (ddf36d7)
  • deepcopy lazyspec before processing (6e32759)
  • default logs are now since 3 days ago to be in line with the docs (e9d3a73)
  • dont autoload cached modules when module=false (316503f)
  • move re-sourcing check to the top (6404d42)
  • only run updated checker for installed plugins. Fixes #16 (ae644a6)
  • show error when merging, but continue (f78d8bf)
  • use jobstart instead of system to open urls (1754056)

5.0.0 (2022-12-20)

⚠ BREAKING CHANGES

  • removed the LazyUpdate etc commands. sub-commands only from now on

Features

  • added :Lazy load foobar.nvim to load a plugin (2dd6230)
  • added module=false to skip auto-loading of plugins on require (1efa710)
  • added completion for all lazy commands (5ed9855)
  • added support for Windows (bb1c2f4)
  • removed the LazyUpdate etc commands. sub-commands only from now on (d4aee27)
  • utility method to normalize a path (198963f)

Bug Fixes

  • cache: do a fast check to see if a cached modpath is still valid. find it again otherwise (32f2b71)
  • cache: normalize paths (62c1542)
  • check for installed plugins with plain find (a189883)
  • ui: focus Lazy window when auto-installing plugins in VimEnter (1fe43f3)
  • util: fixed double slashes (af87108)

Performance Improvements

  • cache: cache loadfile and no find modpaths without package.loaders (faac2dd)
  • lazy-load the commands available on the lazy module (b89e6bf)

4.2.0 (2022-12-18)

Features

  • check if ffi is available and error if not (c0d3617)
  • expose all commands on main lazy module (f25f942)
  • loader: added error handler to sourcing of runtime files (eeb06a5)
  • never source packer_compiled.lua (a46c0c0)
  • ui: added dir to props (9736671)
  • ui: added help for <CR> on a plugin (c87673c)
  • ui: made it look a little less like a Mason rip-off :) (9026a0e)
  • ui: make home bold (0b4a04d)

Bug Fixes

  • loader: runtime files are now sourced alphabetically per directory (5c0c381)
  • set correct dir for lazy plugin (23984dd)
  • ui: always clear complete tasks with the same name when starting a new task (85e3752)
  • ui: show first tag for each help doc in details (6f728e6)
  • ui: split window before opening a file from the Lazy ui, otherwise it'll get closed immediately (f18efa1)

4.1.0 (2022-12-16)

Features

  • docs: added toc generator (f4720ee)
  • lua code generator for the README.md (80a7839)
  • README.md files are now automagically added to help. By default only when no doc/ exists (70ca110)
  • utility methods to read/write files (27178b5)

Bug Fixes

  • Plugin.init implies lazy-loading (ccdf65b)
  • add lazy.nvim with dev=false to prevent using the dev version for myself (b8fa6f9)
  • bootstrap code now uses git url instead of https for beta testers + fixed rtp path (17d1653)
  • use initial rtp for rtp plugin after files and use loaded plugins for their after files (7134417)

Performance Improvements

  • prevent string.match to find plugin name from a modpath (f23a6ee)
  • when reloading plugin specs always use cache (060cf23)

4.0.0 (2022-12-14)

⚠ BREAKING CHANGES

  • lazy now handles the full startup sequence (vim.go.loadplugins=false)

Features

  • added checks for Neovim version (72f64ce)
  • getter for plugins (8de617c)
  • lazy now handles the full startup sequence (vim.go.loadplugins=false) (ec2f432)
  • ui: show updates available diagnostic when an update is available (ad0b4ca)

Bug Fixes

  • destroy the cache when VIMRUNTIME has changed (5128d89)
  • updated the bootstrap code (1ee4e8b)

3.0.0 (2022-12-13)

⚠ BREAKING CHANGES

  • local plugins now always need to set Plugin.dir

Features

  • added health checks (dc2dcd2)
  • api: return runner from manage operations (71e4b92)
  • better way of dealing with lazy loaded completions (thanks to @lewis6991) (f24c055)
  • checker: only report an update once and do a fast update check after each manage operation (2a7466a)
  • local plugins now always need to set Plugin.dir (0625493)
  • ui: added statusline component to show pending updates (315be83)
  • ui: added update checker (65cd28e)

Bug Fixes

  • dev plugins with dev=false should be configured as remote (43b303b)
  • replace ~ by HOME for Plugin.dir (12ded3f)
  • ui: open with noautocmd=true and close with vim.schedule to prevent weird errors by other plugins (08d081f)

Performance Improvements

  • added profiling for sourcing of runtime files (be509c0)

2.2.0 (2022-12-05)

Features

  • cleanup keys/cmd handlers when loading a plugin (3f517ab)
  • dont run setup again when a user re-sources their config & show a warning (7b945ee)
  • ui: added debug interface to inspect active handlers and the module cache (6d68cc6)
  • ui: show any helps files and added hover handler (13b5688)
  • util.foreach with sorted keys (d36ad41)

Bug Fixes

  • always add config/after to rtp (c98e722)
  • ui: always show branch name in details (6e44be0)

Performance Improvements

  • disable cache by default on VimEnter or on BufReadPre (b2727d9)

2.1.0 (2022-12-03)

Features

  • Plugin.local to use a local project instead of fetching remote (0ba218a)
  • Plugin.specs() can now reload and keeps existing state (330dbe7)
  • added debug option (e4cf8b1)
  • automatically detect config module changes in or oustside Neovim and reload (7b272b6)
  • for event=, fire any new autocmds created by loading the plugins for the event (ebf15fc)
  • moved Config.package.reset -> Config.performance.reset_packpath (fe6b0b0)
  • plugins no longer need to be installed under site/pack/*/opt (dbe2d09)
  • symlinking local plugins is no longer needed (37c7366)
  • temporary colorscheme to use during install during startup (7ec65e4)

Bug Fixes

  • add plugin after dir to rtp for start plugins so it gets picked up during startup (93d3072)
  • fs: dont set cloned=true if symlink already existed (3e143c6)
  • git: fixed branch detection, get target commit from origin and always checkout a tag or commit so we dont need to use git merge (ae379a6)
  • respect --noplugin (59fb050)
  • return nil when fs_stat fails and return nil in module loader (afcba52)
  • source plugin files for plugins that want to run a build script during startup (3ed24ba)
  • temporary colorscheme should only load when installing (ec858db)

Performance Improvements

  • added option to reset rtp to just your config and the neovim runtime (ccc506d)
  • caching strategy is now configurable (6fe425c)

2.0.0 (2022-12-02)

⚠ BREAKING CHANGES

  • plugins are now automatically loaded on require. module= no longer needed!
  • all plugins are now opt. Plugin.opt => Plugin.lazy
  • renamed Plugin.run => Plugin.build

Features

  • all plugins are now opt. Plugin.opt => Plugin.lazy (5134e79)
  • lazy setup with either a plugins module, or a plugins spec (af8b8e1)
  • plugins are now automatically loaded on require. module= no longer needed! (575421b)
  • renamed Plugin.run => Plugin.build (042aaa4)
  • show module source if loading source is under config (041a716)
  • ui: better detection of plugins/config files that loaded a plugin (723274e)
  • ui: improvements to profiling and rendering of loaded reasons (714bc0a)

Bug Fixes

  • always overwrite any plugin spec for lazy.nvim to manage itself (d46bc77)
  • prepend package path to packpath if package.reset=false (5eb2622)
  • ui: use Plugin.find to detect loading reason (98ccf55)

Performance Improvements

  • module now caches all lua modules used till VimEnter (0b6dec4)
  • reset packpath to only include the lazy package. Improved my startup time by 2ms (4653119)

1.2.0 (2022-11-30)

Features

  • added config option for process timeout (bd2d642)
  • allow config of default for version field (fb96183)
  • config for ui border (0cff878)
  • config option for runner concurrency (b2339ad)
  • config option for ui throttle (a197f75)
  • config option install_missing=true (9be3d3d)

Bug Fixes

  • show proper installed/clean state for local plugins (1e2f527)
  • update state after running operation so the ui reflects any changes from cleaning (0369278)

Performance Improvements

  • merge module/cache and use ffi to pack cache data (e1c08d6)
  • removed partial spec caching. not worth the tiny performance boost (4438faf)
  • run cache autosave after loading (3ec5a2c)

1.1.0 (2022-11-29)

Features

  • dependencies are opt=true by default if they only appear as a dep (908b9ad)
  • lazy handler implies opt=true (b796abc)

Bug Fixes

  • make sure Plugin.opt is always a boolean (ca78dd7)

Performance Improvements

  • dont loop over handlers to determine if a plugin should be opt=true (812bb3c)

1.0.0 (2022-11-29)

⚠ BREAKING CHANGES

  • added icons

Features

  • a gazilion rendering improvements (a11fc5a)
  • added "Lazy check" to check for updates without updating (63cf2a5)
  • added bootstrap code (ceeeda3)
  • added full semver and range parsing (f54c24a)
  • added icons (c046b1f)
  • added keybindings to update/install/clean/restore/... single plugins (08b7e42)
  • added lockfile support (4384d0e)
  • added profiler view (20ff5fa)
  • added section with logs containing breaking changes (d7dbe1a)
  • added support for Plugin.lock (wont update) (0774f1b)
  • added vimdoc/release-please/tests (e9a1e9f)
  • default log is last 10 entries (54a82ad)
  • detect headless and set interactive=false (bad1b1f)
  • error handler for loading modules, config and init, with custom error formatting (7933ae1)
  • git log (3218c2d)
  • git log config (3e4f846)
  • initial commit (e73626a)
  • keep track what loaded a plugin (4df73f1)
  • lazy caching now works with functions that have upvalues (fe33e4e)
  • lazy commands (ae0b871)
  • lazy view (a87982f)
  • load plugin on cmd complete and make completion just work (2080694)
  • lots of improvements to pipeline runner and converted all tasks to new system (fb84c08)
  • new git module to work with branches, tags & versions (2abdc68)
  • new render features like profile etc (48199f8)
  • new task pipeline runner (ab1b512)
  • plugin manager tasks (a612e6f)
  • return whether a module was loaded from cache or from file (dirty) (38e2711)
  • task docs and options for logs (fe6d0b1)
  • text: center text (88869e6)
  • text: multiline support and pattern highlights (815bb2c)
  • url open handlers (6f835ab)
  • util.info (e59dc37)
  • view: modes and help (0db98bf)

Bug Fixes

  • always recaclulate hash when loading a module (cfc3933)
  • check for lazy before setting loading time (30bdc9b)
  • clean (7f4743a)
  • correctly handle changes from local to remote plugin (4de10f9)
  • decompilation fixes (57d024e)
  • dont return init.lua in lsmod (413dd5b)
  • first line of file (c749404)
  • get current branch if remote head not available (for local repos only) (d486bc5)
  • highlights (35b1f98)
  • log errors in runner (7303017)
  • make sure we have ran on_exit before returning is_done=true (782d287)
  • manage opts show => interactive (93a3a6c)
  • only save state when dirty (32ca1c4)
  • recalculate loaders on config file change (870d892)
  • reset diagnostics when lazy view buffer closes (04dea38)
  • show view with schedule to prevent Neovim crash when no plugins are installed (5d84967)
  • support adding top-level lua directories (7288962)
  • support local files as plugin spec (0233460)
  • tasks: always set updated on checkout. Change default logging to 3 days (5bcdddc)
  • view: handler details (bbad0cb)
  • when just cloned, never commit lock (32fa5f8)

Performance Improvements

  • cache handler groups (42c2fb4)
  • copy reason without deepcopy (72d51ce)
  • fast return for Util.ls when file found (073b5e3)
  • further optims to loading and caching specs. dont cache specs with plugin that have init or in start with config (8790070)
  • split caching in state, cache and module (54d5ff1)
  • tons of performance improvements. Lazy should now load in about 1.5ms for 97 plugins (2507fd5)
  • way better compilation and caching (a543134)