diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/ex_docmd.c | 8 | ||||
| -rw-r--r-- | src/nvim/testdir/runtest.vim | 6 | ||||
| -rw-r--r-- | src/nvim/testdir/test_window_cmd.vim | 19 | 
3 files changed, 27 insertions, 6 deletions
| diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 18043bf710..247f4c09ef 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -8432,13 +8432,15 @@ static void ex_pedit(exarg_T *eap)  {    win_T       *curwin_save = curwin; +  // Open the preview window or popup and make it the current window.    g_do_tagpreview = p_pvh;    prepare_tagpreview(true); -  keep_help_flag = bt_help(curwin_save->w_buffer); + +  // Edit the file.    do_exedit(eap, NULL); -  keep_help_flag = FALSE; +    if (curwin != curwin_save && win_valid(curwin_save)) { -    /* Return cursor to where we were */ +    // Return cursor to where we were      validate_cursor();      redraw_later(VALID);      win_enter(curwin_save, true); diff --git a/src/nvim/testdir/runtest.vim b/src/nvim/testdir/runtest.vim index 4eddad8ad5..152fb93ca6 100644 --- a/src/nvim/testdir/runtest.vim +++ b/src/nvim/testdir/runtest.vim @@ -31,12 +31,14 @@  " Check that the screen size is at least 24 x 80 characters.  if &lines < 24 || &columns < 80  -  let error = 'Screen size too small! Tests require at least 24 lines with 80 characters' +  let error = 'Screen size too small! Tests require at least 24 lines with 80 characters, got ' .. &lines .. ' lines with ' .. &columns .. ' characters'    echoerr error    split test.log    $put =error    write    split messages +  call append(line('$'), '') +  call append(line('$'), 'From ' . expand('%') . ':')    call append(line('$'), error)    write    qa! @@ -161,7 +163,7 @@ func RunTheTest(test)      endtry    endif -  " Clear any autocommands +  " Clear any autocommands and put back the catch-all for SwapExists.    au!    au SwapExists * call HandleSwapExists() diff --git a/src/nvim/testdir/test_window_cmd.vim b/src/nvim/testdir/test_window_cmd.vim index 2a07a04401..c87c0a0af4 100644 --- a/src/nvim/testdir/test_window_cmd.vim +++ b/src/nvim/testdir/test_window_cmd.vim @@ -42,6 +42,8 @@ function Test_window_cmd_wincmd_gf()    function s:swap_exists()      let v:swapchoice = s:swap_choice    endfunc +  " Remove the catch-all that runtest.vim adds +  au! SwapExists    augroup test_window_cmd_wincmd_gf      autocmd!      exec "autocmd SwapExists " . fname . " call s:swap_exists()" @@ -144,6 +146,21 @@ func Test_window_preview()    call assert_fails('wincmd P', 'E441:')  endfunc +func Test_window_preview_from_help() +  filetype on +  call writefile(['/* some C code */'], 'Xpreview.c') +  help +  pedit Xpreview.c +  wincmd P +  call assert_equal(1, &previewwindow) +  call assert_equal('c', &filetype) +  wincmd z + +  filetype off +  close +  call delete('Xpreview.c') +endfunc +  func Test_window_exchange()    e Xa @@ -519,6 +536,7 @@ func Test_winrestcmd()  endfunc  function! Fun_RenewFile() +  " Need to wait a bit for the timestamp to be older.    sleep 2    silent execute '!echo "1" > tmp.txt'    sp @@ -536,7 +554,6 @@ func Test_window_prevwin()    call writefile(['2'], 'tmp.txt')    new tmp.txt    q -  " Need to wait a bit for the timestamp to be older.    call Fun_RenewFile()    call assert_equal(2, winnr())    wincmd p | 
