fix(vim.opt): vimL map string values not trimmed (#14982)

Options formatted as a list of comma-separated key-value pairs may have
values that contain leading and trailing whitespace characters. For
example, the `listchars` option has a default value of
`"tab:> ,trail:-,nbsp:+"`. When converting this value to a lua table,
leading and trailing whitespace should not be trimmed.

Co-authored-by: Robert Hrusecky <robert.hrusecky@utexas.edu>
This commit is contained in:
jadedpasta 2021-07-04 02:14:39 -05:00 committed by GitHub
parent 75f758b993
commit 490615612e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 3 deletions

View File

@ -494,7 +494,6 @@ local convert_value_to_lua = (function()
for _, key_value_str in ipairs(comma_split) do for _, key_value_str in ipairs(comma_split) do
local key, value = unpack(vim.split(key_value_str, ":")) local key, value = unpack(vim.split(key_value_str, ":"))
key = vim.trim(key) key = vim.trim(key)
value = vim.trim(value)
result[key] = value result[key] = value
end end

View File

@ -1332,12 +1332,12 @@ describe('lua stdlib', function()
it('should work for key-value pair options', function() it('should work for key-value pair options', function()
local listchars = exec_lua [[ local listchars = exec_lua [[
vim.opt.listchars = "tab:>~,space:_" vim.opt.listchars = "tab:> ,space:_"
return vim.opt.listchars:get() return vim.opt.listchars:get()
]] ]]
eq({ eq({
tab = ">~", tab = "> ",
space = "_", space = "_",
}, listchars) }, listchars)
end) end)