Mercurial > vim
view src/testdir/test_filter_cmd.vim @ 15380:f62d6bd18a49 v8.1.0698
patch 8.1.0698: clearing the window is used too often
commit https://github.com/vim/vim/commit/bf3250a8ad39797e3ccdac82d20c6f19533419e4
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 6 17:25:29 2019 +0100
patch 8.1.0698: clearing the window is used too often
Problem: Clearing the window is used too often, causing the command line
to be cleared when opening a tab. (Miroslav Ko?k?r)
Solution: Use NOT_VALID instead of CLEAR. (suggested by Jason Franklin,
closes #630) Also do this for a few other places where clearing
the screen isn't really needed.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 06 Jan 2019 17:30:05 +0100 |
parents | 5b06b642fbee |
children | 9c206a78ec04 |
line wrap: on
line source
" Test the :filter command modifier func Test_filter() edit Xdoesnotmatch edit Xwillmatch call assert_equal('"Xwillmatch"', substitute(execute('filter willma ls'), '[^"]*\(".*"\)[^"]*', '\1', '')) bwipe Xdoesnotmatch bwipe Xwillmatch new call setline(1, ['foo1', 'foo2', 'foo3', 'foo4', 'foo5']) call assert_equal("\nfoo2\nfoo4", execute('filter /foo[24]/ 1,$print')) call assert_equal("\n 2 foo2\n 4 foo4", execute('filter /foo[24]/ 1,$number')) call assert_equal("\nfoo2$\nfoo4$", execute('filter /foo[24]/ 1,$list')) call assert_equal("\nfoo1$\nfoo3$\nfoo5$", execute('filter! /foo[24]/ 1,$list')) bwipe! command XTryThis echo 'this' command XTryThat echo 'that' command XDoThat echo 'that' let lines = split(execute('filter XTry command'), "\n") call assert_equal(3, len(lines)) call assert_match("XTryThat", lines[1]) call assert_match("XTryThis", lines[2]) delcommand XTryThis delcommand XTryThat delcommand XDoThat map f1 the first key map f2 the second key map f3 not a key let lines = split(execute('filter the map f'), "\n") call assert_equal(2, len(lines)) call assert_match("f2", lines[0]) call assert_match("f1", lines[1]) unmap f1 unmap f2 unmap f3 endfunc func Test_filter_fails() call assert_fails('filter', 'E471:') call assert_fails('filter pat', 'E476:') call assert_fails('filter /pat', 'E476:') call assert_fails('filter /pat/', 'E476:') call assert_fails('filter /pat/ asdf', 'E492:') call assert_fails('filter!', 'E471:') call assert_fails('filter! pat', 'E476:') call assert_fails('filter! /pat', 'E476:') call assert_fails('filter! /pat/', 'E476:') call assert_fails('filter! /pat/ asdf', 'E492:') endfunc function s:complete_filter_cmd(filtcmd) let keystroke = "\<TAB>\<C-R>=execute('let cmdline = getcmdline()')\<CR>\<C-C>" let cmdline = '' call feedkeys(':' . a:filtcmd . keystroke, 'ntx') return cmdline endfunction func Test_filter_cmd_completion() " Do not complete pattern call assert_equal("filter \t", s:complete_filter_cmd('filter ')) call assert_equal("filter pat\t", s:complete_filter_cmd('filter pat')) call assert_equal("filter /pat\t", s:complete_filter_cmd('filter /pat')) call assert_equal("filter /pat/\t", s:complete_filter_cmd('filter /pat/')) " Complete after string pattern call assert_equal('filter pat print', s:complete_filter_cmd('filter pat pri')) " Complete after regexp pattern call assert_equal('filter /pat/ print', s:complete_filter_cmd('filter /pat/ pri')) call assert_equal('filter #pat# print', s:complete_filter_cmd('filter #pat# pri')) endfunc func Test_filter_cmd_with_filter() new set shelltemp %!echo "a|b" let out = getline(1) bw! if has('win32') let out = trim(out, '" ') endif call assert_equal('a|b', out) set shelltemp& endfunction func Test_filter_commands() let g:test_filter_a = 1 let b:test_filter_b = 2 let test_filter_c = 3 " Test filtering :let command let res = split(execute("filter /^test_filter/ let"), "\n") call assert_equal(["test_filter_a #1"], res) let res = split(execute("filter /\\v^(b:)?test_filter/ let"), "\n") call assert_equal(["test_filter_a #1", "b:test_filter_b #2"], res) unlet g:test_filter_a unlet b:test_filter_b unlet test_filter_c " Test filtering :set command let helplang=&helplang set helplang=en let res = join(split(execute("filter /^help/ set"), "\n")[1:], " ") call assert_match('^\s*helplang=\w*$', res) let &helplang=helplang " Test filtering :llist command call setloclist(0, [{"filename": "/path/vim.c"}, {"filename": "/path/vim.h"}, {"module": "Main.Test"}]) let res = split(execute("filter /\\.c$/ llist"), "\n") call assert_equal([" 1 /path/vim.c: "], res) let res = split(execute("filter /\\.Test$/ llist"), "\n") call assert_equal([" 3 Main.Test: "], res) " Test filtering :jump command e file.c e file.h e file.hs let res = split(execute("filter /\.c$/ jumps"), "\n")[1:] call assert_equal([" 2 1 0 file.c", ">"], res) bwipe file.c bwipe file.h bwipe file.hs endfunc