mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 04:17:01 +00:00 
			
		
		
		
	fix(api): nvim_exec and nvim_cmd restore msg_col when capturing output (#19789)
This matches the code in execute_common(), preventing messages after the API call from being printed at the wrong column.
This commit is contained in:
		| @@ -281,8 +281,8 @@ describe('API', function() | ||||
|       ]]} | ||||
|     end) | ||||
|  | ||||
|     it('does\'t display messages when output=true', function() | ||||
|       local screen = Screen.new(40, 8) | ||||
|     it('doesn\'t display messages when output=true', function() | ||||
|       local screen = Screen.new(40, 6) | ||||
|       screen:attach() | ||||
|       screen:set_default_attr_ids({ | ||||
|         [0] = {bold=true, foreground=Screen.colors.Blue}, | ||||
| @@ -293,11 +293,23 @@ describe('API', function() | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|                                                 | | ||||
|       ]]} | ||||
|       exec([[ | ||||
|         func Print() | ||||
|           call nvim_exec('echo "hello"', v:true) | ||||
|         endfunc | ||||
|       ]]) | ||||
|       feed([[:echon 1 | call Print() | echon 5<CR>]]) | ||||
|       screen:expect{grid=[[ | ||||
|         ^                                        | | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         15                                      | | ||||
|       ]]} | ||||
|     end) | ||||
|   end) | ||||
|  | ||||
| @@ -3836,5 +3848,35 @@ describe('API', function() | ||||
|       meths.cmd({ cmd = 'make', args = { 'foo', 'bar' } }, {}) | ||||
|       assert_alive() | ||||
|     end) | ||||
|     it('doesn\'t display messages when output=true', function() | ||||
|       local screen = Screen.new(40, 6) | ||||
|       screen:attach() | ||||
|       screen:set_default_attr_ids({ | ||||
|         [0] = {bold=true, foreground=Screen.colors.Blue}, | ||||
|       }) | ||||
|       meths.cmd({cmd = 'echo', args = {[['hello']]}}, {output = true}) | ||||
|       screen:expect{grid=[[ | ||||
|         ^                                        | | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|                                                 | | ||||
|       ]]} | ||||
|       exec([[ | ||||
|         func Print() | ||||
|           call nvim_cmd(#{cmd: 'echo', args: ['"hello"']}, #{output: v:true}) | ||||
|         endfunc | ||||
|       ]]) | ||||
|       feed([[:echon 1 | call Print() | echon 5<CR>]]) | ||||
|       screen:expect{grid=[[ | ||||
|         ^                                        | | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         {0:~                                       }| | ||||
|         15                                      | | ||||
|       ]]} | ||||
|     end) | ||||
|   end) | ||||
| end) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq