Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: version in LazySpec is typed wrong #1381

Closed
3 tasks done
aarondill opened this issue Mar 24, 2024 · 0 comments · Fixed by #1382
Closed
3 tasks done

bug: version in LazySpec is typed wrong #1381

aarondill opened this issue Mar 24, 2024 · 0 comments · Fixed by #1382
Labels
bug Something isn't working

Comments

@aarondill
Copy link

aarondill commented Mar 24, 2024

Did you check docs and existing issues?

  • I have read all the lazy.nvim docs
  • I have searched the existing issues of lazy.nvim
  • I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)

NVIM v0.10.0-dev-2539+ga69c7206

Operating system/version

Arch Linux

Describe the bug

Using ---@type LazySpec and setting version = false gives an error, since LazySpec (really LazyPluginRef) contains ---@field version? string

Steps To Reproduce

  1. Setup LSP, diagnostics, and Neodev (to get lazy.nvim types)
  2. input the below code into init.lua
---@type LazySpec
return {
   "someRandomString",
   version = false, -- this should work!
}

Expected Behavior

No error. The docs say to set version = false to override version handling, but the types don't reflect this possibility.

This type should actually be

---@class LazyPluginRef
---@field version? string|boolean

Repro

Not really useful for repro. See the above directions
-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")

--- Set up lua-language-server and neodev. I don't want to do this for such a simple issue.
---It doesn't really matter what you do with this variable, it's the type mismatch that matters.
---@type LazySpec
local plugin = {
"something",
version = false, -- ERROR!
}
@aarondill aarondill added the bug Something isn't working label Mar 24, 2024
@folke folke closed this as completed in eade87f Mar 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant