Mercurial > vim
diff runtime/doc/vim9.txt @ 19481:c27837cbe922 v8.2.0298
patch 8.2.0298: Vim9 script: cannot start command with a string constant
Commit: https://github.com/vim/vim/commit/0c6ceaf90389b41545d803458c4813013811c756
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Feb 22 18:36:32 2020 +0100
patch 8.2.0298: Vim9 script: cannot start command with a string constant
Problem: Vim9 script: cannot start command with a string constant.
Solution: Recognize expression starting with '('.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 22 Feb 2020 18:45:04 +0100 |
parents | b09afbebffee |
children | a7a24d06d7ce |
line wrap: on
line diff
--- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -131,21 +131,23 @@ Functions can be called without `:call`: Using `:call` is still possible, but this is discouraged. A method call without `eval` is possible, so long as the start is an -identifier or can't be an Ex command. It does not work for string constants: > +identifier or can't be an Ex command. It does NOT work for string constants: > myList->add(123) " works g:myList->add(123) " works [1, 2, 3]->Process() " works #{a: 1, b: 2}->Process() " works {'a': 1, 'b': 2}->Process() " works "foobar"->Process() " does NOT work - eval "foobar"->Process() " works + ("foobar")->Process() " works + 'foobar'->Process() " does NOT work + ('foobar')->Process() " works In case there is ambiguity between a function name and an Ex command, use ":" to make clear you want to use the Ex command. For example, there is both the `:substitute` command and the `substitute()` function. When the line starts with `substitute(` this will use the function, prepend a colon to use the command instead: > - :substitute(pattern(replacement( + :substitute(pattern (replacement ( No curly braces expansion ~