don't hide completion parameter hints on nested completion

This commit is contained in:
Dmitry Batrak
2017-03-27 15:00:18 +03:00
parent f2a13d46ff
commit 4c972aaef4
2 changed files with 18 additions and 1 deletions
@@ -122,6 +122,18 @@ public class CompletionHintsTest extends LightFixtureCompletionTestCase {
"}");
}
public void testNestedCompletion() {
myFixture.configureByText(JavaFileType.INSTANCE, "class C { void m() { System.setPro<caret> } }");
complete("setProperty");
myFixture.doHighlighting();
myFixture.checkResultWithInlays("class C { void m() { System.setProperty(<hint text=\"key:\"/>, <hint text=\"value:\"/>) } }");
myFixture.type("System.getPro");
complete("getProperty(String key, String def)");
myFixture.doHighlighting();
myFixture.checkResultWithInlays("class C { void m() { System.setProperty(<hint text=\"key:\"/>System.getProperty(<hint text=\"key:\"/>, <hint text=\"def:\"/>), <hint text=\"value:\"/>) } }");
myFixture.checkResult("class C { void m() { System.setProperty(System.getProperty(<caret>, ), ) } }");
}
private void showParameterInfo() {
myFixture.performEditorAction("ParameterInfo");
UIUtil.dispatchAllInvocationEvents();
@@ -219,11 +219,16 @@ public class ParameterInfoController implements Disposable {
}
private void adjustPositionForLookup(@NotNull Lookup lookup) {
if (!myHint.isVisible() || myEditor.isDisposed()) {
if (myEditor.isDisposed()) {
Disposer.dispose(this);
return;
}
if (!myHint.isVisible()) {
if (!myKeepOnHintHidden) Disposer.dispose(this);
return;
}
IdeTooltip tooltip = myHint.getCurrentIdeTooltip();
if (tooltip != null) {
JRootPane root = myEditor.getComponent().getRootPane();