Commit graph

119 commits

Author SHA1 Message Date
abeldekat
a1574d8d03 discard_deps_revisited: finetuning and performance
finetuning: the algorithm marking an active plugin as dirty
performance: instead of vim.tbl_merge, use vim.list_extend
2023-08-01 10:31:31 +02:00
abeldekat
f95c7a8be1 discard_deps: Repair active plugins
Plugins that are unused currently can still contribute to
active plugins by the specs added to their "dependencies" field.

This commit adds functionality to the "parse" method,
repairing only the active plugins that could be affected by the
aforementioned specs.

This can be achieved by maintaining an extra administration table
containing a copy of each added plugin instance.
2023-07-31 20:24:59 +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
Folke Lemaitre
c85f929bd9
fix(install): dont try re-installing failed missing plugins during startup. Fixes #303 2023-01-03 22:50:14 +01:00
Folke Lemaitre
1fd80159d0
fix(spec): show error when users load a plugins module called lazy 2023-01-03 22:49:04 +01:00
Folke Lemaitre
299ffdfd53
feat(ui): added section with disabled plugins 2023-01-03 10:43:10 +01:00
Folke Lemaitre
05aec48968
feat(spec): allow overriding Plugin.enabled 2023-01-03 10:34:53 +01:00
Folke Lemaitre
ce3e1fc560
fix(plugin): only get plugin from spec when needed. 2023-01-02 15:27:01 +01:00
Folke Lemaitre
69121c7721
tests: fixed tests 2023-01-02 14:35:36 +01:00
Folke Lemaitre
bc4133cb3e
feat(spec): show spec warnings in checkhealth only 2023-01-02 12:53:35 +01:00
Folke Lemaitre
2d06faa941
feat(loader): incrementally install missing plugins and rebuild spec, so imported specs from plugins work as expected 2023-01-02 10:08:45 +01:00
Folke Lemaitre
919b7f5de3
feat(spec): added import to import other plugin modules 2023-01-02 09:44:28 +01:00
Folke Lemaitre
313015fdb4
feat(spec): allow mergig of config, priority and dependencies 2023-01-02 09:41:09 +01:00
Folke Lemaitre
7d755987ba
fix(spec): normalize deps before adding spec to make sure merging works as expected 2023-01-02 09:40:19 +01:00
Folke Lemaitre
39b66027a5
feat(spec): added support for importing multiple spec modules with import = "foobar" 2023-01-01 21:07:05 +01:00