mirror of
				https://github.com/folke/lazy.nvim.git
				synced 2025-11-04 00:11:06 +00:00 
			
		
		
		
	Compare commits
	
		
			35 commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						
							
							
								
							
							
	
	
	202d8e92b3 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	f0f5bbb9e5 | 
						
						
							||
| 
							 | 
						ed4dc336a7 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	e31789c675 | 
						
						
							||
| 
							 | 
						5b15bc9f49 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	3c86e23658 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	db067881ff | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	16e52715b7 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	1ea3c40857 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	9f559d0e9d | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	4ded3ff73b | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	46e59d838f | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	59334064f8 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	a21b7bf2e7 | 
						
						
							||
| 
							 | 
						a1380a8461 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	147f5a3f55 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	6c3bda4aca | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	d51cf69783 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	1c9ba37045 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	96a205c8ce | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	a8c6db5da7 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	e5e9bf4821 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	f81a3fb7fe | 
						
						
							||
| 
							 | 
						ac21a639c7 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	c6a57a3534 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	f15a93907d | 
						
						
							||
| 
							 | 
						7527af40dd | ||
| 
							 | 
						
							
							
								
							
							
	
	
	5586fda88d | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	4f30c61b64 | 
						
						
							||
| 
							 | 
						d8f26efd45 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	4df5c4d65a | 
						
						
							||
| 
							 | 
						72aa3a2624 | ||
| 
							 | 
						
							
							
								
							
							
	
	
	a9c660d6ef | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	7e6c863bc7 | 
						
						
							||
