diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2021-12-26 21:54:43 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-12-26 21:54:43 +0000 |
commit | 27708e6c7b6f444fd599f3dc5015336b002b874d (patch) | |
tree | ca58fb2aa05c18a8149600a23c08603a19e02caa /src/testdir/test_fold.vim | |
parent | c553a21e189aa440515a19c5b25f8b6b50c5d53d (diff) |
patch 8.2.3908: cannot use a script-local function for 'foldtext'v8.2.3908
Problem: Cannot use a script-local function for 'foldtext'.
Solution: Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411)
Diffstat (limited to 'src/testdir/test_fold.vim')
-rw-r--r-- | src/testdir/test_fold.vim | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim index d35b7c807b..e3b6b6e58b 100644 --- a/src/testdir/test_fold.vim +++ b/src/testdir/test_fold.vim @@ -1408,4 +1408,35 @@ func Test_foldexpr_scriptlocal_func() bw! endfunc +" Test for using a script-local function for 'foldtext' +func Test_foldtext_scriptlocal_func() + func! s:FoldText() + let g:FoldTextArgs = [v:foldstart, v:foldend] + return foldtext() + endfunc + new | only + call setline(1, range(50)) + let g:FoldTextArgs = [] + set foldmethod=manual + set foldtext=s:FoldText() + norm! 4Gzf4j + redraw! + call assert_equal(expand('<SID>') .. 'FoldText()', &foldtext) + call assert_equal([4, 8], g:FoldTextArgs) + set foldtext& + bw! + new | only + call setline(1, range(50)) + let g:FoldTextArgs = [] + set foldmethod=manual + set foldtext=<SID>FoldText() + norm! 8Gzf4j + redraw! + call assert_equal(expand('<SID>') .. 'FoldText()', &foldtext) + call assert_equal([8, 12], g:FoldTextArgs) + set foldtext& + bw! + delfunc s:FoldText +endfunc + " vim: shiftwidth=2 sts=2 expandtab |