aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhạm Bình An <111893501+brianhuster@users.noreply.github.com>2025-03-26 06:35:12 +0700
committerGitHub <noreply@github.com>2025-03-26 07:35:12 +0800
commit6b00c9acfde954a3e992a2932eca9fa5902a1298 (patch)
tree508b05698449c06573e562088d5085ffccd65fce
parenta3b4743b4341d857ffc8a103f25ccb42ebc0e292 (diff)
downloadrneovim-6b00c9acfde954a3e992a2932eca9fa5902a1298.tar.gz
rneovim-6b00c9acfde954a3e992a2932eca9fa5902a1298.tar.bz2
rneovim-6b00c9acfde954a3e992a2932eca9fa5902a1298.zip
fix(lua): no omni/cmdline completion for vim.env (#33044)
Problem: - `:lua vim.env.<Tab>` does not show completion of environment variables - Meanwhile, `:let $<Tab>` does show completion of environment variables Solution: - Fix it
-rw-r--r--runtime/lua/vim/_editor.lua3
-rw-r--r--test/functional/lua/command_line_completion_spec.lua12
2 files changed, 14 insertions, 1 deletions
diff --git a/runtime/lua/vim/_editor.lua b/runtime/lua/vim/_editor.lua
index f0b8587476..e795c66969 100644
--- a/runtime/lua/vim/_editor.lua
+++ b/runtime/lua/vim/_editor.lua
@@ -1031,7 +1031,7 @@ function vim._expand_pat(pat, env)
end
-- Completion for dict accessors (special vim variables and vim.fn)
- if mt and vim.tbl_contains({ vim.g, vim.t, vim.w, vim.b, vim.v, vim.fn }, final_env) then
+ if mt and vim.tbl_contains({ vim.g, vim.t, vim.w, vim.b, vim.v, vim.env, vim.fn }, final_env) then
local prefix, type = unpack(
vim.fn == final_env and { '', 'function' }
or vim.g == final_env and { 'g:', 'var' }
@@ -1039,6 +1039,7 @@ function vim._expand_pat(pat, env)
or vim.w == final_env and { 'w:', 'var' }
or vim.b == final_env and { 'b:', 'var' }
or vim.v == final_env and { 'v:', 'var' }
+ or vim.env == final_env and { '', 'environment' }
or { nil, nil }
)
assert(prefix and type, "Can't resolve final_env")
diff --git a/test/functional/lua/command_line_completion_spec.lua b/test/functional/lua/command_line_completion_spec.lua
index ee3d0325e1..7883480125 100644
--- a/test/functional/lua/command_line_completion_spec.lua
+++ b/test/functional/lua/command_line_completion_spec.lua
@@ -269,6 +269,18 @@ describe('nlua_expand_pat', function()
}
eq(expected, actual)
end)
+
+ it('vim.env', function()
+ exec_lua [[
+ vim.env.NLUA_ENV_VAR = 'foo'
+ ]]
+ local actual = get_completions('vim.env.NLUA')
+ local expected = {
+ { 'NLUA_ENV_VAR' },
+ #'vim.env.',
+ }
+ eq(expected, actual)
+ end)
end)
describe('completes', function()