mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
-- Test for visual mode not being reset causing E315 error.
 | 
						|
 | 
						|
local n = require('test.functional.testnvim')()
 | 
						|
 | 
						|
local feed, source = n.feed, n.source
 | 
						|
local clear, expect = n.clear, n.expect
 | 
						|
 | 
						|
describe('E315 error', function()
 | 
						|
  setup(clear)
 | 
						|
 | 
						|
  it('is working', function()
 | 
						|
    -- At this point there is no visual selection because :call reset it.
 | 
						|
    -- Let's restore the selection:
 | 
						|
    source([[
 | 
						|
      let g:msg="Everything's fine."
 | 
						|
      function! TriggerTheProblem()
 | 
						|
          normal gv
 | 
						|
          '<,'>del _
 | 
						|
          try
 | 
						|
              exe "normal \<Esc>"
 | 
						|
          catch /^Vim\%((\a\+)\)\=:E315/
 | 
						|
              echom 'Snap! E315 error!'
 | 
						|
              let g:msg='Snap! E315 error!'
 | 
						|
          endtry
 | 
						|
      endfunction
 | 
						|
      enew
 | 
						|
      enew
 | 
						|
      setl buftype=nofile
 | 
						|
      call append(line('$'), 'Delete this line.')
 | 
						|
    ]])
 | 
						|
 | 
						|
    -- NOTE: this has to be done by a call to a function because executing
 | 
						|
    -- :del the ex-way will require the colon operator which resets the
 | 
						|
    -- visual mode thus preventing the problem:
 | 
						|
    feed('GV:call TriggerTheProblem()<cr>')
 | 
						|
 | 
						|
    source([[
 | 
						|
      %del _
 | 
						|
      call append(line('$'), g:msg)
 | 
						|
      brewind
 | 
						|
    ]])
 | 
						|
 | 
						|
    -- Assert buffer contents.
 | 
						|
    expect([[
 | 
						|
 | 
						|
      Everything's fine.]])
 | 
						|
  end)
 | 
						|
end)
 |