mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	@@ -251,11 +251,14 @@ newwindow:
 | 
			
		||||
      if (win_new_tabpage((int)Prenum, NULL) == OK
 | 
			
		||||
          && valid_tabpage(oldtab)) {
 | 
			
		||||
        newtab = curtab;
 | 
			
		||||
        goto_tabpage_tp(oldtab, TRUE, TRUE);
 | 
			
		||||
        if (curwin == wp)
 | 
			
		||||
          win_close(curwin, FALSE);
 | 
			
		||||
        if (valid_tabpage(newtab))
 | 
			
		||||
          goto_tabpage_tp(newtab, TRUE, TRUE);
 | 
			
		||||
        goto_tabpage_tp(oldtab, true, true);
 | 
			
		||||
        if (curwin == wp) {
 | 
			
		||||
          win_close(curwin, false);
 | 
			
		||||
        }
 | 
			
		||||
        if (valid_tabpage(newtab)) {
 | 
			
		||||
          goto_tabpage_tp(newtab, true, true);
 | 
			
		||||
          apply_autocmds(EVENT_TABNEWENTERED, NULL, NULL, false, curbuf);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    break;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,21 +2,30 @@ local helpers = require('test.functional.helpers')(after_each)
 | 
			
		||||
local clear, nvim, eq = helpers.clear, helpers.nvim, helpers.eq
 | 
			
		||||
 | 
			
		||||
describe('TabNewEntered', function()
 | 
			
		||||
    describe('au TabNewEntered', function()
 | 
			
		||||
        describe('with * as <afile>', function()
 | 
			
		||||
            it('matches when entering any new tab', function()
 | 
			
		||||
                clear()
 | 
			
		||||
                nvim('command', 'au! TabNewEntered * echom "tabnewentered:".tabpagenr().":".bufnr("")')
 | 
			
		||||
                eq("\ntabnewentered:2:2", nvim('command_output', 'tabnew'))
 | 
			
		||||
                eq("\n\"test.x2\" [New File]\ntabnewentered:3:3", nvim('command_output', 'tabnew test.x2'))
 | 
			
		||||
           end)
 | 
			
		||||
        end)
 | 
			
		||||
        describe('with FILE as <afile>', function()
 | 
			
		||||
            it('matches when opening a new tab for FILE', function()
 | 
			
		||||
                local tmp_path = nvim('eval', 'tempname()')
 | 
			
		||||
                nvim('command', 'au! TabNewEntered '..tmp_path..' echom "tabnewentered:match"')
 | 
			
		||||
                eq("\n\""..tmp_path.."\" [New File]\ntabnewentered:4:4\ntabnewentered:match", nvim('command_output', 'tabnew '..tmp_path))
 | 
			
		||||
           end)
 | 
			
		||||
        end)
 | 
			
		||||
  describe('au TabNewEntered', function()
 | 
			
		||||
    describe('with * as <afile>', function()
 | 
			
		||||
      it('matches when entering any new tab', function()
 | 
			
		||||
        clear()
 | 
			
		||||
        nvim('command', 'au! TabNewEntered * echom "tabnewentered:".tabpagenr().":".bufnr("")')
 | 
			
		||||
        eq("\ntabnewentered:2:2", nvim('command_output', 'tabnew'))
 | 
			
		||||
        eq("\n\"test.x2\" [New File]\ntabnewentered:3:3", nvim('command_output', 'tabnew test.x2'))
 | 
			
		||||
     end)
 | 
			
		||||
    end)
 | 
			
		||||
    describe('with FILE as <afile>', function()
 | 
			
		||||
      it('matches when opening a new tab for FILE', function()
 | 
			
		||||
        local tmp_path = nvim('eval', 'tempname()')
 | 
			
		||||
        nvim('command', 'au! TabNewEntered '..tmp_path..' echom "tabnewentered:match"')
 | 
			
		||||
        eq("\n\""..tmp_path.."\" [New File]\ntabnewentered:4:4\ntabnewentered:match", nvim('command_output', 'tabnew '..tmp_path))
 | 
			
		||||
     end)
 | 
			
		||||
    end)
 | 
			
		||||
    describe('with CTRL-W T', function()
 | 
			
		||||
      it('works when opening a new tab with CTRL-W T', function()
 | 
			
		||||
        clear()
 | 
			
		||||
        nvim('command', 'au! TabNewEntered * echom "entered"')
 | 
			
		||||
        nvim('command', 'tabnew test.x2')
 | 
			
		||||
        nvim('command', 'split')
 | 
			
		||||
        eq('\nentered', nvim('command_output', 'execute "normal \\<C-W>T"'))
 | 
			
		||||
      end)
 | 
			
		||||
    end)
 | 
			
		||||
  end)
 | 
			
		||||
end)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user