Commit Graph

131 Commits

Author SHA1 Message Date
Folke Lemaitre 47dafaed64
refactor(handlers): lazy resolving of plugin handlers 2023-10-16 22:12:26 +02:00
Folke Lemaitre 2270bbbc48
fix(plugin): work-around for Plugin.values error. Will add proper fix later. Fixes #1124 2023-10-16 18:11:02 +02:00
Folke Lemaitre 1cfd6d1f36
fix(loader): don't load handlers before installing plugins 2023-10-16 15:05:16 +02:00
Folke Lemaitre c8e2091e6d
fix(plugin): dont allow `dir` changes when we already loaded files from the plugin's old dir. Show an error in this case. Fixes #993 2023-10-15 08:51:54 +02:00
Folke Lemaitre 3dc413d6fd
fix(plugin): improved dir/dev merging. Fixes #993 2023-10-15 08:36:15 +02:00
Folke Lemaitre 0c53d4673f
feat(plugin): treat url changes as warnings. They will only be shown with checkhealth 2023-10-14 23:07:01 +02:00
Folke Lemaitre 22bf6ae04b
style: sort requires 2023-10-09 11:25:42 +02:00
abeldekat 58e954a735
feat(plugin): added support for `cond` for imports (#1079)
Co-authored-by: abeldekat <abel@nomail.com>
2023-10-06 15:46:46 +02:00
Folke Lemaitre 82da5a0048
refactor(plugin): refactored rebuild 2023-10-04 12:50:48 +02:00
Folke Lemaitre 638c8e6382
fix(plugin): rebuild plugins after fixing optional and cond to ensure enabled will work correctly 2023-10-04 11:48:14 +02:00
Folke Lemaitre 8eb8de29af
feat(plugin): keep track of the module a spec fragment was defined in 2023-10-04 00:20:08 +02:00
Folke Lemaitre 09e5010741
fix(plugin): prevent recursive loop with cond=false. Fixes #1061 2023-09-30 18:02:07 +02:00
Folke Lemaitre 6a2c47e642
style: lua annotations 2023-09-29 16:37:55 +02:00
Folke Lemaitre f3c7169dd6
feat(plugin): dont include plugin spec fragments for disabled or optional plugins (#1058)
* feat(plugin): dont include plugin spec fragments for disabled or optional plugins

* test: fixed tests

* fix(plugin): calculate handlers after disabling plugins

* fix(plugin): clear Plugin._.super when rebuilding

* fix(ui): dont process handlers for disabled plugins

* test: added tests for disabling fragments

* fix(plugin): ignore any installed deps of a disabled conditional plugin. Fixes #1053
2023-09-29 16:11:56 +02:00
abeldekat e7334d8db5
feat(plugins): Given an optional plugin, conditionally discard deps (#947)
* deps_of_all_optional: First, refactor the code responsible for disabling unneeded deps to be more generic

* deps_of_all_optional: Second, also disable unneeded deps from plugins marked as all optional

* deps_of_all_optional: add tests proving unneeded optional deps are now also discarded

* deps_of_all_optional: forgot return type

---------

Co-authored-by: abeldekat <abel@nomail.com>
2023-07-22 10:20:52 +02:00
Folke Lemaitre fbb0bea2db
feat(plugin)!: `cond` is now the same as `enabled`, but skips clean 2023-07-06 15:30:01 +02:00
Folke Lemaitre 42ff6009f6
fix(plugin): fixup. It's fine that Plugin.url doesn't exist 2023-05-27 08:49:45 +02:00
Folke Lemaitre 199e100464
fix(plugin): delay check if plugin ref exists until after loading all plugins. Fixes #833 2023-05-27 08:45:14 +02:00
Folke Lemaitre c325c50ba4
fix(plugin): check that import is a string. See #825 2023-05-25 08:26:55 +02:00
Folke Lemaitre 32170a8891
fix(plugin): fix url based plugin name and added extra safety checks. Fixes #824 2023-05-25 08:10:08 +02:00
Folke Lemaitre 57062f3a09
feat(plugin): trigger LazyPlugins after loading plugin specs 2023-05-25 08:09:19 +02:00
Folke Lemaitre b0aa5348d8
docs: added docs on optional 2023-05-23 08:57:57 +02:00
Folke Lemaitre 9177778891
fix(plugin): rename weak => optional. Makes more sense :) 2023-05-22 14:53:36 +02:00
Folke Lemaitre af39d61d3f
fix: better weak handling 2023-05-22 14:31:28 +02:00
Folke Lemaitre 8564f6d22b
feat(plugin): added support for `weak` specs. They will not be included in the final spec if not specified somwhere else 2023-05-22 14:24:18 +02:00
Fraser Hanson d2d67b5a0b
fix(config): use url_format for the lazy plugin (#792)
Co-authored-by: Fraser Hanson <fraser.hanson@netapp.com>
2023-05-10 17:20:06 +02:00
Folke Lemaitre dff6f07290
style(plugins): more descriptive error when a spec module didnt return any specs 2023-04-22 14:10:06 +02:00
Folke Lemaitre ea1a044e3c
feat(cache): use `vim.cache` everywhere. poly-fill when needed 2023-03-14 19:45:22 +01:00
Folke Lemaitre 1a34636094
refactor(cache): documented the cache in preparation to upstream 2023-03-14 12:56:58 +01:00
Folke Lemaitre 355312eb51
fix(plugin): properly pass is_list for recursively merging props 2023-03-07 19:11:33 +01:00
Folke Lemaitre 77223786aa
fix(git): properly deal with failed clones. Fixes #571 2023-02-28 11:51:16 +01:00
Folke Lemaitre ff76e58961
fix(spec): make sure imported specs are sorted alphabetically 2023-02-17 13:58:23 +01:00
Null Chilly 772d8888cc
feat(dev): optionally fallback to git when local plugin doesn't exist (#446)
* feat: fallback to git when local plugin isn't found

* feat(option): fallback to git when local plugin doesn't exist
2023-01-24 22:55:34 +01:00
Folke Lemaitre c389ad552b
fix(spec): dont complain about an invalid short url, when a full url is set. Fixes #421 2023-01-18 08:39:02 +01:00
Folke Lemaitre 1b2a6f631c
perf(plugin): de-duplicate dependencies, keys, ft, event and cmd 2023-01-17 14:00:42 +01:00
Folke Lemaitre da4e8cc245
fix(spec): dont copy dep and super state from existing plugins 2023-01-17 14:00:42 +01:00
Folke Lemaitre baaf8ddfff
fix(spec): when overriding a spec by name that has not been imported yet, show an error when needed 2023-01-17 14:00:42 +01:00
Folke Lemaitre 0cbd91d2cd
feat(spec): you can now override specs using only the plugin name instead of the short url 2023-01-16 17:03:43 +01:00
Folke Lemaitre 984008f7ae
refactor: add lazy.nvim with full url. Fixes #396 2023-01-15 20:04:52 +01:00
Folke Lemaitre 2128ca90fb
feat(spec): event, keys, ft and cmd can now also be a function that returns the values to be used 2023-01-12 13:08:43 +01:00
Folke Lemaitre e1cd9cd0ad
fix(loader): prevent loading plugins when loading specs 2023-01-11 23:08:07 +01:00
Folke Lemaitre ad7aafb257
fix(spec): don't import specs more than once 2023-01-10 09:28:59 +01:00
Folke Lemaitre d3a963d51c
refactor(util): improved notify functions 2023-01-10 09:28:59 +01:00
Folke Lemaitre b28c6b9000
feat(util): `Util.merge` now support advanced merging strategies. Docs coming soon 2023-01-10 07:32:28 +01:00
Folke Lemaitre 4304035ef4
feat(spec): allow git@ and http urls in `Plugin[1]` without `url=`. Fixes #357 2023-01-09 13:25:50 +01:00
Folke Lemaitre 7260a2b28b
feat(spec)!: setting a table to `Plugin.config` is now deprecated. Please use `Plugin.opts` instead. (backward compatible for now) 2023-01-08 15:01:58 +01:00
Folke Lemaitre c313249271
feat(spec): show error when loading two specs with the same name and a different url. Fixes #337 2023-01-07 09:37:03 +01:00
Folke Lemaitre dea43afc4a
feat(spec): allow import property on a plugin spec 2023-01-04 17:50:57 +01:00
Folke Lemaitre 81cb352fe6
feat(spec): spec merging now properly works with `Plugin.enabled` 2023-01-04 10:36:51 +01:00
Folke Lemaitre bce0c6e327
perf(spec): more efficient merging of specs and added `Plugin._.super` 2023-01-04 09:35:00 +01:00