mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Merge pull request #13425 from bfredl/secretcharm
ex_getln: add secret charm
This commit is contained in:
		| @@ -215,6 +215,9 @@ CTRL-Y		When there is a modeless selection, copy the selection into | ||||
| 		the clipboard. | ||||
| 		If there is no selection CTRL-Y is inserted as a character. | ||||
|  | ||||
| 							*c_CTRL-Z* | ||||
| CTRL-Z		Trigger 'wildmode'. Same as 'wildcharm', but always available. | ||||
|  | ||||
| CTRL-M or CTRL-J		*c_CTRL-M* *c_CTRL-J* *c_<NL>* *c_<CR>* *c_CR* | ||||
| <CR> or <NL>	start entered command | ||||
|  | ||||
|   | ||||
| @@ -1024,7 +1024,7 @@ static int command_line_execute(VimState *state, int key) | ||||
|   } | ||||
|  | ||||
|   // free expanded names when finished walking through matches | ||||
|   if (!(s->c == p_wc && KeyTyped) && s->c != p_wcm | ||||
|   if (!(s->c == p_wc && KeyTyped) && s->c != p_wcm && s->c != Ctrl_Z | ||||
|       && s->c != Ctrl_N && s->c != Ctrl_P && s->c != Ctrl_A | ||||
|       && s->c != Ctrl_L) { | ||||
|     if (compl_match_array) { | ||||
| @@ -1328,7 +1328,8 @@ static int command_line_execute(VimState *state, int key) | ||||
|   // - hitting <ESC> twice means: abandon command line. | ||||
|   // - wildcard expansion is only done when the 'wildchar' key is really | ||||
|   //   typed, not when it comes from a macro | ||||
|   if ((s->c == p_wc && !s->gotesc && KeyTyped) || s->c == p_wcm) { | ||||
|   if ((s->c == p_wc && !s->gotesc && KeyTyped) || s->c == p_wcm | ||||
|       || s->c == Ctrl_Z) { | ||||
|     int options = WILD_NO_BEEP; | ||||
|     if (wim_flags[s->wim_index] & WIM_BUFLASTUSED) { | ||||
|       options |= WILD_BUFLASTUSED; | ||||
|   | ||||
| @@ -442,6 +442,7 @@ function module.new_argv(...) | ||||
|         'NVIM_LOG_FILE', | ||||
|         'NVIM_RPLUGIN_MANIFEST', | ||||
|         'GCOV_ERROR_FILE', | ||||
|         'XDG_DATA_DIRS', | ||||
|         'TMPDIR', | ||||
|       }) do | ||||
|         if not env_tbl[k] then | ||||
|   | ||||
| @@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen') | ||||
| local clear, feed, command = helpers.clear, helpers.feed, helpers.command | ||||
| local iswin = helpers.iswin | ||||
| local funcs = helpers.funcs | ||||
| local meths = helpers.meths | ||||
| local eq = helpers.eq | ||||
| local eval = helpers.eval | ||||
| local retry = helpers.retry | ||||
| @@ -396,6 +397,64 @@ describe("'wildmenu'", function() | ||||
|                                | | ||||
|     ]]) | ||||
|   end) | ||||
|  | ||||
|   it('works with c_CTRL_Z standard mapping', function() | ||||
|     screen:set_default_attr_ids { | ||||
|       [1] = {bold = true, foreground = Screen.colors.Blue1}; | ||||
|       [2] = {foreground = Screen.colors.Grey0, background = Screen.colors.Yellow}; | ||||
|       [3] = {bold = true, reverse = true}; | ||||
|     } | ||||
|  | ||||
|     -- Wildcharm? where we are going we aint't no need no wildcharm. | ||||
|     eq(0, meths.get_option'wildcharm') | ||||
|     -- Don't mess the defaults yet (neovim is about backwards compatibility) | ||||
|     eq(9, meths.get_option'wildchar') | ||||
|     -- Lol what is cnoremap? Some say it can define mappings. | ||||
|     command 'set wildchar=0' | ||||
|     eq(0, meths.get_option'wildchar') | ||||
|  | ||||
|     command 'cnoremap <f2> <c-z>' | ||||
|     feed(':syntax <f2>') | ||||
|     screen:expect{grid=[[ | ||||
|                                | | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       {2:case}{3:  clear  cluster  >  }| | ||||
|       :syntax case^             | | ||||
|     ]]} | ||||
|     feed '<esc>' | ||||
|  | ||||
|     command 'set wildmode=longest:full,full' | ||||
|     -- this will get cleaner once we have native lua expr mappings: | ||||
|     command [[cnoremap <expr> <tab> luaeval("not rawset(_G, 'coin', not coin).coin") ? "<c-z>" : "c"]] | ||||
|  | ||||
|     feed ':syntax <tab>' | ||||
|     screen:expect{grid=[[ | ||||
|                                | | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       :syntax c^                | | ||||
|     ]]} | ||||
|  | ||||
|     feed '<tab>' | ||||
|     screen:expect{grid=[[ | ||||
|                                | | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       {3:case  clear  cluster  >  }| | ||||
|       :syntax c^                | | ||||
|     ]]} | ||||
|  | ||||
|     feed '<tab>' | ||||
|     screen:expect{grid=[[ | ||||
|                                | | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       {1:~                        }| | ||||
|       :syntax cc^               | | ||||
|     ]]} | ||||
|   end) | ||||
| end) | ||||
|  | ||||
| describe('command line completion', function() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Björn Linse
					Björn Linse