-
-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Fix: Popup menu should reset scroll position on reopen with 'noselect' #17673
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Problem When `'wildmode'` is set to include `noselect`, the popup menu (pum) incorrectly retained its scroll position when reopened. This meant that after scrolling down through the menu with `<C-n>`, reopening the menu (e.g., by retyping the command and triggering completion again) would show the menu starting from the previously scrolled position, rather than from the top. This could confuse users, as the first visible item would not be the first actual match in the list. Solution Ensure that the popup menu resets its scroll position to the top when reopened.
Member
|
thanks! |
zeertzjq
added a commit
to zeertzjq/neovim
that referenced
this pull request
Jul 7, 2025
…en with 'noselect'
Problem: When 'wildmode' is set to include "noselect", the popup menu (pum)
incorrectly retained its scroll position when reopened. This
meant that after scrolling down through the menu with `<C-n>`,
reopening the menu (e.g., by retyping the command and
triggering completion again) would show the menu starting from
the previously scrolled position, rather than from the top.
This could confuse users, as the first visible item would not
be the first actual match in the list.
Solution: Ensure that the popup menu resets its scroll position to the
top when reopened (Girish Palya).
closes: vim/vim#17673
vim/vim@0cd7f35
Co-authored-by: Girish Palya <girishji@gmail.com>
zeertzjq
added a commit
to neovim/neovim
that referenced
this pull request
Jul 7, 2025
…en with 'noselect' (#34836) Problem: When 'wildmode' is set to include "noselect", the popup menu (pum) incorrectly retained its scroll position when reopened. This meant that after scrolling down through the menu with `<C-n>`, reopening the menu (e.g., by retyping the command and triggering completion again) would show the menu starting from the previously scrolled position, rather than from the top. This could confuse users, as the first visible item would not be the first actual match in the list. Solution: Ensure that the popup menu resets its scroll position to the top when reopened (Girish Palya). closes: vim/vim#17673 vim/vim@0cd7f35 Co-authored-by: Girish Palya <girishji@gmail.com>
zeertzjq
added a commit
to zeertzjq/neovim
that referenced
this pull request
Jul 7, 2025
…en with 'noselect' (neovim#34836) Problem: When 'wildmode' is set to include "noselect", the popup menu (pum) incorrectly retained its scroll position when reopened. This meant that after scrolling down through the menu with `<C-n>`, reopening the menu (e.g., by retyping the command and triggering completion again) would show the menu starting from the previously scrolled position, rather than from the top. This could confuse users, as the first visible item would not be the first actual match in the list. Solution: Ensure that the popup menu resets its scroll position to the top when reopened (Girish Palya). closes: vim/vim#17673 vim/vim@0cd7f35 Co-authored-by: Girish Palya <girishji@gmail.com>
Contributor
Author
|
Thanks. |
girishji
added a commit
to girishji/vim
that referenced
this pull request
Jul 8, 2025
author Girish Palya <girishji@gmail.com> 1751956573 +0200 committer Girish Palya <girishji@gmail.com> 1751956573 +0200 M runtime/doc/options.txt Rename option value to convey function better M runtime/doc/options.txt M src/cmdexpand.c M src/option.h M src/optionstr.c M src/testdir/test_cmdline.vim Merge M runtime/doc/options.txt M runtime/doc/options.txt Simplify option value name M runtime/doc/options.txt M src/option.h M src/optionstr.c M src/testdir/test_cmdline.vim Keep alphabetical order in doc M runtime/doc/options.txt Improve doc M runtime/doc/options.txt runtime(doc): fix a few typos introduced in 0ae9e19 Signed-off-by: Christian Brabandt <cb@256bit.org> translation(tr): Update Turkish translations closes: vim#17688 Signed-off-by: Emir SARI <emir_sari@icloud.com> Signed-off-by: Christian Brabandt <cb@256bit.org> runtime(optwin): add missing values for tabpanel option closes: vim#17685 Signed-off-by: RestorerZ <restorer@mail2k.ru> Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1518: getcompletiontype() may crash Problem: getcompletiontype() crashes when no completion is available (after v9.1.1509). Solution: Don't call set_expand_context() (zeertzjq) fixes: vim#17681 closes: vim#17684 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org> runtime(doc): Add documentation style closes: vim#17627 Co-authored-by: Phạm Bình An <111893501+brianhuster@users.noreply.github.com> Signed-off-by: Damien Lejay <damien@lejay.be> Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail Problem: Test_termdebug_decimal_breakpoints() fails with List index out of range, because when adding the second breakpoint, the cursor is still on the very first line (a header include line) and therefore gdb refuses to set the breakpoint with: `msg="No compiled code for line 1 in file XTD_decimal.c"` Solution: Run the program, so that it will break at the very first defined breakpoint and then once we are in the program, set further breakpoints closes: vim#17689 Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1520: completion: search completion doesn't handle 'smartcase' well Problem: When using `/` or `?` in command-line mode with 'ignorecase' and 'smartcase' enabled, the completion menu could show items that don't actually match any text in the buffer due to case mismatches Solution: Instead of validating menu items only against the user-typed pattern, the new logic also checks whether the completed item matches actual buffer content. If needed, it retries the match using a lowercased version of the candidate, respecting smartcase semantics. closes: vim#17665 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect' Problem: When 'wildmode' is set to include "noselect", the popup menu (pum) incorrectly retained its scroll position when reopened. This meant that after scrolling down through the menu with `<C-n>`, reopening the menu (e.g., by retyping the command and triggering completion again) would show the menu starting from the previously scrolled position, rather than from the top. This could confuse users, as the first visible item would not be the first actual match in the list. Solution: Ensure that the popup menu resets its scroll position to the top when reopened (Girish Palya). closes: vim#17673 Signed-off-by: Girish Palya <girishji@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1522: tests: still some ANSI escape sequences in test output Problem: tests: still some ANSI escape sequences in test messages output Solution: update the cleanup regexp to also handle those ANSI escape sequences: `<esc>|2h` and `<esc>|31H` like in this log output: ``` 2025-07-05T20:02:47.6350409Z <esc>|2hExecuted 171 tests in 4.739708 seconds<esc>|31H ``` related: vim#17677 Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1523: tests: test_clipmethod fails in non X11 environment Problem: tests: test_clipmethod fails in non X11 environment Solution: test that $DISPLAY is available related: vim#17677 Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1524: tests: too many imports in the test suite Problem: tests: too many imports in the test suite Solution: Clean up the imported scripts Most tests make use of check.vim, so let's just source it once in runtest.vim instead of having each test manually source it. runtest.vim already sources shared.vim, which again sources view_util.vim, so we don't need to source those two common dependencies in all the other tests And then check.vim sources term_util.vim already, so we can in addition drop sourcing it explicitly in each single test script. Note: test_expand_func.vim had to be updated to account for the changed number of sourced files. And finally check.vim uses line-continuation so let's also explicitly enable line continuation via the 'cpo' option value. related: vim#17677 Signed-off-by: Christian Brabandt <cb@256bit.org> patch 9.1.1525: tests: testdir/ is a bit messy Problem: tests: testdir is a bit messy Solution: move test scripts into testdir/util/ directory src/testdir/ has become a dumping ground mixing test cases with utility functions. Let's fix this by moving all utility functions into the testdir/util/ directory Also a few related changes had to be done: - Update Filelist - update README.txt and mention the new directory layout - fix shadowbuild by linking the util directory into the shadow dir closes: vim#17677 Signed-off-by: Christian Brabandt <cb@256bit.org> runtime(netrw): restore blank line cleanup after file listing Problem: v182 refactoring removed blank line cleanup (g/^$/d) from s:LocalListing(), causing empty lines between directories and files. Solution: Add the missing cleanup after append() in s:PerformListing() (uma-chan). closes: vim#17672 Co-authored-by: Luca Saccarola <96259932+saccarosium@users.noreply.github.com> Signed-off-by: uma-chan <127664533+i9wa4@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When
'wildmode'is set to includenoselect, the popup menu (pum) incorrectly retained its scroll position when reopened. This meant that after scrolling down through the menu with<C-n>, reopening the menu (e.g., by retyping the command and triggering completion again) would show the menu starting from the previously scrolled position, rather than from the top. This could be confusing, as the first visible item would not be the first actual match in the list.Solution
Ensure that the popup menu resets its scroll position to the top when reopened.