fix: avoid eval "= directly in builtin registers picker (#2347)

When "= contains expression not ought to be run in current context, the
`getreg('=')` raises error.

For example `:put =foo` (where `foo` is undefined) then open registers
picker it fails. Also #2228.

Now specify second arg to `getreg` to get register expr (instead of
"evaluated" result) as content, like what `:registers` command displays.

This has behavior change, if user still want to see/paste the
evaluated result, a customized action will be needed.
This commit is contained in:
莊喬
2023-02-19 18:08:46 +08:00
committed by GitHub
parent ee90403e40
commit b0395c2882

View File

@@ -820,7 +820,7 @@ function make_entry.gen_from_registers(opts)
end end
return function(entry) return function(entry)
local contents = vim.fn.getreg(entry) local contents = vim.fn.getreg(entry, 1)
return make_entry.set_default_entry_mt({ return make_entry.set_default_entry_mt({
value = entry, value = entry,
ordinal = string.format("%s %s", entry, contents), ordinal = string.format("%s %s", entry, contents),