diff options
author | LostNeophyte <[email protected]> | 2023-01-10 21:18:17 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2023-01-10 21:18:17 +0100 |
commit | ccb80e41ee929505c97e682749c74f8db4609d61 (patch) | |
tree | 7fa9c9e025ce17e9c41563940b1f39fa3357d67c /tests | |
parent | fc6873809934917b470bff1b072171879899a36b (diff) |
refactor: migrate to lazy.nvim (#3647)
* refactor: convert plugins spec to lazy
* refactor(lazy): remove impatient
* fix(telescope): no more errors if theme is nil
* refactor(lazy): use lazy in plugin_loader
* refactor(lazy): pin plugins with packer's snapshot
* fix: add plugins to rtp before config:init
* fix: fs_stat nil check
* feat: lazy cache
* feat(lazy): reloading
* refactor(lazy): plugin-loader functions
* feat(lazy): cache reset
* refactor: set runtimepath manually
* fix: runtimepath
* refactor(rtp)
* refactor(lazy): packer -> lazy in various places
* fix(lazy): disable tree-sitter ensure installed
* refactor(lazy): restore order to bootstrap
* refactor(lazy): remove unused impatient profiler
* small fixes
* `lvim.plugins` deprecation handling
* fix: deprecation of `requires` in plugin specs
* feat: core plugins pinning
* refactor(lazy): plugin loader tests
* refactor(lazy): use lazy in scripts
* refactor(lazy): which-key keybinds
* chore: format
* fix: installer
* fix: first time setup
* feat: changes required for packaging
commit 951ac2b7c01b5200b973660c967852d1706cce28
Author: LostNeophyte <[email protected]>
Date: Wed Dec 28 13:49:44 2022 +0100
fix: clean folder before copying plugins
commit 64e9afa44b8e528ba527e0510d0d8c2d2237a095
Author: LostNeophyte <[email protected]>
Date: Wed Dec 28 13:35:41 2022 +0100
feat: copy core plugins on first run
commit 2d8e72090c7624f68c09a9aa6582223373a810c1
Author: LostNeophyte <[email protected]>
Date: Wed Dec 28 13:11:22 2022 +0100
feat(utils): fs_copy
commit 85c1f025a6ba13183e85141f75f60e2eefc77bb5
Author: LostNeophyte <[email protected]>
Date: Wed Dec 28 13:04:38 2022 +0100
fix: copy correct example config
* fix: packer specs deprecation handling
* fix: plugin specs deprecation
* feat: pin lazy's version
* fix: remove plugins form rtp before loading lazy
* fix: plugin-loader test
* feat(lazy): add keymappings for profile, log, and debug (#3665)
* feat(lazy): Add keymappings for profile, log, and debug
* feat(lazy): Add keymap for cleaning
* chore: format
* pref: lazy load many plugins
Co-authored-by: Uzair Aftab <[email protected]>
* fix: bootstrap correct version of lazy
* fix: also use CmdLineEnter event for cmp
* fix: don't use lazy's modules before it's set up
* perf: (hack) enable lazy's cache before loading lazy
* fix: plugins.lua
* fix: plugins bump script
* chore: remove debug print
* feat: add rounded border for `:Lazy`
* fix: bufferline flashing
* fix: don't close lazy on startup
* fix: load breadcrumbs on startup
* fix: don't lazy load bufferline
* chore: bump lazy's version
* fix: remove site from rtp (fixes treesitter issues)
* revert default config copying changes
* fix(bootstrap): actually remove plugins dir on windows
* chore: bump lazy's version
* chore: bump lazy's version
Co-authored-by: kylo252 <[email protected]>
Co-authored-by: Uzair Aftab <[email protected]>
Co-authored-by: Uzair Aftab <[email protected]>
Co-authored-by: opalmay <[email protected]>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/minimal_lsp.lua | 39 | ||||
-rw-r--r-- | tests/specs/plugins_load_spec.lua | 39 |
2 files changed, 23 insertions, 55 deletions
diff --git a/tests/minimal_lsp.lua b/tests/minimal_lsp.lua index 01e814be..9515268f 100644 --- a/tests/minimal_lsp.lua +++ b/tests/minimal_lsp.lua @@ -13,25 +13,21 @@ local temp_dir = vim.loop.os_getenv "TEMP" or "/tmp" vim.cmd("set packpath=" .. join_paths(temp_dir, "nvim", "site")) local package_root = join_paths(temp_dir, "nvim", "site", "pack") -local install_path = join_paths(package_root, "packer", "start", "packer.nvim") -local compile_path = join_paths(install_path, "plugin", "packer_compiled.lua") +local plugins_dir = join_paths(package_root, "lazy", "opt") +local install_path = join_paths(package_root, "lazy.nvim") -- Choose whether to use the executable that's managed by mason local use_lsp_installer = true local function load_plugins() - require("packer").startup { - { - "wbthomason/packer.nvim", - "neovim/nvim-lspconfig", - "williamboman/mason-lspconfig.nvim", - "williamboman/mason.nvim", - }, - config = { - package_root = package_root, - compile_path = compile_path, - }, - } + vim.opt.rtp:prepend(install_path) + require("lazy").setup({ + "neovim/nvim-lspconfig", + "williamboman/mason-lspconfig.nvim", + "williamboman/mason.nvim", + }, { + root = plugins_dir, + }) end function _G.dump(...) @@ -98,12 +94,19 @@ _G.load_config = function() end if vim.fn.isdirectory(install_path) == 0 then - vim.fn.system { "git", "clone", "https://github.com/wbthomason/packer.nvim", install_path } + print "Installing lazy.nvim" + vim.fn.system { + "git", + "clone", + "--filter=blob:none", + "--single-branch", + "https://github.com/folke/lazy.nvim.git", + install_path, + } load_plugins() - require("packer").sync() - vim.cmd [[autocmd User PackerComplete ++once lua load_config()]] + vim.cmd [[autocmd User LazyDone ++once lua load_config()]] else load_plugins() - require("packer").sync() + require("lazy").sync() _G.load_config() end diff --git a/tests/specs/plugins_load_spec.lua b/tests/specs/plugins_load_spec.lua index 5cf1c2f5..37294c2e 100644 --- a/tests/specs/plugins_load_spec.lua +++ b/tests/specs/plugins_load_spec.lua @@ -6,16 +6,16 @@ a.describe("plugin-loader", function() pcall(function() lvim.log.level = "debug" - package.loaded["packer.log"] = nil package.loaded["lvim.core.log"] = nil end) a.it("should be able to load default packages without errors", function() + vim.go.loadplugins = true loader.load { plugins, lvim.plugins } -- TODO: maybe there's a way to avoid hard-coding the names of the modules? local startup_plugins = { - "packer", + "lazy", } for _, plugin in ipairs(startup_plugins) do @@ -24,8 +24,6 @@ a.describe("plugin-loader", function() end) a.it("should be able to load lsp packages without errors", function() - loader.load { plugins, lvim.plugins } - require("lvim.lsp").setup() local lsp_packages = { @@ -38,37 +36,4 @@ a.describe("plugin-loader", function() assert.truthy(package.loaded[plugin]) end end) - - pending("should be able to rollback plugins without errors", function() - local plugin = { name = "onedarker.nvim" } - plugin.path = vim.tbl_filter(function(package) - return package:match(plugin.name) - end, vim.api.nvim_list_runtime_paths())[1] - - local get_current_sha = function(repo) - local res = vim.fn.system(string.format("git -C %s log -1 --pretty=%%h", repo)):gsub("\n", "") - return res - end - plugin.test_sha = "316b1c9" - _G.locked_sha = get_current_sha(plugin.path) - loader.load { plugins, lvim.plugins } - - os.execute(string.format("git -C %s fetch --deepen 999 --quiet", plugin.path)) - os.execute(string.format("git -C %s checkout %s --quiet", plugin.path, plugin.test_sha)) - assert.equal(plugin.test_sha, get_current_sha(plugin.path)) - _G.completed = false - _G.verify_sha = function() - if _G.locked_sha ~= get_current_sha(plugin.path) then - error "unmatched results!" - else - _G.completed = true - end - end - vim.cmd [[autocmd User PackerComplete ++once lua _G.verify_sha()]] - loader.load_snapshot() - local ret = vim.wait(30 * 10 * 1000, function() - return _G.completed == true - end, 200) - assert.True(ret) - end) end) |