Skip to content
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

hideOnNoText doesn't seems to work properly : the popup will always reappear with arrow keys #94

Open
olivbrau opened this issue Jul 26, 2024 · 1 comment

Comments

@olivbrau
Copy link

olivbrau commented Jul 26, 2024

Description
I would like that when the popup is visible, and I type ; or space, it disappears.
So call setHideOnNoText(true) (via a sub class because the method is protected : should it be public, by the way ?)
It works well.

But I would also like that when I move the caret with Left/Right key, the behaviour is the same.
For example :

a line contains the text toto(); I want to modify the function name with 'tata'
I show the popup with Ctrl-Space but I will eventually not use it
after typing tata, i move the caret on the right (on the ;)
I would like that le popup disappear in this case
But the popup is still there

I think it is because AutoCompletePopupWindow receive 2 events

  1. right arrow -> it calls refreshPopupWindow()
    as the popup is visible and text.length==0 this method hide it
  2. caretUpdate -> it calls refreshPopupWindow() again !!
    as the popup is not visible, refreshPopupWindow() ignore the flag hideOnNoText and continue and then show the popup again ...
    To correct this, I think that in the refreshPopupWindow() method :
    return getLineOfCaret(); shoud be out of the test if (isPopupVisible())
    and executed each time (textLen == 0 && isHideOnNoText()) is true
    like this :
if (textLen == 0 && isHideOnNoText()) {
	if (isPopupVisible()) {
		hidePopupWindow();
	}
	return getLineOfCaret();
}
@bobbylight
Copy link
Owner

Unfortunately, it's not that simple. That change would prevent Ctrl Space from opening the completion choices window if there aren't any prior chars for the start of an identifier :( I'll take a further look at this though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants