Commit Graph

58 Commits

Author SHA1 Message Date
Folke Lemaitre 75ffe56f70 feat: rewrite of spec resolving 2024-06-24 17:15:10 +02:00
Folke Lemaitre 8d35e60eeb test: fix spec tests 2024-06-24 17:15:10 +02:00
Folke Lemaitre 8eba74c3fc feat: packspec 2024-06-24 17:15:10 +02:00
Folke Lemaitre 89ddc59d19
Revert "feat(util): opts merging now supports lists extending by tagging a table with __extend = true. Use with care"
This reverts commit 74fd3611f2.
2024-06-06 23:27:29 +02:00
Folke Lemaitre 74fd3611f2
feat(util): opts merging now supports lists extending by tagging a table with __extend = true. Use with care 2024-06-06 23:23:52 +02:00
Vlad 784a726f2e
style: Set vim.opt.rtp type to vim.Option (#1498)
## Details

There is an issue in the `neodev` repo that mentions this:
[#193](https://github.com/folke/neodev.nvim/issues/193)

I think the problem comes from a combination of 2 things:

1. As mentioned in the [Reddit post](https://www.reddit.com/r/neovim/comments/1cvrilk/diagnosticwarning_after_upgrade_to_neovim_010/):
   `Nvim never had Lua type annotations for vim.opt`.
2. Setting `vim.opt.rtp` anywhere in the config will cause Lua-LS to infer the
   type for `vim.opt.rtp`. While users are unlikely to do this it does happen
   in `lazy.nvim`, in places shown in this PR.
2024-06-04 06:58:19 +02:00
Folke Lemaitre 9e157df077
feat: refactor all vim.loop -> vim.uv and add a shim when needed 2024-03-22 08:58:36 +01:00
Folke Lemaitre c059eece0c
refactor: Handler.load => Handler.resolve 2023-10-17 17:43:37 +02:00
Folke Lemaitre 2f169e74d4
refactor(handlers): lazy resolving of plugin handlers (#1126)
* refactor(handlers): lazy resolving of plugin handlers

* test: fixed tests
2023-10-16 22:34:44 +02:00
Folke Lemaitre 1ea2eaefa6
test: fixed tests for plugin spec 2023-10-16 15:11:01 +02:00
Folke Lemaitre 3dc413d6fd
fix(plugin): improved dir/dev merging. Fixes #993 2023-10-15 08:36:15 +02:00
Folke Lemaitre 70f764bf73
fix(util): Util.merge now skips nil args 2023-10-13 11:37:57 +02:00
Folke Lemaitre 22bf6ae04b
style: sort requires 2023-10-09 11:25:42 +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 045f23eb35
test: fixed tests 2023-07-06 15:38:21 +02:00
Folke Lemaitre d65a3d6755
fix(keys): replace term codes to calculate ids 2023-06-03 13:45:21 +02:00
Folke Lemaitre 3c14a0a279
test: fix tests 2023-04-16 07:39:39 +02:00
Folke Lemaitre 462633bae1
perf: new file-based cache that ensures correct rtp order (#532)
* perf: new file-based cache that ensures rtp is alweays correct and will cache all files, including those after startup

* refactor: new cache

* test: fix tests

* fix(cache): cache file names on Windows

* feat(cache): allow to disable the cache

* docs: updated cache settings
2023-02-13 12:01:56 +01:00
Folke Lemaitre f3695bc5be
test: fixed tests for `Util.merge` 2023-01-12 13:16:23 +01:00
Folke Lemaitre 3f3d9df324
test: fixed tests for `Plugin.opts` 2023-01-12 13:13:45 +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 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 e77be3cf3b
fix(spec): `Plugin.opts` is now always a table. Fixes #351 2023-01-08 18:45:40 +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 a39fa0f0ce
feat(git): added fast `Git.get_origin` and `Git.get_config` 2023-01-08 08:05:44 +01:00
Folke Lemaitre ad00eb1be2
test: fixed helper function to delete test directory 2023-01-07 22:52:49 +01:00
Folke Lemaitre d34c85d580
fix(cache): check that modpaths still exist when finding mod root 2023-01-07 22:24:53 +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 588caef4e9
test: fixed tests 2023-01-04 00:30:14 +01:00
Folke Lemaitre 953c2791d8
fix(util): made `Util.lsmod` more robust. See #298 2023-01-03 22:31:18 +01:00
Folke Lemaitre 05aec48968
feat(spec): allow overriding `Plugin.enabled` 2023-01-03 10:34:53 +01:00
Folke Lemaitre 69121c7721
tests: fixed tests 2023-01-02 14:35:36 +01:00
Folke Lemaitre 51c23b661e
fix(spec): allow a spec module to be on the rtp and not only in config 2023-01-01 20:31:34 +01:00
Folke Lemaitre 1682edc505
test: annotations for tests 2022-12-29 23:27:06 +01:00
Folke Lemaitre e6c24914e8
test: fixed selene issues for tests 2022-12-29 23:12:38 +01:00
Folke Lemaitre 4bf771a6b2
feat(spec): allow using plugin names in dependencies 2022-12-22 17:25:12 +01:00
Folke Lemaitre 50ba619d9e
test: fix tests 2022-12-20 13:40:09 +01:00
Folke Lemaitre cb87aa3893
ci: run tests on linux only for nw 2022-12-20 08:56:59 +01:00
Folke Lemaitre 65675808d1
chore: todo 2022-12-19 13:37:14 +01:00
Folke Lemaitre 1375409642
test: fixed tests 2022-12-13 10:29:48 +01:00
Folke Lemaitre 4cfe0b5315
refactor: `Plugin.uri` => `Plugin.url` 2022-12-13 10:10:17 +01:00
Folke Lemaitre 756b4849d9
refactor: Plugin.dep => Plugin._.dep 2022-12-02 17:09:40 +01:00
Folke Lemaitre 45e18c977d
test: fix tests with `module=` 2022-12-02 09:25:30 +01:00
Folke Lemaitre ac9e5401dc
test: test XDG paths for tests and added a test that checks if they are setup correctly 2022-12-02 09:25:30 +01:00
Folke Lemaitre 5134e797f3
feat!: all plugins are now opt. Plugin.opt => Plugin.lazy 2022-12-01 11:23:39 +01:00
Folke Lemaitre a87b6e1005
style: cleanup 2022-11-30 23:15:26 +01:00
Folke Lemaitre 4438faf9a9
perf: removed partial spec caching. not worth the tiny performance boost 2022-11-30 00:19:08 +01:00
Folke Lemaitre ca78dd77ac
fix: make sure Plugin.opt is always a boolean 2022-11-29 20:36:06 +01:00