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