Mercurial > vim
view src/testdir/test_expand_func.vim @ 28817:1ad71fcbf546 v8.2.4932
patch 8.2.4932: not easy to filter the output of maplist()
Commit: https://github.com/vim/vim/commit/d8f5f766219273a8579947cc80b92580b6988a4b
Author: Ernie Rael <errael@raelity.com>
Date: Tue May 10 17:50:39 2022 +0100
patch 8.2.4932: not easy to filter the output of maplist()
Problem: Not easy to filter the output of maplist().
Solution: Add mode_bits to the dictionary. (Ernie Rael, closes https://github.com/vim/vim/issues/10356)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 10 May 2022 19:00:04 +0200 |
parents | 5cf6dee0f305 |
children | 32f358d71ec2 |
line wrap: on
line source
" Tests for expand() source shared.vim let s:sfile = expand('<sfile>') let s:slnum = str2nr(expand('<slnum>')) let s:sflnum = str2nr(expand('<sflnum>')) func s:expand_sfile() return expand('<sfile>') endfunc func s:expand_slnum() return str2nr(expand('<slnum>')) endfunc func s:expand_sflnum() return str2nr(expand('<sflnum>')) endfunc " This test depends on the location in the test file, put it first. func Test_expand_sflnum() call assert_equal(7, s:sflnum) call assert_equal(24, str2nr(expand('<sflnum>'))) " Line-continuation call assert_equal( \ 27, \ str2nr(expand('<sflnum>'))) " Call in script-local function call assert_equal(18, s:expand_sflnum()) " Call in command command Flnum echo expand('<sflnum>') call assert_equal(36, str2nr(trim(execute('Flnum')))) delcommand Flnum endfunc func Test_expand_sfile_and_stack() call assert_match('test_expand_func\.vim$', s:sfile) let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack' call assert_match(expected .. '$', expand('<sfile>')) call assert_match(expected .. '\[4\]' , expand('<stack>')) " Call in script-local function call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack\[7\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile()) " Call in command command Sfile echo expand('<sfile>') call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$', trim(execute('Sfile'))) delcommand Sfile " Use <stack> from sourced script. let lines =<< trim END " comment here let g:stack_value = expand('<stack>') END call writefile(lines, 'Xstack') source Xstack call assert_match('\<Xstack\[2\]$', g:stack_value) call delete('Xstack') endfunc func Test_expand_slnum() call assert_equal(6, s:slnum) call assert_equal(2, str2nr(expand('<slnum>'))) " Line-continuation call assert_equal( \ 5, \ str2nr(expand('<slnum>'))) " Call in script-local function call assert_equal(1, s:expand_slnum()) " Call in command command Slnum echo expand('<slnum>') call assert_equal(14, str2nr(trim(execute('Slnum')))) delcommand Slnum endfunc func Test_expand() new call assert_equal("", expand('%:S')) call assert_equal('3', '<slnum>'->expand()) call assert_equal(['4'], expand('<slnum>', v:false, v:true)) " Don't add any line above this, otherwise <slnum> will change. call assert_equal("", expand('%')) set verbose=1 call assert_equal("", expand('%')) set verbose=0 call assert_equal("", expand('%:p')) quit endfunc func s:sid_test() return 'works' endfunc func Test_expand_SID() let sid = expand('<SID>') execute 'let g:sid_result = ' .. sid .. 'sid_test()' call assert_equal('works', g:sid_result) endfunc " Test for 'wildignore' with expand() func Test_expand_wildignore() set wildignore=*.vim call assert_equal('', expand('test_expand_func.vim')) call assert_equal('', expand('test_expand_func.vim', 0)) call assert_equal([], expand('test_expand_func.vim', 0, 1)) call assert_equal('test_expand_func.vim', expand('test_expand_func.vim', 1)) call assert_equal(['test_expand_func.vim'], \ expand('test_expand_func.vim', 1, 1)) call assert_fails("call expand('*', [])", 'E745:') set wildignore& endfunc " vim: shiftwidth=2 sts=2 expandtab