vim-patch:9.1.0329: String interpolation fails for Dict type (#28335)

Problem:  String interpolation fails for Dict type
Solution: Support Dict data type properly, also support :put =Dict
          (without having to convert it to string() first)
          (Yegappan Lakshmanan)

fixes: vim/vim#14529
closes: vim/vim#14541

f01493c550

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2024-04-15 07:11:39 +08:00
committed by GitHub
parent 7180ef6901
commit 43f8d7e3ef
11 changed files with 62 additions and 48 deletions

View File

@@ -7876,10 +7876,10 @@ string({expr}) *string()*
for infinite and NaN floating-point values representations
which use |str2float()|. Strings are also dumped literally,
only single quote is escaped, which does not allow using YAML
for parsing back binary strings. |eval()| should always work for
strings and floats though and this is the only official
method, use |msgpackdump()| or |json_encode()| if you need to
share data with other application.
for parsing back binary strings. |eval()| should always work
for strings and floats though, and this is the only official
method. Use |msgpackdump()| or |json_encode()| if you need to
share data with other applications.
strlen({string}) *strlen()*
The result is a Number, which is the length of the String

View File

@@ -1291,8 +1291,8 @@ expression (like with the "/" command).
The expression must evaluate to a String. A Number is always automatically
converted to a String. For the "p" and ":put" command, if the result is a
Float it's converted into a String. If the result is a List each element is
turned into a String and used as a line. A Dictionary or FuncRef results in
an error message (use string() to convert).
turned into a String and used as a line. A Dictionary is converted into a
String. A FuncRef results in an error message (use string() to convert).
If the "= register is used for the "p" command, the String is split up at <NL>
characters. If the String ends in a <NL>, it is regarded as a linewise

View File

@@ -9353,10 +9353,10 @@ function vim.fn.stridx(haystack, needle, start) end
--- for infinite and NaN floating-point values representations
--- which use |str2float()|. Strings are also dumped literally,
--- only single quote is escaped, which does not allow using YAML
--- for parsing back binary strings. |eval()| should always work for
--- strings and floats though and this is the only official
--- method, use |msgpackdump()| or |json_encode()| if you need to
--- share data with other application.
--- for parsing back binary strings. |eval()| should always work
--- for strings and floats though, and this is the only official
--- method. Use |msgpackdump()| or |json_encode()| if you need to
--- share data with other applications.
---
--- @param expr any
--- @return string