diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CustomFileTypeCompletionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CustomFileTypeCompletionTest.java index dd0dc3acb1ff..2a44b1e5215a 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/CustomFileTypeCompletionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/CustomFileTypeCompletionTest.java @@ -42,6 +42,12 @@ public class CustomFileTypeCompletionTest extends LightCompletionTestCase { testByCount(0, new String[] { null }); } + public void testEmptyFile() throws Throwable { + configureFromFileText("a.cs", ""); + complete(); + testByCount(1, "abstract", "x"); + } + public void testPlainTextSubstitution() throws IOException { FileTypeManagerEx.getInstanceEx().registerFileType(MockLanguageFileType.INSTANCE, "xxx"); try { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/completion/CustomFileTypeCompletionContributor.java b/platform/lang-impl/src/com/intellij/codeInsight/completion/CustomFileTypeCompletionContributor.java index 709bfd7e60eb..e4000d4e2f09 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/completion/CustomFileTypeCompletionContributor.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/completion/CustomFileTypeCompletionContributor.java @@ -71,6 +71,8 @@ public class CustomFileTypeCompletionContributor extends CompletionContributor i private static boolean inCommentOrLiteral(CompletionParameters parameters) { HighlighterIterator iterator = ((EditorEx)parameters.getEditor()).getHighlighter().createIterator(parameters.getOffset()); + if (iterator.atEnd()) return false; + IElementType elementType = iterator.getTokenType(); if (elementType == CustomHighlighterTokenType.WHITESPACE) { iterator.retreat();