Skip to content

Commit bd2317f

Browse files
phanengithub-actions[bot]
authored andcommitted
fix(lua): separate vim.{g,b,w,t} types #37081
Problem: When `vim.g.foo = 1`, `vim.b.foo` also appears as a completion candidate (when use emmylua_ls). Solution: Define separate types. (cherry picked from commit 1aa26f5)
1 parent fcdc984 commit bd2317f

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

runtime/lua/vim/_editor.lua

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,11 @@ vim.cmd = setmetatable({}, {
480480
--- @field [string] any
481481
--- @field [integer] vim.var_accessor
482482

483+
--- @class (private) vim.g: { [string]: any }
484+
--- @class (private) vim.b: vim.var_accessor
485+
--- @class (private) vim.w: vim.var_accessor
486+
--- @class (private) vim.t: vim.var_accessor
487+
483488
-- These are the vim.env/v/g/o/bo/wo variable magic accessors.
484489
do
485490
--- @param scope string
@@ -500,11 +505,11 @@ do
500505
return setmetatable({}, mt)
501506
end
502507

503-
vim.g = make_dict_accessor('g', false)
508+
vim.g = make_dict_accessor('g', false) --[[@as vim.g]]
504509
vim.v = make_dict_accessor('v', false) --[[@as vim.v]]
505-
vim.b = make_dict_accessor('b')
506-
vim.w = make_dict_accessor('w')
507-
vim.t = make_dict_accessor('t')
510+
vim.b = make_dict_accessor('b') --[[@as vim.b]]
511+
vim.w = make_dict_accessor('w') --[[@as vim.w]]
512+
vim.t = make_dict_accessor('t') --[[@as vim.t]]
508513
end
509514

510515
--- @deprecated

0 commit comments

Comments
 (0)