KT-2128 Code completion after number with dot - don't complete on '.' only in ".."
#KT-2128 Fixed
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.completion;
|
package org.jetbrains.jet.plugin.completion;
|
||||||
|
|
||||||
import com.intellij.codeInsight.completion.CompletionCharFilter;
|
|
||||||
import com.intellij.codeInsight.lookup.CharFilter;
|
import com.intellij.codeInsight.lookup.CharFilter;
|
||||||
import com.intellij.codeInsight.lookup.Lookup;
|
import com.intellij.codeInsight.lookup.Lookup;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
@@ -24,8 +23,6 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
|
|
||||||
public class JetReferenceCharFilter extends CharFilter {
|
public class JetReferenceCharFilter extends CharFilter {
|
||||||
private final static CharFilter delegate = new CompletionCharFilter();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public Result acceptChar(char c, int prefixLength, Lookup lookup) {
|
public Result acceptChar(char c, int prefixLength, Lookup lookup) {
|
||||||
@@ -34,10 +31,13 @@ public class JetReferenceCharFilter extends CharFilter {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c == '.') {
|
if (c == '.' && prefixLength == 0 && !lookup.isSelectionTouched()) {
|
||||||
return Result.HIDE_LOOKUP;
|
int caret = lookup.getEditor().getCaretModel().getOffset();
|
||||||
|
if (caret > 0 && lookup.getEditor().getDocument().getCharsSequence().charAt(caret - 1) == '.') {
|
||||||
|
return Result.HIDE_LOOKUP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return delegate.acceptChar(c, prefixLength, lookup);
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fun test() {
|
||||||
|
12.in<caret>
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fun test() {
|
||||||
|
12.inc(). <caret>
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fun test() {
|
||||||
|
for (i in 12.<caret>) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fun test() {
|
||||||
|
for (i in 12.. ) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,6 +30,9 @@ import java.io.File;
|
|||||||
* @author Nikolay Krasko
|
* @author Nikolay Krasko
|
||||||
*/
|
*/
|
||||||
public class JetConfidenceTest extends LightCompletionTestCase {
|
public class JetConfidenceTest extends LightCompletionTestCase {
|
||||||
|
public void testCompleteOnDotOutOfRanges() {
|
||||||
|
doTest(".");
|
||||||
|
}
|
||||||
|
|
||||||
public void testImportAsConfidence() {
|
public void testImportAsConfidence() {
|
||||||
doTest("as");
|
doTest("as");
|
||||||
@@ -51,6 +54,10 @@ public class JetConfidenceTest extends LightCompletionTestCase {
|
|||||||
doTest("mm");
|
doTest("mm");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testNoAutoCompletionForRangeOperator() {
|
||||||
|
doTest(".");
|
||||||
|
}
|
||||||
|
|
||||||
protected void doTest(String completionActivateType) {
|
protected void doTest(String completionActivateType) {
|
||||||
configureByFile(getBeforeFileName());
|
configureByFile(getBeforeFileName());
|
||||||
type(completionActivateType + " ");
|
type(completionActivateType + " ");
|
||||||
|
|||||||
Reference in New Issue
Block a user