1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
---@meta
--# selene: allow(unused_variable)
---@class wk.Filter
---@field mode? string
---@field buf? number
---@field keys? string
---@field global? boolean
---@field local? boolean
---@field update? boolean
---@field delay? number
---@field loop? boolean
---@field defer? boolean don't show the popup immediately. Wait for the first key to be pressed
---@field waited? number
---@field check? boolean
---@field expand? boolean
---@class wk.Icon
---@field icon? string
---@field hl? string
---@field cat? "file" | "filetype" | "extension"
---@field name? string
---@field color? false | "azure" | "blue" | "cyan" | "green" | "grey" | "orange" | "purple" | "red" | "yellow"
---@class wk.IconProvider
---@field name string
---@field available? boolean
---@field get fun(icon: wk.Icon):(icon: string?, hl: string?)
---@class wk.IconRule: wk.Icon
---@field pattern? string
---@field plugin? string
---@class wk.Keymap: vim.api.keyset.keymap
---@field lhs string
---@field mode string
---@field rhs? string|fun()
---@field lhsraw? string
---@field buffer? number
--- Represents a node in the which-key tree
---@class wk.Node: wk.Mapping
---@field key string single key of the node
---@field path string[] path to the node (all keys leading to this node)
---@field keys string full key sequence
---@field parent? wk.Node parent node
---@field keymap? wk.Keymap Real keymap
---@field mapping? wk.Mapping Mapping info supplied by user
---@field action? fun() action to execute when node is selected (used by plugins)
---@class wk.Mapping: wk.Keymap
---@field idx? number
---@field plugin? string
---@field group? boolean
---@field remap? boolean
---@field hidden? boolean
---@field real? boolean this is a mapping for a real keymap. Hide it if the real keymap does not exist
---@field preset? boolean
---@field icon? wk.Icon|string
---@field proxy? string
---@field expand? fun():wk.Spec
---@class wk.Spec: {[number]: wk.Spec} , wk.Mapping
---@field [1]? string
---@field [2]? string|fun()
---@field lhs? string
---@field group? string|fun():string
---@field desc? string|fun():string
---@field icon? wk.Icon|string|fun():(wk.Icon|string)
---@field buffer? number|boolean
---@field mode? string|string[]
---@field cond? boolean|fun():boolean?
---@class wk.Win.opts: vim.api.keyset.win_config
---@field width? wk.Dim
---@field height? wk.Dim
---@field wo? vim.wo
---@field bo? vim.bo
---@field padding? {[1]: number, [2]:number}
---@field no_overlap? boolean
---@class wk.Col
---@field key string
---@field hl? string
---@field width? number
---@field padding? number[]
---@field default? string
---@field align? "left"|"right"|"center"
---@class wk.Table.opts
---@field cols wk.Col[]
---@field rows table<string, string>[]
---@class wk.Plugin.item
---@field key string
---@field value string
---@field desc string
---@field order? number
---@field action? fun()
---@class wk.Plugin
---@field name string
---@field cols? wk.Col[]
---@field mappings? wk.Spec
---@field expand fun():wk.Plugin.item[]
---@field setup fun(opts: table<string, any>)
---@class wk.Item: wk.Node
---@field node wk.Node
---@field key string
---@field raw_key string
---@field desc string
---@field group? boolean
---@field order? number
---@field icon? string
---@field icon_hl? string
|