From c104aba03d5238326665e882e3c9c1faeaf26ca7 Mon Sep 17 00:00:00 2001 From: spikefu Date: Tue, 3 Apr 2012 05:19:15 -0700 Subject: [PATCH 1/2] Fix for KT-1403 - Code completion for keywords when replacing another keyword should not double spaces --- .../completion/handlers/JetKeywordInsertHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java index e14eeba1121..0d5b1526cd6 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.plugin.completion.handlers; import com.google.common.collect.Sets; +import com.intellij.codeInsight.TailType; import com.intellij.codeInsight.completion.InsertHandler; import com.intellij.codeInsight.completion.InsertionContext; import com.intellij.codeInsight.lookup.LookupElement; @@ -39,12 +40,11 @@ public class JetKeywordInsertHandler implements InsertHandler { // Add space after keyword if (!NO_SPACE_AFTER.contains(keyword)) { Editor editor = context.getEditor(); - Document document = editor.getDocument(); - int offset = context.getStartOffset() + keyword.length(); context.setAddCompletionChar(false); - document.insertString(offset, " "); - editor.getCaretModel().moveToOffset(editor.getCaretModel().getOffset() + 1); + final TailType tailType = TailType.SPACE; + tailType.processTail(context.getEditor(), context.getTailOffset()); + editor.getCaretModel().moveToOffset(editor.getCaretModel().getOffset()); } } } From 31b671b88bc51780a8ebbd9defe5d1ed30f054e6 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 3 Apr 2012 21:48:34 +0400 Subject: [PATCH 2/2] processTail also moves caret --- .../plugin/completion/handlers/JetKeywordInsertHandler.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java index 0d5b1526cd6..b7f50952e4e 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/handlers/JetKeywordInsertHandler.java @@ -21,8 +21,6 @@ import com.intellij.codeInsight.TailType; import com.intellij.codeInsight.completion.InsertHandler; import com.intellij.codeInsight.completion.InsertionContext; import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.openapi.editor.Document; -import com.intellij.openapi.editor.Editor; import java.util.Set; @@ -39,12 +37,9 @@ public class JetKeywordInsertHandler implements InsertHandler { // Add space after keyword if (!NO_SPACE_AFTER.contains(keyword)) { - Editor editor = context.getEditor(); - context.setAddCompletionChar(false); final TailType tailType = TailType.SPACE; tailType.processTail(context.getEditor(), context.getTailOffset()); - editor.getCaretModel().moveToOffset(editor.getCaretModel().getOffset()); } } }