patch 8.1.1717: last char in menu popup window highlighted
Problem: Last char in menu popup window highlighted.
Solution: Do not highlight an extra character twice.
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 0ec901c..11e4323 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1215,6 +1215,29 @@
call delete('XtestPopupMenu')
endfunc
+func Test_popup_menu_narrow()
+ if !CanRunVimInTerminal()
+ throw 'Skipped: cannot make screendumps'
+ endif
+
+ let lines =<< trim END
+ call setline(1, range(1, 20))
+ hi PopupSelected ctermbg=green
+ call popup_menu(['one', 'two', 'three'], #{callback: 'MenuDone'})
+ func MenuDone(id, res)
+ echomsg "selected " .. a:res
+ endfunc
+ END
+ call writefile(lines, 'XtestPopupNarrowMenu')
+ let buf = RunVimInTerminal('-S XtestPopupNarrowMenu', #{rows: 10})
+ call VerifyScreenDump(buf, 'Test_popupwin_menu_04', {})
+
+ " clean up
+ call term_sendkeys(buf, "x")
+ call StopVimInTerminal(buf)
+ call delete('XtestPopupNarrowMenu')
+endfunc
+
func Test_popup_title()
if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps'
@@ -2093,4 +2116,50 @@
call delete('XtestPopupCursorLine')
endfunc
+func Test_previewpopup()
+ if !CanRunVimInTerminal()
+ throw 'Skipped: cannot make screendumps'
+ endif
+ call writefile([
+ \ "!_TAG_FILE_ENCODING\tutf-8\t//",
+ \ "another\tXtagfile\t/^this is another",
+ \ "theword\tXtagfile\t/^theword"],
+ \ 'Xtags')
+ call writefile(range(1,20)
+ \ + ['theword is here']
+ \ + range(22, 27)
+ \ + ['this is another place']
+ \ + range(29, 40),
+ \ "Xtagfile")
+ let lines =<< trim END
+ set tags=Xtags
+ call setline(1, [
+ \ 'one',
+ \ 'two',
+ \ 'three',
+ \ 'four',
+ \ 'five',
+ \ 'six',
+ \ 'seven',
+ \ 'find theword somewhere',
+ \ 'nine',
+ \ 'this is another word'])
+ set previewpopup=height:4,width:40
+ END
+ call writefile(lines, 'XtestPreviewPopup')
+ let buf = RunVimInTerminal('-S XtestPreviewPopup', #{rows: 14})
+
+ call term_sendkeys(buf, "/theword\<CR>\<C-W>}")
+ call term_sendkeys(buf, ":\<CR>")
+ call VerifyScreenDump(buf, 'Test_popupwin_previewpopup_1', {})
+
+ call term_sendkeys(buf, "/another\<CR>\<C-W>}")
+ call VerifyScreenDump(buf, 'Test_popupwin_previewpopup_2', {})
+
+ call StopVimInTerminal(buf)
+ call delete('Xtags')
+ call delete('Xtagfile')
+ call delete('XtestPreviewPopup')
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab