Mercurial > vim
view src/testdir/test_pyx3.vim @ 30594:586b5b3aacf9 v9.0.0632
patch 9.0.0632: calling a function from an "expr" option has overhead
Commit: https://github.com/vim/vim/commit/87b4e5c5db9d1cfd6f2e79656e1a6cff3c69d15f
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Oct 1 15:32:46 2022 +0100
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'
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 01 Oct 2022 16:45:04 +0200 |
parents | 5f9c2c7d3d73 |
children |
line wrap: on
line source
" Test for pyx* commands and functions with Python 3. set pyx=3 source check.vim CheckFeature python3 let s:py2pattern = '^2\.[0-7]\.\d\+' let s:py3pattern = '^3\.\d\+\.\d\+' func Test_has_pythonx() call assert_true(has('pythonx')) endfunc func Test_pyx() redir => var pyx << trim EOF import sys print(sys.version) EOF redir END call assert_match(s:py3pattern, split(var)[0]) endfunc func Test_pyxdo() pyx import sys enew pyxdo return sys.version.split("\n")[0] call assert_match(s:py3pattern, split(getline('.'))[0]) endfunc func Test_pyxeval() pyx import sys call assert_match(s:py3pattern, split(pyxeval('sys.version'))[0]) endfunc func Test_pyxfile() " No special comments nor shebangs redir => var pyxfile pyxfile/pyx.py redir END call assert_match(s:py3pattern, split(var)[0]) " Python 3 special comment redir => var pyxfile pyxfile/py3_magic.py redir END call assert_match(s:py3pattern, split(var)[0]) " Python 3 shebang redir => var pyxfile pyxfile/py3_shebang.py redir END call assert_match(s:py3pattern, split(var)[0]) if has('python') " Python 2 special comment redir => var pyxfile pyxfile/py2_magic.py redir END call assert_match(s:py2pattern, split(var)[0]) " Python 2 shebang redir => var pyxfile pyxfile/py2_shebang.py redir END call assert_match(s:py2pattern, split(var)[0]) endif endfunc func Test_Catch_Exception_Message() try pyx raise RuntimeError( 'TEST' ) catch /.*/ call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception ) endtry endfunc " Test for various heredoc syntaxes func Test_pyx3_heredoc() pyx << END result='A' END pyx << result+='B' . pyx << trim END result+='C' END pyx << trim result+='D' . pyx << trim eof result+='E' eof call assert_equal('ABCDE', pyxeval('result')) endfunc " vim: shiftwidth=2 sts=2 expandtab