From 87b4e5c5db9d1cfd6f2e79656e1a6cff3c69d15f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 1 Oct 2022 15:32:46 +0100 Subject: patch 9.0.0632: calling a function from an "expr" option has overhead Problem: Calling a function from an "expr" option has too much overhead. Solution: Add call_simple_func() and use it for 'foldexpr' --- runtime/doc/vim9.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'runtime/doc/vim9.txt') diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index b73011a092..15e9a702bc 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1410,6 +1410,21 @@ to a Vim9 function: 'three' ] + +Calling a function in an expr option ~ + *expr-option-function* +A few options, such as 'foldexpr', are an expresison that is evaluated to get +a value. The evaluation can have quite a bit of overhead. One way to +minimize the overhead, and also to keep the option value very simple, is to +defined a compiled function and set the option to call it without arguments. +Example: > + vim9script + def MyFoldFunc(): any + ... compute fold level for line v:lnum + return level + enddef + set foldexpr=s:MyFoldFunc() + ============================================================================== 4. Types *vim9-types* -- cgit v1.2.3