diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
index 8361e34e38e..268fd3d21ef 100644
--- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
+++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KotlinCompletionContributor.kt
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.completion
import com.intellij.codeInsight.completion.*
import com.intellij.openapi.editor.Document
import com.intellij.openapi.progress.ProcessCanceledException
+import com.intellij.openapi.util.Key
import com.intellij.patterns.PlatformPatterns
import com.intellij.patterns.PsiJavaPatterns.elementType
import com.intellij.patterns.PsiJavaPatterns.psiElement
@@ -42,6 +43,8 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.utils.addToStdlib.check
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
+public var JetFile.doNotComplete: Boolean? by UserDataProperty(Key.create("DO_NOT_COMPLETE"))
+
public class KotlinCompletionContributor : CompletionContributor() {
private val AFTER_NUMBER_LITERAL = psiElement().afterLeafSkipping(psiElement().withText(""), psiElement().withElementType(elementType().oneOf(JetTokens.FLOAT_LITERAL, JetTokens.INTEGER_LITERAL)))
private val AFTER_INTEGER_LITERAL_AND_DOT = psiElement().afterLeafSkipping(psiElement().withText("."), psiElement().withElementType(elementType().oneOf(JetTokens.INTEGER_LITERAL)))
@@ -214,7 +217,9 @@ public class KotlinCompletionContributor : CompletionContributor() {
private fun performCompletion(parameters: CompletionParameters, result: CompletionResultSet) {
val position = parameters.getPosition()
- if (position.getContainingFile() !is JetFile) return
+ val positionFile = position.containingFile
+ if (positionFile !is JetFile) return
+ if ((positionFile.originalFile as JetFile).doNotComplete ?: false) return
performCompletionWithOutOfBlockTracking(position) {
doComplete(parameters, position, result)
diff --git a/idea/idea-repl/idea-repl.iml b/idea/idea-repl/idea-repl.iml
index 1718e7e5725..7690fc6c449 100644
--- a/idea/idea-repl/idea-repl.iml
+++ b/idea/idea-repl/idea-repl.iml
@@ -9,6 +9,7 @@
+
diff --git a/idea/idea-repl/src/org/jetbrains/kotlin/console/KotlinConsoleRunner.kt b/idea/idea-repl/src/org/jetbrains/kotlin/console/KotlinConsoleRunner.kt
index ab5f37267f9..996c4952200 100644
--- a/idea/idea-repl/src/org/jetbrains/kotlin/console/KotlinConsoleRunner.kt
+++ b/idea/idea-repl/src/org/jetbrains/kotlin/console/KotlinConsoleRunner.kt
@@ -40,6 +40,7 @@ import com.intellij.openapi.editor.markup.TextAttributes
import com.intellij.openapi.module.Module
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Disposer
+import com.intellij.psi.PsiManager
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.console.actions.BuildAndRestartConsoleAction
import org.jetbrains.kotlin.console.actions.KtExecuteCommandAction
@@ -51,6 +52,8 @@ import org.jetbrains.kotlin.console.highlight.KotlinHistoryHighlighter
import org.jetbrains.kotlin.console.highlight.KotlinReplOutputHighlighter
import org.jetbrains.kotlin.console.highlight.ReplColors
import org.jetbrains.kotlin.idea.JetLanguage
+import org.jetbrains.kotlin.idea.completion.doNotComplete
+import org.jetbrains.kotlin.psi.JetFile
import java.awt.Color
import java.awt.Font
import kotlin.properties.Delegates
@@ -82,6 +85,8 @@ public class KotlinConsoleRunner(
consoleView.prompt = null
+ disableCompletion(consoleView)
+
val consoleEditor = consoleView.consoleEditor
setupPlaceholder(consoleEditor)
@@ -148,6 +153,12 @@ public class KotlinConsoleRunner(
editor.setPlaceholderAttributes(placeholderAttrs)
}
+ private fun disableCompletion(consoleView: LanguageConsoleView) {
+ val consoleFile = consoleView.virtualFile
+ val jetFile = PsiManager.getInstance(project).findFile(consoleFile) as? JetFile ?: return
+ jetFile.doNotComplete = true
+ }
+
fun setupGutters() {
fun configureEditorGutter(editor: EditorEx, color: Color, iconWithTooltip: IconWithTooltip): RangeHighlighter {
editor.settings.isLineMarkerAreaShown = true // hack to show gutter