void () { disableVirtualComma(); // check hints appearance on completion configureJava("class C { C(int a, int b) {} void m() { new C<caret> } }"); complete("C(int a, int b)"); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<HINT text=\"a:\"/><caret>, <Hint text=\"b:\"/>) } }"); // check that hints don't disappear after daemon highlighting passes waitForAllAsyncStuff(); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<HINT text=\"a:\"/><caret>, <Hint text=\"b:\"/>) } }"); // test Tab/Shift+Tab navigation next(); waitForAllAsyncStuff(); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<Hint text=\"a:\"/>, <HINT text=\"b:\"/><caret>) } }"); prev(); waitForAllAsyncStuff(); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<HINT text=\"a:\"/><caret>, <Hint text=\"b:\"/>) } }"); // test hints remain shown while entering parameter values type("1"); next(); type("2"); waitForAllAsyncStuff(); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<Hint text=\"a:\"/>1, <HINT text=\"b:\"/>2<caret>) } }"); // test hints don't disappear when caret moves out of parameter list right(); right(); right(); right(); waitForAllAsyncStuff(); checkResultWithInlays("class C { C(int a, int b) {} void m() { new C(<hint text=\"a:\"/>1, <hint text=\"b:\"/>2) } <caret>}"); }