KT-14410 Autopopup completion is triggered in string literals for packages

#KT-14410 Fixed
This commit is contained in:
Valentin Kipyatkov
2016-10-26 19:51:59 +03:00
parent a2ebf07a93
commit 0af142edb3
3 changed files with 20 additions and 2 deletions
@@ -0,0 +1,4 @@
fun test() {
"a<caret>"
}
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.CodeInsightSettings;
import com.intellij.codeInsight.completion.CodeCompletionHandlerBase;
import com.intellij.codeInsight.completion.CompletionType;
import com.intellij.codeInsight.completion.LightCompletionTestCase;
import com.intellij.codeInsight.lookup.impl.LookupImpl;
import com.intellij.openapi.projectRoots.JavaSdk;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.util.text.StringUtil;
@@ -55,6 +56,10 @@ public class KotlinConfidenceTest extends LightCompletionTestCase {
doTest();
}
public void testNoAutoPopupInString() {
doTest();
}
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -78,8 +83,15 @@ public class KotlinConfidenceTest extends LightCompletionTestCase {
try {
configureByFile(getBeforeFileName());
type(getTypeTextFromFile());
checkResultByFile(getAfterFileName());
String typeText = getTypeTextFromFile();
if (typeText != null) {
type(typeText);
checkResultByFile(getAfterFileName());
}
else {
LookupImpl lookup = getLookup();
assertNull("No completion auto-popup expected", lookup);
}
}
finally {
CodeInsightSettings.getInstance().SELECT_AUTOPOPUP_SUGGESTIONS_BY_CHARS = completeByChars;
@@ -90,6 +102,7 @@ public class KotlinConfidenceTest extends LightCompletionTestCase {
String text = getEditor().getDocument().getText();
String[] directives = InTextDirectivesUtils.findArrayWithPrefixes(text, TYPE_DIRECTIVE_PREFIX);
if (directives.length == 0) return null;
assertEquals("One directive with \"" + TYPE_DIRECTIVE_PREFIX +"\" expected", 1, directives.length);
return StringUtil.unquoteString(directives[0]);
+1
View File
@@ -408,6 +408,7 @@
<completion.confidence language="kotlin"
implementationClass="org.jetbrains.kotlin.idea.completion.confidence.UnfocusedPossibleFunctionParameter"/>
<completion.confidence language="kotlin" implementationClass="com.intellij.codeInsight.completion.AlwaysFocusLookup" order="last"/>
<completion.confidence language="kotlin" implementationClass="com.intellij.codeInsight.completion.SkipAutopopupInStrings"/>
<lookup.charFilter implementation="org.jetbrains.kotlin.idea.completion.KotlinCompletionCharFilter"/>
<lookup.actionProvider implementation="org.jetbrains.kotlin.idea.completion.KotlinExcludeFromCompletionLookupActionProvider"/>