mirror of
https://github.com/neovim/neovim.git
synced 2025-09-19 01:38:16 +00:00
vim-patch:8.0.1090: cannot get the text under the cursor like v:beval_text
Problem: cannot get the text under the cursor like v:beval_text
Solution: Add <cexpr>.
65f084749b
This commit is contained in:
@@ -8392,23 +8392,25 @@ ssize_t find_cmdline_var(const char_u *src, size_t *usedlen)
|
||||
"%",
|
||||
#define SPEC_PERC 0
|
||||
"#",
|
||||
#define SPEC_HASH 1
|
||||
#define SPEC_HASH (SPEC_PERC + 1)
|
||||
"<cword>", /* cursor word */
|
||||
#define SPEC_CWORD 2
|
||||
#define SPEC_CWORD (SPEC_HASH + 1)
|
||||
"<cWORD>", /* cursor WORD */
|
||||
#define SPEC_CCWORD 3
|
||||
#define SPEC_CCWORD (SPEC_CWORD + 1)
|
||||
"<cexpr>", // expr under cursor
|
||||
#define SPEC_CEXPR (SPEC_CCWORD + 1)
|
||||
"<cfile>", /* cursor path name */
|
||||
#define SPEC_CFILE 4
|
||||
#define SPEC_CFILE (SPEC_CEXPR + 1)
|
||||
"<sfile>", /* ":so" file name */
|
||||
#define SPEC_SFILE 5
|
||||
#define SPEC_SFILE (SPEC_CFILE + 1)
|
||||
"<slnum>", /* ":so" file line number */
|
||||
#define SPEC_SLNUM 6
|
||||
#define SPEC_SLNUM (SPEC_SFILE + 1)
|
||||
"<afile>", /* autocommand file name */
|
||||
# define SPEC_AFILE 7
|
||||
#define SPEC_AFILE (SPEC_SLNUM + 1)
|
||||
"<abuf>", /* autocommand buffer number */
|
||||
# define SPEC_ABUF 8
|
||||
#define SPEC_ABUF (SPEC_AFILE + 1)
|
||||
"<amatch>", /* autocommand match name */
|
||||
# define SPEC_AMATCH 9
|
||||
#define SPEC_AMATCH (SPEC_ABUF + 1)
|
||||
};
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE(spec_str); ++i) {
|
||||
@@ -8489,10 +8491,16 @@ eval_vars (
|
||||
/*
|
||||
* word or WORD under cursor
|
||||
*/
|
||||
if (spec_idx == SPEC_CWORD || spec_idx == SPEC_CCWORD) {
|
||||
resultlen = find_ident_under_cursor(&result, (spec_idx == SPEC_CWORD
|
||||
? (FIND_IDENT|FIND_STRING)
|
||||
: FIND_STRING));
|
||||
if (spec_idx == SPEC_CWORD
|
||||
|| spec_idx == SPEC_CCWORD
|
||||
|| spec_idx == SPEC_CEXPR) {
|
||||
resultlen = find_ident_under_cursor(
|
||||
&result,
|
||||
spec_idx == SPEC_CWORD
|
||||
? (FIND_IDENT | FIND_STRING)
|
||||
: (spec_idx == SPEC_CEXPR
|
||||
? (FIND_IDENT | FIND_STRING | FIND_EVAL)
|
||||
: FIND_STRING));
|
||||
if (resultlen == 0) {
|
||||
*errormsg = (char_u *)"";
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user