diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties index 08f11d02632..7d1ba16e3f5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/KotlinBundle.properties @@ -102,10 +102,6 @@ livetemplate.description.anonymous=Anonymous class livetemplate.description.exfun=Extension function livetemplate.description.exval=Extension read-only property livetemplate.description.exvar=Extension read-write property -macro.variable.of.type=kotlinVariable() -macro.iterable.variable=kotlinIterableVariable() -macro.suggest.variable.name=kotlinSuggestVariableName() -macro.fun.parameters=functionParameters() change.visibility.modifier=Change visibility modifier options.kotlin.attribute.descriptor.builtin.annotation=Built-in annotation diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousSuperMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousSuperMacro.kt index e3ab84d20d2..8b21863a1c3 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousSuperMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousSuperMacro.kt @@ -48,26 +48,25 @@ class AnonymousSuperMacro : Macro() { } val vars = getSupertypes(params, context) - if (vars == null || vars.size == 0) return null + if (vars.isEmpty()) return null return KotlinPsiElementResult(vars.first()) } override fun calculateLookupItems(params: Array, context: ExpressionContext): Array? { val superTypes = getSupertypes(params, context) - if (superTypes == null || superTypes.size < 2) return null + if (superTypes.size < 2) return null return superTypes.map { LookupElementBuilder.create(it) }.toTypedArray() } - private fun getSupertypes(params: Array, context: ExpressionContext): Array? { - if (params.size != 0) return null + private fun getSupertypes(params: Array, context: ExpressionContext): Collection { + if (params.size != 0) return emptyList() - val project = context.project - PsiDocumentManager.getInstance(project).commitAllDocuments() + val psiDocumentManager = PsiDocumentManager.getInstance(context.project) + psiDocumentManager.commitAllDocuments() - val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(context.editor!!.document) - if (psiFile !is KtFile) return null + val psiFile = psiDocumentManager.getPsiFile(context.editor!!.document) as? KtFile ?: return emptyList() - val expression = PsiTreeUtil.getParentOfType(psiFile.findElementAt(context.startOffset), KtExpression::class.java) ?: return null + val expression = PsiTreeUtil.getParentOfType(psiFile.findElementAt(context.startOffset), KtExpression::class.java) ?: return emptyList() val bindingContext = expression.analyze(BodyResolveMode.FULL) val resolutionScope = expression.getResolutionScope(bindingContext, expression.getResolutionFacade()) @@ -76,6 +75,5 @@ class AnonymousSuperMacro : Macro() { .collectDescriptorsFiltered(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS) .filter { it is ClassDescriptor && it.modality.isOverridable && (it.kind == ClassKind.CLASS || it.kind == ClassKind.INTERFACE) } .mapNotNull { DescriptorToSourceUtils.descriptorToDeclaration(it) as PsiNamedElement? } - .toTypedArray() } } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.kt index 7551457b239..442e97a8d78 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnonymousTemplateEditingListener.kt @@ -53,9 +53,7 @@ internal class AnonymousTemplateEditingListener(private val psiFile: PsiFile, pr override fun templateFinished(template: Template?, brokenOff: Boolean) { editor.putUserData(LISTENER_KEY, null) - if (brokenOff) { - return - } + if (brokenOff) return if (classDescriptor != null) { if (classDescriptor!!.kind == ClassKind.CLASS) { diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnyVariableMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnyVariableMacro.kt index 0ed43279543..a587f2e09cb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnyVariableMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/AnyVariableMacro.kt @@ -18,22 +18,11 @@ package org.jetbrains.kotlin.idea.liveTemplates.macro import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.VariableDescriptor -import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.core.IterableTypesDetector class AnyVariableMacro : BaseKotlinVariableMacro() { - override fun getName(): String { - return "kotlinVariable" - } + override fun getName() = "kotlinVariable" + override fun getPresentableName() = "kotlinVariable()" - override fun getPresentableName(): String { - return KotlinBundle.message("macro.variable.of.type") - } - - override fun isSuitable( - variableDescriptor: VariableDescriptor, - project: Project, - iterableTypesDetector: IterableTypesDetector): Boolean { - return true - } + override fun isSuitable(variableDescriptor: VariableDescriptor, project: Project, iterableTypesDetector: IterableTypesDetector) = true } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.kt index e9ce2a3168b..69354fc02f5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/BaseKotlinVariableMacro.kt @@ -47,16 +47,15 @@ import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy import java.util.* abstract class BaseKotlinVariableMacro : Macro() { - private fun getVariables(params: Array, context: ExpressionContext): Array? { - if (params.size != 0) return null + private fun getVariables(params: Array, context: ExpressionContext): Collection { + if (params.size != 0) return emptyList() val project = context.project PsiDocumentManager.getInstance(project).commitAllDocuments() - val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(context.editor!!.document) - if (psiFile !is KtFile) return null + val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(context.editor!!.document) as? KtFile ?: return emptyList() - val contextExpression = findContextExpression(psiFile, context.startOffset) ?: return null + val contextExpression = findContextExpression(psiFile, context.startOffset) ?: return emptyList() val resolutionFacade = contextExpression.getResolutionFacade() @@ -95,7 +94,7 @@ abstract class BaseKotlinVariableMacro : Macro() { } } - return declarations.toTypedArray() + return declarations } private fun getAllVariables(scope: LexicalScope): Collection { @@ -125,17 +124,13 @@ abstract class BaseKotlinVariableMacro : Macro() { override fun calculateResult(params: Array, context: ExpressionContext): Result? { val vars = getVariables(params, context) - if (vars == null || vars.size == 0) return null - return KotlinPsiElementResult(vars[0]) + if (vars.isEmpty()) return null + return KotlinPsiElementResult(vars.first()) } override fun calculateLookupItems(params: Array, context: ExpressionContext): Array? { val vars = getVariables(params, context) - if (vars == null || vars.size < 2) return null - val set = LinkedHashSet() - for (`var` in vars) { - set.add(LookupElementBuilder.create(`var`)) - } - return set.toArray(arrayOfNulls(set.size)) + if (vars.size < 2) return null + return vars.map { LookupElementBuilder.create(it) }.toTypedArray() } } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/FunctionParametersMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/FunctionParametersMacro.kt index d5a53582ca6..82c4fc88995 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/FunctionParametersMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/FunctionParametersMacro.kt @@ -18,18 +18,12 @@ package org.jetbrains.kotlin.idea.liveTemplates.macro import com.intellij.codeInsight.template.* import com.intellij.psi.PsiDocumentManager -import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.psi.KtFunction import java.util.* class FunctionParametersMacro : Macro() { - override fun getName(): String { - return "functionParameters" - } - - override fun getPresentableName(): String { - return KotlinBundle.message("macro.fun.parameters") - } + override fun getName() = "functionParameters" + override fun getPresentableName() = "functionParameters()" override fun calculateResult(params: Array, context: ExpressionContext): Result? { val project = context.project @@ -53,8 +47,6 @@ class FunctionParametersMacro : Macro() { return null } - override fun isAcceptableInContext(context: TemplateContextType?): Boolean { - return context is JavaCodeContextType - } + override fun isAcceptableInContext(context: TemplateContextType?) = context is JavaCodeContextType } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/IterableVariableMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/IterableVariableMacro.kt index 3273cc49ce3..f9c7d562b89 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/IterableVariableMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/IterableVariableMacro.kt @@ -18,18 +18,11 @@ package org.jetbrains.kotlin.idea.liveTemplates.macro import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.VariableDescriptor -import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.core.IterableTypesDetector class IterableVariableMacro : BaseKotlinVariableMacro() { - - override fun getName(): String { - return "kotlinIterableVariable" - } - - override fun getPresentableName(): String { - return KotlinBundle.message("macro.iterable.variable") - } + override fun getName() = "kotlinIterableVariable" + override fun getPresentableName() = "kotlinIterableVariable()" override fun isSuitable( variableDescriptor: VariableDescriptor, diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/KotlinPsiElementResult.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/KotlinPsiElementResult.kt index 4ec860297b6..ee7cb6c3a9c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/KotlinPsiElementResult.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/KotlinPsiElementResult.kt @@ -20,7 +20,5 @@ import com.intellij.codeInsight.template.JavaPsiElementResult import com.intellij.psi.PsiNamedElement class KotlinPsiElementResult(element: PsiNamedElement) : JavaPsiElementResult(element) { - override fun toString(): String { - return (element as PsiNamedElement).name ?: "" - } + override fun toString() = (element as PsiNamedElement).name ?: "" } diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/SuggestVariableNameMacro.kt b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/SuggestVariableNameMacro.kt index 7fdd6da0fe1..3d6f6f56600 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/SuggestVariableNameMacro.kt +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/macro/SuggestVariableNameMacro.kt @@ -18,17 +18,11 @@ package org.jetbrains.kotlin.idea.liveTemplates.macro import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.VariableDescriptor -import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.core.IterableTypesDetector class SuggestVariableNameMacro : BaseKotlinVariableMacro() { - override fun getName(): String { - return "kotlinSuggestVariableName" - } - - override fun getPresentableName(): String { - return KotlinBundle.message("macro.suggest.variable.name") - } + override fun getName() = "kotlinSuggestVariableName" + override fun getPresentableName() = "kotlinSuggestVariableName()" override fun isSuitable( variableDescriptor: VariableDescriptor,