From 6a794afabcdafef0cf546e79d20b17184b0a6041 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 19 Jan 2011 18:33:09 +0100 Subject: [PATCH] don't overwrite dots when finishing completion by ., since it's irritating --- .../completion/normal/NoDotOverwrite.java | 8 ++++++++ .../completion/normal/NoDotOverwrite_after.java | 8 ++++++++ .../completion/NormalCompletionTest.groovy | 2 ++ .../src/com/intellij/codeInsight/TailType.java | 13 ++++++++++++- 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite.java create mode 100644 java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite_after.java diff --git a/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite.java b/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite.java new file mode 100644 index 000000000000..77a04c3afef9 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite.java @@ -0,0 +1,8 @@ +public class JavaClass { + Object magic() {} + Object magic2() {} + + void foo() { + mag.aaa + } +} diff --git a/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite_after.java b/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite_after.java new file mode 100644 index 000000000000..d50495517830 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/NoDotOverwrite_after.java @@ -0,0 +1,8 @@ +public class JavaClass { + Object magic() {} + Object magic2() {} + + void foo() { + magic()..aaa + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index cf30c5e4b8e0..5f3e4c01b398 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -881,6 +881,8 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { public void testInstanceMagicMethod() throws Exception { doTest() } + public void testNoDotOverwrite() throws Exception { doTest('.') } + public void testNoMethodsInParameterType() { configure() assertOrderedEquals myFixture.lookupElementStrings, "final", "float" diff --git a/platform/lang-api/src/com/intellij/codeInsight/TailType.java b/platform/lang-api/src/com/intellij/codeInsight/TailType.java index f98c81a8b5b2..ad9d063eedc3 100644 --- a/platform/lang-api/src/com/intellij/codeInsight/TailType.java +++ b/platform/lang-api/src/com/intellij/codeInsight/TailType.java @@ -93,7 +93,18 @@ public abstract class TailType { } }; public static final TailType SPACE = new CharTailType(' '); - public static final TailType DOT = new CharTailType('.'); + public static final TailType DOT = new TailType() { + @Override + public int processTail(Editor editor, int tailOffset) { + editor.getDocument().insertString(tailOffset, "."); + return moveCaret(editor, tailOffset, 1); + } + + @Override + public String toString() { + return "DOT"; + } + }; public static final TailType CASE_COLON = new CharTailType(':'); public static final TailType COND_EXPR_COLON = new TailType(){