style(plugin): improved types a bit, but sumneko still can't handle them since they're recursive

This commit is contained in:
Folke Lemaitre 2022-12-27 08:30:28 +01:00
parent 8a3152de93
commit 38a9541939
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
2 changed files with 60 additions and 48 deletions

View File

@ -5,54 +5,6 @@ local Cache = require("lazy.core.cache")
local M = {}
---@alias LazyPluginKind "normal"|"clean"
---@class LazyPluginState
---@field loaded? {[string]:string}|{time:number}
---@field installed boolean
---@field tasks? LazyTask[]
---@field dirty? boolean
---@field updated? {from:string, to:string}
---@field is_local boolean
---@field has_updates? boolean
---@field cloned? boolean
---@field kind? LazyPluginKind
---@field dep? boolean True if this plugin is only in the spec as a dependency
---@field cond? boolean
---@class LazyPluginHooks
---@field init? fun(LazyPlugin) Will always be run
---@field config? fun(LazyPlugin)|true|table Will be executed when loading the plugin
---@field build? string|fun(LazyPlugin)|(string|fun(LazyPlugin))[]
---@class LazyPluginHandlers: table<LazyHandlerTypes, string|string[]>
---@field event? string[]
---@field cmd? string[]
---@field ft? string[]
---@field keys? string[]
---@field module? false
---@class LazyPluginRef
---@field branch? string
---@field tag? string
---@field commit? string
---@field version? string
---@field pin? boolean
---@class LazyPlugin: LazyPluginHandlers,LazyPluginHooks,LazyPluginRef
---@field [1] string?
---@field name string display name and name used for plugin config files
---@field url string?
---@field dir string
---@field enabled? boolean|(fun():boolean)
---@field cond? boolean|(fun():boolean)
---@field lazy? boolean
---@field dev? boolean If set, then link to the respective folder under your ~/projects
---@field dependencies? string[]
---@field _ LazyPluginState
---@alias LazySpec string|LazyPlugin|LazyPlugin[]|{dependencies:LazySpec}
---@class LazySpecLoader
---@field plugins table<string, LazyPlugin>
---@field errors string[]

60
lua/lazy/types.lua Normal file
View File

@ -0,0 +1,60 @@
---@alias LazyPluginKind "normal"|"clean"
---@class LazyPluginState
---@field loaded? {[string]:string}|{time:number}
---@field installed boolean
---@field tasks? LazyTask[]
---@field dirty? boolean
---@field updated? {from:string, to:string}
---@field is_local boolean
---@field has_updates? boolean
---@field cloned? boolean
---@field kind? LazyPluginKind
---@field dep? boolean True if this plugin is only in the spec as a dependency
---@field cond? boolean
---@class LazyPluginHooks
---@field init? fun(LazyPlugin) Will always be run
---@field config? fun(LazyPlugin)|true|table Will be executed when loading the plugin
---@field build? string|fun(LazyPlugin)|(string|fun(LazyPlugin))[]
---@class LazyPluginHandlers
---@field event? string[]
---@field cmd? string[]
---@field ft? string[]
---@field keys? string[]
---@field module? false
---@class LazyPluginRef
---@field branch? string
---@field tag? string
---@field commit? string
---@field version? string
---@field pin? boolean
---@class LazyPluginBase
---@field [1] string?
---@field name string display name and name used for plugin config files
---@field url string?
---@field dir string
---@field enabled? boolean|(fun():boolean)
---@field cond? boolean|(fun():boolean)
---@field lazy? boolean
---@field dev? boolean If set, then link to the respective folder under your ~/projects
---@class LazyPlugin: LazyPluginBase,LazyPluginHandlers,LazyPluginHooks,LazyPluginRef
---@field dependencies? string[]
---@field _ LazyPluginState
---@class LazyPluginSpecHandlers
---@field event? string[]|string
---@field cmd? string[]|string
---@field ft? string[]|string
---@field keys? string|string[]|LazyKeys[]
---@field module? false
---@class LazyPluginSpec: LazyPluginBase,LazyPluginSpecHandlers,LazyPluginHooks,LazyPluginRef
---@field dependencies? string|string[]|LazyPluginSpec[]
---@alias LazySpec string|string[]|LazyPluginSpec[]|LazyPluginSpec[][]