More correct list of keywords with no space after

This commit is contained in:
Valentin Kipyatkov
2014-12-26 19:58:39 +03:00
parent 0b687ddb05
commit 4800a02e69
@@ -19,28 +19,31 @@ package org.jetbrains.jet.plugin.completion.handlers
import com.intellij.codeInsight.completion.InsertHandler import com.intellij.codeInsight.completion.InsertHandler
import com.intellij.codeInsight.completion.InsertionContext import com.intellij.codeInsight.completion.InsertionContext
import com.intellij.codeInsight.lookup.LookupElement import com.intellij.codeInsight.lookup.LookupElement
import org.jetbrains.jet.lang.psi.JetFunction import org.jetbrains.jet.lexer.JetTokens.*
import org.jetbrains.jet.lang.psi.JetPsiUtil
import org.jetbrains.jet.lexer.JetTokens
import org.jetbrains.jet.lang.psi.psiUtil.getStrictParentOfType
public object KotlinKeywordInsertHandler : InsertHandler<LookupElement> { public object KotlinKeywordInsertHandler : InsertHandler<LookupElement> {
private val NO_SPACE_AFTER = setOf(JetTokens.THIS_KEYWORD.toString(), private val NO_SPACE_AFTER = listOf(THIS_KEYWORD,
JetTokens.SUPER_KEYWORD.toString(), SUPER_KEYWORD,
JetTokens.CAPITALIZED_THIS_KEYWORD.toString(), FOR_KEYWORD,
JetTokens.THIS_KEYWORD.toString(), NULL_KEYWORD,
JetTokens.FALSE_KEYWORD.toString(), TRUE_KEYWORD,
JetTokens.NULL_KEYWORD.toString(), FALSE_KEYWORD,
JetTokens.BREAK_KEYWORD.toString(), BREAK_KEYWORD,
JetTokens.CONTINUE_KEYWORD.toString()) CONTINUE_KEYWORD,
IF_KEYWORD,
ELSE_KEYWORD,
WHILE_KEYWORD,
DO_KEYWORD,
TRY_KEYWORD,
WHEN_KEYWORD,
FILE_KEYWORD,
CATCH_KEYWORD,
FINALLY_KEYWORD,
DYNAMIC_KEYWORD).map { it.getValue() }
override fun handleInsert(context: InsertionContext, item: LookupElement) { override fun handleInsert(context: InsertionContext, item: LookupElement) {
if (shouldInsertSpaceAfter(item.getLookupString())) { if (item.getLookupString() !in NO_SPACE_AFTER) {
WithTailInsertHandler.spaceTail().postHandleInsert(context, item) WithTailInsertHandler.spaceTail().postHandleInsert(context, item)
} }
} }
private fun shouldInsertSpaceAfter(keyword: String): Boolean {
return keyword !in NO_SPACE_AFTER
}
} }