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