File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3871,7 +3871,6 @@ set_one_cmd_context(
38713871 case CMD_cfdo :
38723872 case CMD_confirm :
38733873 case CMD_debug :
3874- case CMD_filter :
38753874 case CMD_folddoclosed :
38763875 case CMD_folddoopen :
38773876 case CMD_hide :
@@ -3896,6 +3895,16 @@ set_one_cmd_context(
38963895 case CMD_windo :
38973896 return arg ;
38983897
3898+ case CMD_filter :
3899+ if (* arg != NUL )
3900+ arg = skip_vimgrep_pat (arg , NULL , NULL );
3901+ if (arg == NULL || * arg == NUL )
3902+ {
3903+ xp -> xp_context = EXPAND_NOTHING ;
3904+ return NULL ;
3905+ }
3906+ return skipwhite (arg );
3907+
38993908#ifdef FEAT_CMDL_COMPL
39003909# ifdef FEAT_SEARCH_EXTRA
39013910 case CMD_match :
Original file line number Diff line number Diff line change @@ -52,3 +52,25 @@ func Test_filter_fails()
5252 call assert_fails (' filter! /pat/' , ' E476:' )
5353 call assert_fails (' filter! /pat/ asdf' , ' E492:' )
5454endfunc
55+
56+ function s: complete_filter_cmd (filtcmd)
57+ let keystroke = " \<TAB>\<C-R> =execute('let cmdline = getcmdline()')\<CR>\<C-C> "
58+ let cmdline = ' '
59+ call feedkeys (' :' . a: filtcmd . keystroke, ' ntx' )
60+ return cmdline
61+ endfunction
62+
63+ func Test_filter_cmd_completion ()
64+ " Do not complete pattern
65+ call assert_equal (" filter \t " , s: complete_filter_cmd (' filter ' ))
66+ call assert_equal (" filter pat\t " , s: complete_filter_cmd (' filter pat' ))
67+ call assert_equal (" filter /pat\t " , s: complete_filter_cmd (' filter /pat' ))
68+ call assert_equal (" filter /pat/\t " , s: complete_filter_cmd (' filter /pat/' ))
69+
70+ " Complete after string pattern
71+ call assert_equal (' filter pat print' , s: complete_filter_cmd (' filter pat pri' ))
72+
73+ " Complete after regexp pattern
74+ call assert_equal (' filter /pat/ print' , s: complete_filter_cmd (' filter /pat/ pri' ))
75+ call assert_equal (' filter #pat# print' , s: complete_filter_cmd (' filter #pat# pri' ))
76+ endfunc
Original file line number Diff line number Diff line change @@ -764,6 +764,8 @@ static char *(features[]) =
764764
765765static int included_patches [] =
766766{ /* Add new patch number below this line */
767+ /**/
768+ 150 ,
767769/**/
768770 149 ,
769771/**/
You can’t perform that action at this time.
0 commit comments