| 
							 | 
						
							
							
								
							
							
	
	
	805b85c2ea | 
						
						
							
					 23 changed files with 842 additions and 417 deletions
				
			
		
							
								
								
									
										2
									
								
								.github/.release-please-manifest.json
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/.release-please-manifest.json
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
{
 | 
			
		||||
  ".": "11.16.1"
 | 
			
		||||
  ".": "11.17.3"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										3
									
								
								.markdownlint-cli2.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.markdownlint-cli2.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
config:
 | 
			
		||||
  MD013: false
 | 
			
		||||
  MD033: false
 | 
			
		||||
							
								
								
									
										46
									
								
								CHANGELOG.md
									
										
									
									
									
								
							
							
						
						
									
										46
									
								
								CHANGELOG.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,5 +1,51 @@
 | 
			
		|||
# Changelog
 | 
			
		||||
 | 
			
		||||
## [11.17.3](https://github.com/folke/lazy.nvim/compare/v11.17.2...v11.17.3) (2025-10-28)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Bug Fixes
 | 
			
		||||
 | 
			
		||||
* **luarocks:** update to lumen-oss for binaries. Closes [#2060](https://github.com/folke/lazy.nvim/issues/2060). Closes [#2059](https://github.com/folke/lazy.nvim/issues/2059) ([e31789c](https://github.com/folke/lazy.nvim/commit/e31789c675e2f591a20fc894b6713398eaa5dddd))
 | 
			
		||||
 | 
			
		||||
## [11.17.2](https://github.com/folke/lazy.nvim/compare/v11.17.1...v11.17.2) (2025-10-23)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Bug Fixes
 | 
			
		||||
 | 
			
		||||
* **luarocks:** add plugin to lua path if it was already loaded before we know its a luarock ([147f5a3](https://github.com/folke/lazy.nvim/commit/147f5a3f55b5491bbc77a55ce846ef5eb575fa42))
 | 
			
		||||
* **plugin:** check that path is actually in root dir. Closes [#2075](https://github.com/folke/lazy.nvim/issues/2075) ([16e5271](https://github.com/folke/lazy.nvim/commit/16e52715b70b4d0fc6af3563ccc0ed9df82ae23e))
 | 
			
		||||
* **stats:** better support for different `time_t` sizes. See [#2049](https://github.com/folke/lazy.nvim/issues/2049) ([1ea3c40](https://github.com/folke/lazy.nvim/commit/1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1))
 | 
			
		||||
 | 
			
		||||
## [11.17.1](https://github.com/folke/lazy.nvim/compare/v11.17.0...v11.17.1) (2025-02-25)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Bug Fixes
 | 
			
		||||
 | 
			
		||||
* **bootstrap:** support for older Neovim versions ([1c9ba37](https://github.com/folke/lazy.nvim/commit/1c9ba3704564a2e34a22191bb89678680ffeb245))
 | 
			
		||||
* **meta:** rebuild dirty right after disable. See [#1889](https://github.com/folke/lazy.nvim/issues/1889) ([d51cf69](https://github.com/folke/lazy.nvim/commit/d51cf6978321d659e68a8bc38ee806bd2517a196))
 | 
			
		||||
 | 
			
		||||
## [11.17.0](https://github.com/folke/lazy.nvim/compare/v11.16.2...v11.17.0) (2025-02-24)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Features
 | 
			
		||||
 | 
			
		||||
* **config,render:** allow customizing the debug icon ([#1863](https://github.com/folke/lazy.nvim/issues/1863)) ([a9c660d](https://github.com/folke/lazy.nvim/commit/a9c660d6ef1b396869d3d951760aa7a3dbfe575f))
 | 
			
		||||
* **util:** pass lang to `vim.notify` so that snacks notifier can render the ft. Closes [#1919](https://github.com/folke/lazy.nvim/issues/1919) ([c6a57a3](https://github.com/folke/lazy.nvim/commit/c6a57a3534d3494bcc5ff9b0586e141bdb0280eb))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Bug Fixes
 | 
			
		||||
 | 
			
		||||
* **config:** add missing space on the default debug icon ([#1879](https://github.com/folke/lazy.nvim/issues/1879)) ([4df5c4d](https://github.com/folke/lazy.nvim/commit/4df5c4d65a3bbf801edd9ec55fb1ae55cfa72dd0))
 | 
			
		||||
* **meta:** disable top-level specs before the rest. Closes [#1889](https://github.com/folke/lazy.nvim/issues/1889) ([f81a3fb](https://github.com/folke/lazy.nvim/commit/f81a3fb7feaf460ec7c8c983682b4a693b18fdd4))
 | 
			
		||||
* **ui:** do not show virt_lines for messages ([#1904](https://github.com/folke/lazy.nvim/issues/1904)) ([f15a939](https://github.com/folke/lazy.nvim/commit/f15a93907ddad3d9139aea465ae18336d87f5ce6))
 | 
			
		||||
 | 
			
		||||
## [11.16.2](https://github.com/folke/lazy.nvim/compare/v11.16.1...v11.16.2) (2024-12-13)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Bug Fixes
 | 
			
		||||
 | 
			
		||||
* **meta:** when a plugin is both optional and disabled, then just delete it from the list ([805b85c](https://github.com/folke/lazy.nvim/commit/805b85c2ea3bd6f9506ef22cbd6e3a39172b5b08))
 | 
			
		||||
 | 
			
		||||
## [11.16.1](https://github.com/folke/lazy.nvim/compare/v11.16.0...v11.16.1) (2024-12-09)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
local M = {}
 | 
			
		||||
 | 
			
		||||
function M.setup()
 | 
			
		||||
  local uv = vim.uv or vim.loop
 | 
			
		||||
  if vim.env.LAZY_STDPATH then
 | 
			
		||||
    local root = vim.fn.fnamemodify(vim.env.LAZY_STDPATH, ":p"):gsub("[\\/]$", "")
 | 
			
		||||
    for _, name in ipairs({ "config", "data", "state", "cache" }) do
 | 
			
		||||
| 
						 | 
				
			
			@ -13,12 +14,12 @@ function M.setup()
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  if vim.env.LAZY_PATH and not vim.uv.fs_stat(vim.env.LAZY_PATH) then
 | 
			
		||||
  if vim.env.LAZY_PATH and not uv.fs_stat(vim.env.LAZY_PATH) then
 | 
			
		||||
    vim.env.LAZY_PATH = nil
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  local lazypath = vim.env.LAZY_PATH or vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 | 
			
		||||
  if not vim.env.LAZY_PATH and not (vim.uv or vim.loop).fs_stat(lazypath) then
 | 
			
		||||
  if not vim.env.LAZY_PATH and not uv.fs_stat(lazypath) then
 | 
			
		||||
    vim.api.nvim_echo({
 | 
			
		||||
      {
 | 
			
		||||
        "Cloning lazy.nvim\n\n",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -669,7 +669,7 @@ will be added to the plugin’s spec.
 | 
			
		|||
      rocks = {
 | 
			
		||||
        enabled = true,
 | 
			
		||||
        root = vim.fn.stdpath("data") .. "/lazy-rocks",
 | 
			
		||||
        server = "https://nvim-neorocks.github.io/rocks-binaries/",
 | 
			
		||||
        server = "https://lumen-oss.github.io/rocks-binaries/",
 | 
			
		||||
        -- use hererocks to install luarocks?
 | 
			
		||||
        -- set to `nil` to use hererocks when luarocks is not found
 | 
			
		||||
        -- set to `true` to always use hererocks
 | 
			
		||||
| 
						 | 
				
			
			@ -706,6 +706,7 @@ will be added to the plugin’s spec.
 | 
			
		|||
        icons = {
 | 
			
		||||
          cmd = " ",
 | 
			
		||||
          config = "",
 | 
			
		||||
          debug = "● ",
 | 
			
		||||
          event = " ",
 | 
			
		||||
          favorite = " ",
 | 
			
		||||
          ft = " ",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ local Util = require("lazy.util")
 | 
			
		|||
local M = {}
 | 
			
		||||
 | 
			
		||||
M.patterns = { "nvim", "treesitter", "tree-sitter", "cmp", "neo" }
 | 
			
		||||
local manifest_file = "build/manifest.lua"
 | 
			
		||||
 | 
			
		||||
function M.fetch(url, file, prefix)
 | 
			
		||||
  if not vim.uv.fs_stat(file) then
 | 
			
		||||
| 
						 | 
				
			
			@ -19,11 +20,46 @@ function M.fetch(url, file, prefix)
 | 
			
		|||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.split()
 | 
			
		||||
  local lines = vim.fn.readfile(manifest_file)
 | 
			
		||||
  local id = 0
 | 
			
		||||
  local files = {} ---@type string[]
 | 
			
		||||
  while #lines > 0 do
 | 
			
		||||
    id = id + 1
 | 
			
		||||
    local part_file = "build/manifest-part-" .. id .. ".lua"
 | 
			
		||||
    local idx = math.min(#lines, 30000)
 | 
			
		||||
    while idx < #lines and not lines[idx]:match("^   },$") do
 | 
			
		||||
      idx = idx + 1
 | 
			
		||||
    end
 | 
			
		||||
    local part_lines = vim.list_slice(lines, 1, idx)
 | 
			
		||||
    if idx ~= #lines then
 | 
			
		||||
      part_lines[#part_lines] = "   }}"
 | 
			
		||||
    end
 | 
			
		||||
    vim.fn.writefile(part_lines, part_file)
 | 
			
		||||
    files[#files + 1] = part_file
 | 
			
		||||
    print("Wrote " .. part_file .. "\n")
 | 
			
		||||
 | 
			
		||||
    lines = vim.list_slice(lines, idx + 1)
 | 
			
		||||
    if #lines == 0 then
 | 
			
		||||
      break
 | 
			
		||||
    end
 | 
			
		||||
    lines[1] = "repository = { " .. lines[1]
 | 
			
		||||
  end
 | 
			
		||||
  return files
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
---@return RockManifest?
 | 
			
		||||
function M.fetch_manifest()
 | 
			
		||||
  local manifest_file = "build/manifest.lua"
 | 
			
		||||
  M.fetch("https://luarocks.org/manifest-5.1", manifest_file)
 | 
			
		||||
  return Rocks.parse(manifest_file)
 | 
			
		||||
  local ret = { repository = {} }
 | 
			
		||||
  for _, file in ipairs(M.split()) do
 | 
			
		||||
    local part = Rocks.parse(file)
 | 
			
		||||
    print(vim.tbl_count(part.repository or {}) .. " rocks in " .. file .. "\n")
 | 
			
		||||
    for k, v in pairs(part.repository or {}) do
 | 
			
		||||
      ret.repository[k] = v
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  return ret
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
function M.fetch_rockspec(name, version, prefix)
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +73,7 @@ function M.build()
 | 
			
		|||
  local manifest = M.fetch_manifest() or {}
 | 
			
		||||
  ---@type {name:string, version:string, url:string}[]
 | 
			
		||||
  local nvim_rocks = {}
 | 
			
		||||
  print(vim.tbl_count(manifest.repository or {}) .. " rocks in manifest\n")
 | 
			
		||||
  for rock, vv in pairs(manifest.repository or {}) do
 | 
			
		||||
    local matches = false
 | 
			
		||||
    for _, pattern in ipairs(M.patterns) do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -59,7 +59,7 @@ M.defaults = {
 | 
			
		|||
  rocks = {
 | 
			
		||||
    enabled = true,
 | 
			
		||||
    root = vim.fn.stdpath("data") .. "/lazy-rocks",
 | 
			
		||||
    server = "https://nvim-neorocks.github.io/rocks-binaries/",
 | 
			
		||||
    server = "https://lumen-oss.github.io/rocks-binaries/",
 | 
			
		||||
    -- use hererocks to install luarocks?
 | 
			
		||||
    -- set to `nil` to use hererocks when luarocks is not found
 | 
			
		||||
    -- set to `true` to always use hererocks
 | 
			
		||||
| 
						 | 
				
			
			@ -96,6 +96,7 @@ M.defaults = {
 | 
			
		|||
    icons = {
 | 
			
		||||
      cmd = " ",
 | 
			
		||||
      config = "",
 | 
			
		||||
      debug = "● ",
 | 
			
		||||
      event = " ",
 | 
			
		||||
      favorite = " ",
 | 
			
		||||
      ft = " ",
 | 
			
		||||
| 
						 | 
				
			
			@ -241,7 +242,7 @@ function M.hererocks()
 | 
			
		|||
  return M.options.rocks.hererocks
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
M.version = "11.16.1" -- x-release-please-version
 | 
			
		||||
M.version = "11.17.3" -- x-release-please-version
 | 
			
		||||
 | 
			
		||||
M.ns = vim.api.nvim_create_namespace("lazy")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@ local Util = require("lazy.core.util")
 | 
			
		|||
 | 
			
		||||
---@class LazyKeysSpec: LazyKeysBase
 | 
			
		||||
---@field [1] string lhs
 | 
			
		||||
---@field [2]? string|fun()|false rhs
 | 
			
		||||
---@field [2]? string|fun():string?|false rhs
 | 
			
		||||
---@field mode? string|string[]
 | 
			
		||||
 | 
			
		||||
---@class LazyKeys: LazyKeysBase
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,6 +179,7 @@ function M:_rebuild(name)
 | 
			
		|||
  local super = nil
 | 
			
		||||
  plugin.url = nil
 | 
			
		||||
  plugin._.dep = true
 | 
			
		||||
  plugin._.top = true
 | 
			
		||||
  plugin.optional = true
 | 
			
		||||
 | 
			
		||||
  assert(#plugin._.frags > 0, "no fragments found for plugin " .. name)
 | 
			
		||||
| 
						 | 
				
			
			@ -195,6 +196,7 @@ function M:_rebuild(name)
 | 
			
		|||
      plugin._.dep = plugin._.dep and fragment.dep
 | 
			
		||||
      plugin.optional = plugin.optional and (rawget(fragment.spec, "optional") == true)
 | 
			
		||||
      plugin.url = fragment.url or plugin.url
 | 
			
		||||
      plugin._.top = plugin._.top and fragment.pid == nil
 | 
			
		||||
 | 
			
		||||
      -- dependencies
 | 
			
		||||
      for _, dep in ipairs(fragment.deps or {}) do
 | 
			
		||||
| 
						 | 
				
			
			@ -302,13 +304,26 @@ end
 | 
			
		|||
--- Removes plugins that are disabled.
 | 
			
		||||
function M:fix_disabled()
 | 
			
		||||
  local changes = 0
 | 
			
		||||
  for _, plugin in pairs(self.plugins) do
 | 
			
		||||
    if plugin.enabled == false or (type(plugin.enabled) == "function" and not plugin.enabled()) then
 | 
			
		||||
      changes = changes + 1
 | 
			
		||||
      self:disable(plugin)
 | 
			
		||||
  local function check(top)
 | 
			
		||||
    for _, plugin in pairs(self.plugins) do
 | 
			
		||||
      if (plugin._.top or false) == top then
 | 
			
		||||
        if plugin.enabled == false or (type(plugin.enabled) == "function" and not plugin.enabled()) then
 | 
			
		||||
          changes = changes + 1
 | 
			
		||||
          if plugin.optional then
 | 
			
		||||
            self:del(plugin.name)
 | 
			
		||||
          else
 | 
			
		||||
            self:disable(plugin)
 | 
			
		||||
          end
 | 
			
		||||
          self:rebuild()
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  self:rebuild()
 | 
			
		||||
  -- disable top-level plugins first, since they may have non-top-level frags
 | 
			
		||||
  -- that disable other plugins
 | 
			
		||||
  check(true)
 | 
			
		||||
  -- then disable non-top-level plugins
 | 
			
		||||
  check(false)
 | 
			
		||||
  return changes
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -240,7 +240,7 @@ function M.update_state()
 | 
			
		|||
    if plugin.virtual then
 | 
			
		||||
      plugin._.is_local = true
 | 
			
		||||
      plugin._.installed = true -- local plugins are managed by the user
 | 
			
		||||
    elseif plugin.dir:find(Config.options.root, 1, true) == 1 then
 | 
			
		||||
    elseif plugin.dir:find(Config.options.root .. "/", 1, true) == 1 then
 | 
			
		||||
      plugin._.installed = installed[plugin.name] ~= nil
 | 
			
		||||
      installed[plugin.name] = nil
 | 
			
		||||
    else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -374,6 +374,7 @@ function M.notify(msg, opts)
 | 
			
		|||
  local lang = opts.lang or "markdown"
 | 
			
		||||
  local n = opts.once and vim.notify_once or vim.notify
 | 
			
		||||
  n(msg, opts.level or vim.log.levels.INFO, {
 | 
			
		||||
    ft = lang,
 | 
			
		||||
    on_open = function(win)
 | 
			
		||||
      local ok = pcall(function()
 | 
			
		||||
        vim.treesitter.language.add("markdown")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,7 +61,11 @@ end
 | 
			
		|||
---@return string
 | 
			
		||||
function M.extract(file, pattern)
 | 
			
		||||
  local init = Util.read_file(file)
 | 
			
		||||
  return assert(init:match(pattern))
 | 
			
		||||
  local ret = assert(init:match(pattern)) --[[@as string]]
 | 
			
		||||
  local lines = vim.tbl_filter(function(line)
 | 
			
		||||
    return not line:find("^%s*%-%-%s*stylua%s*:%s*ignore%s*$")
 | 
			
		||||
  end, vim.split(ret, "\n"))
 | 
			
		||||
  return table.concat(lines, "\n")
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
---@return ReadmeBlock
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ M.clean = {
 | 
			
		|||
  run = function(self, opts)
 | 
			
		||||
    opts = opts or {}
 | 
			
		||||
    local dir = self.plugin.dir:gsub("/+$", "")
 | 
			
		||||
    assert(dir:find(Config.options.root, 1, true) == 1, self.plugin.dir .. " should be under packpath!")
 | 
			
		||||
    assert(dir:find(Config.options.root .. "/", 1, true) == 1, self.plugin.dir .. " should be under packpath!")
 | 
			
		||||
 | 
			
		||||
    local rock_root = Config.options.rocks.root .. "/" .. self.plugin.name
 | 
			
		||||
    if vim.uv.fs_stat(rock_root) then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,11 +33,14 @@ function M.setup(opts)
 | 
			
		|||
  local args = {}
 | 
			
		||||
  local is_busted = false
 | 
			
		||||
  local is_minitest = false
 | 
			
		||||
  local offline = vim.env.LAZY_OFFLINE == "1" or vim.env.LAZY_OFFLINE == "true"
 | 
			
		||||
  for _, a in ipairs(_G.arg) do
 | 
			
		||||
    if a == "--busted" then
 | 
			
		||||
      is_busted = true
 | 
			
		||||
    elseif a == "--minitest" then
 | 
			
		||||
      is_minitest = true
 | 
			
		||||
    elseif a == "--offline" then
 | 
			
		||||
      offline = true
 | 
			
		||||
    else
 | 
			
		||||
      table.insert(args, a)
 | 
			
		||||
    end
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +65,9 @@ function M.setup(opts)
 | 
			
		|||
  if vim.g.colors_name == nil then
 | 
			
		||||
    vim.cmd("colorscheme habamax")
 | 
			
		||||
  end
 | 
			
		||||
  require("lazy").update():wait()
 | 
			
		||||
  if not offline then
 | 
			
		||||
    require("lazy").update():wait()
 | 
			
		||||
  end
 | 
			
		||||
  if vim.bo.filetype == "lazy" then
 | 
			
		||||
    local errors = false
 | 
			
		||||
    for _, plugin in pairs(require("lazy.core.config").spec.plugins) do
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +155,7 @@ function M.minitest.setup(opts)
 | 
			
		|||
        opts = {
 | 
			
		||||
          collect = {
 | 
			
		||||
            find_files = function()
 | 
			
		||||
              return vim.fn.globpath("tests", "**/*_spec.lua", true, true)
 | 
			
		||||
              return #_G.arg > 0 and _G.arg or vim.fn.globpath("tests", "**/*_spec.lua", true, true)
 | 
			
		||||
            end,
 | 
			
		||||
          },
 | 
			
		||||
          -- script_path = "tests/minit.lua",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,6 +63,9 @@ function M.update()
 | 
			
		|||
            pkg.spec = { _raw = spec.code }
 | 
			
		||||
          end
 | 
			
		||||
          table.insert(ret.pkgs, pkg)
 | 
			
		||||
          if not plugin._.pkg and plugin._.loaded and pkg.source == "rockspec" then
 | 
			
		||||
            require("lazy.core.loader").add_to_luapath(plugin)
 | 
			
		||||
          end
 | 
			
		||||
          break
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,11 +35,10 @@ function M.cputime()
 | 
			
		|||
  if M.C == nil then
 | 
			
		||||
    pcall(function()
 | 
			
		||||
      ffi.cdef([[
 | 
			
		||||
        typedef long time_t;
 | 
			
		||||
        typedef int clockid_t;
 | 
			
		||||
        typedef struct timespec {
 | 
			
		||||
          time_t   tv_sec;        /* seconds */
 | 
			
		||||
          long     tv_nsec;       /* nanoseconds */
 | 
			
		||||
          int64_t tv_sec;   /* Use fixed 64-bit type for portability */
 | 
			
		||||
          long    tv_nsec;  /* nanoseconds */
 | 
			
		||||
        } nanotime;
 | 
			
		||||
        int clock_gettime(clockid_t clk_id, struct timespec *tp);
 | 
			
		||||
      ]])
 | 
			
		||||
| 
						 | 
				
			
			@ -48,7 +47,8 @@ function M.cputime()
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  local function real()
 | 
			
		||||
    local pnano = assert(ffi.new("nanotime[?]", 1))
 | 
			
		||||
    -- Zero-initialize to handle 32-bit systems where only lower 32 bits are written
 | 
			
		||||
    local pnano = ffi.new("nanotime[1]")
 | 
			
		||||
    local CLOCK_PROCESS_CPUTIME_ID = jit.os == "OSX" and 12 or 2
 | 
			
		||||
    ffi.C.clock_gettime(CLOCK_PROCESS_CPUTIME_ID, pnano)
 | 
			
		||||
    return tonumber(pnano[0].tv_sec) * 1e3 + tonumber(pnano[0].tv_nsec) / 1e6
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@
 | 
			
		|||
---@field dirty? boolean
 | 
			
		||||
---@field build? boolean
 | 
			
		||||
---@field frags? number[]
 | 
			
		||||
---@field top? boolean
 | 
			
		||||
---@field handlers? LazyPluginHandlers
 | 
			
		||||
---@field installed? boolean
 | 
			
		||||
---@field is_local? boolean
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,7 +94,7 @@ function M:update()
 | 
			
		|||
      diag.lnum = diag.row - 1
 | 
			
		||||
      return diag
 | 
			
		||||
    end, self._diagnostics),
 | 
			
		||||
    { signs = false, virtual_text = true, underline = false }
 | 
			
		||||
    { signs = false, virtual_text = true, underline = false, virtual_lines = false }
 | 
			
		||||
  )
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -759,7 +759,7 @@ function M:debug()
 | 
			
		|||
        ---@type string[]
 | 
			
		||||
        plugins = vim.tbl_values(plugins)
 | 
			
		||||
        table.sort(plugins)
 | 
			
		||||
        self:append("● ", "LazySpecial", { indent = 2 })
 | 
			
		||||
        self:append(Config.options.ui.icons.debug, "LazySpecial", { indent = 2 })
 | 
			
		||||
        if handler_type == "keys" then
 | 
			
		||||
          for k, v in pairs(Config.plugins[plugins[1]]._.handlers.keys) do
 | 
			
		||||
            if k == value then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,3 @@
 | 
			
		|||
#!/bin/env bash
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
nvim -l tests/minit.lua --minitest
 | 
			
		||||
nvim -l tests/minit.lua --minitest "$@"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@ local function clean(plugins)
 | 
			
		|||
    if plugin._.dep == false then
 | 
			
		||||
      plugin._.dep = nil
 | 
			
		||||
    end
 | 
			
		||||
    plugin._.top = nil
 | 
			
		||||
    return plugin
 | 
			
		||||
  end, plugins)
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										21
									
								
								vim.toml
									
										
									
									
									
								
							
							
						
						
									
										21
									
								
								vim.toml
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
[selene]
 | 
			
		||||
base = "lua51"
 | 
			
		||||
name = "vim"
 | 
			
		||||
 | 
			
		||||
[vim]
 | 
			
		||||
any = true
 | 
			
		||||
 | 
			
		||||
[jit]
 | 
			
		||||
any = true
 | 
			
		||||
 | 
			
		||||
[assert]
 | 
			
		||||
any = true
 | 
			
		||||
 | 
			
		||||
[describe]
 | 
			
		||||
any = true
 | 
			
		||||
 | 
			
		||||
[it]
 | 
			
		||||
any = true
 | 
			
		||||
 | 
			
		||||
[before_each.args]
 | 
			
		||||
any = true
 | 
			
		||||
							
								
								
									
										19
									
								
								vim.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								vim.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
base: lua51
 | 
			
		||||
lua_versions:
 | 
			
		||||
  - luajit
 | 
			
		||||
 | 
			
		||||
globals:
 | 
			
		||||
  Snacks:
 | 
			
		||||
    any: true
 | 
			
		||||
  vim:
 | 
			
		||||
    any: true
 | 
			
		||||
  jit:
 | 
			
		||||
    any: true
 | 
			
		||||
  assert:
 | 
			
		||||
    any: true
 | 
			
		||||
  describe:
 | 
			
		||||
    any: true
 | 
			
		||||
  it:
 | 
			
		||||
    any: true
 | 
			
		||||
  before_each:
 | 
			
		||||
    any: true
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue