From 27fba88fdb8fd60e55b085ea73bde3d915d93458 Mon Sep 17 00:00:00 2001 From: Vladislav Rassokhin Date: Wed, 15 May 2019 16:49:02 +0300 Subject: [PATCH] Reuse code for tfvars file check --- .../hcl/terraform/config/generate/AbstractGenerate.kt | 5 ++--- .../config/inspection/TFDuplicatedInspectionBase.kt | 4 ++-- .../config/inspection/TFIncorrectVariableTypeInspection.kt | 3 +-- .../config/inspection/TFNoInterpolationsAllowedInspection.kt | 4 ++-- .../config/inspection/TFVARSIncorrectElementInspection.kt | 4 ++-- src/kotlin/org/intellij/plugins/hil/ILLanguageInjector.kt | 4 ++-- 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/kotlin/org/intellij/plugins/hcl/terraform/config/generate/AbstractGenerate.kt b/src/kotlin/org/intellij/plugins/hcl/terraform/config/generate/AbstractGenerate.kt index c021e282..3257c4e9 100644 --- a/src/kotlin/org/intellij/plugins/hcl/terraform/config/generate/AbstractGenerate.kt +++ b/src/kotlin/org/intellij/plugins/hcl/terraform/config/generate/AbstractGenerate.kt @@ -28,10 +28,9 @@ import com.intellij.psi.PsiFile import com.intellij.psi.PsiWhiteSpace import com.intellij.psi.util.PsiTreeUtil import org.intellij.plugins.hcl.psi.HCLBlock -import org.intellij.plugins.hcl.psi.HCLFile -import org.intellij.plugins.hcl.terraform.config.TerraformFileType import org.intellij.plugins.hcl.terraform.config.codeinsight.InsertHandlersUtil.addHCLBlockRequiredProperties import org.intellij.plugins.hcl.terraform.config.codeinsight.TerraformConfigCompletionContributor +import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns import java.util.* @@ -89,7 +88,7 @@ abstract class AbstractGenerate : SimpleCodeInsightAction() { abstract val template: Template override fun isValidForFile(project: Project, editor: Editor, file: PsiFile): Boolean { - return file is HCLFile && file.fileType == TerraformFileType && !file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION) + return TerraformPatterns.TerraformConfigFile.accepts(file) } companion object { diff --git a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFDuplicatedInspectionBase.kt b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFDuplicatedInspectionBase.kt index c0203188..dc57b3ee 100644 --- a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFDuplicatedInspectionBase.kt +++ b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFDuplicatedInspectionBase.kt @@ -35,15 +35,15 @@ import com.intellij.usageView.UsageInfo import com.intellij.usages.* import com.intellij.util.Consumer import com.intellij.util.NullableFunction -import org.intellij.plugins.hcl.terraform.config.TerraformFileType import org.intellij.plugins.hcl.terraform.config.model.getTerraformSearchScope +import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns import org.jetbrains.annotations.NotNull abstract class TFDuplicatedInspectionBase : LocalInspectionTool() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { val file = holder.file - if (file.fileType != TerraformFileType || file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION)) { + if (!TerraformPatterns.TerraformConfigFile.accepts(file)) { return super.buildVisitor(holder, isOnTheFly) } diff --git a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFIncorrectVariableTypeInspection.kt b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFIncorrectVariableTypeInspection.kt index 593eaa60..77864a75 100644 --- a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFIncorrectVariableTypeInspection.kt +++ b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFIncorrectVariableTypeInspection.kt @@ -19,7 +19,6 @@ import com.intellij.codeInspection.* import com.intellij.openapi.project.Project import com.intellij.psi.PsiElementVisitor import org.intellij.plugins.hcl.psi.* -import org.intellij.plugins.hcl.terraform.config.TerraformFileType import org.intellij.plugins.hcl.terraform.config.model.SimpleValueHint import org.intellij.plugins.hcl.terraform.config.model.TypeModel import org.intellij.plugins.hcl.terraform.config.model.Types @@ -29,7 +28,7 @@ import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns class TFIncorrectVariableTypeInspection : LocalInspectionTool() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { val file = holder.file - if (file.fileType != TerraformFileType || file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION)) { + if (!TerraformPatterns.TerraformConfigFile.accepts(file)) { return super.buildVisitor(holder, isOnTheFly) } diff --git a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFNoInterpolationsAllowedInspection.kt b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFNoInterpolationsAllowedInspection.kt index dcc587b1..5afbdfae 100644 --- a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFNoInterpolationsAllowedInspection.kt +++ b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFNoInterpolationsAllowedInspection.kt @@ -26,7 +26,7 @@ import com.intellij.psi.InjectedLanguagePlaces import com.intellij.psi.PsiElementVisitor import com.intellij.util.ProcessingContext import org.intellij.plugins.hcl.psi.* -import org.intellij.plugins.hcl.terraform.config.TerraformFileType +import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns.ModuleRootBlock import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns.ResourceRootBlock import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns.TerraformRootBlock @@ -37,7 +37,7 @@ import java.util.* class TFNoInterpolationsAllowedInspection : LocalInspectionTool() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { val file = holder.file - if (file.fileType != TerraformFileType || file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION)) { + if (!TerraformPatterns.TerraformConfigFile.accepts(file)) { return super.buildVisitor(holder, isOnTheFly) } diff --git a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFVARSIncorrectElementInspection.kt b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFVARSIncorrectElementInspection.kt index 46c47ec6..f01f0ad9 100644 --- a/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFVARSIncorrectElementInspection.kt +++ b/src/kotlin/org/intellij/plugins/hcl/terraform/config/inspection/TFVARSIncorrectElementInspection.kt @@ -24,16 +24,16 @@ import com.intellij.psi.PsiElementVisitor import com.intellij.psi.PsiFile import org.intellij.plugins.hcl.psi.* import org.intellij.plugins.hcl.psi.impl.HCLStringLiteralMixin -import org.intellij.plugins.hcl.terraform.config.TerraformFileType import org.intellij.plugins.hcl.terraform.config.model.TypeModel import org.intellij.plugins.hcl.terraform.config.model.Types import org.intellij.plugins.hcl.terraform.config.model.getTerraformModule import org.intellij.plugins.hcl.terraform.config.model.getValueType +import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns class TFVARSIncorrectElementInspection : LocalInspectionTool() { override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { val file = holder.file - if (file.fileType != TerraformFileType || !file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION)) { + if (!TerraformPatterns.TerraformVariablesFile.accepts(file)) { return super.buildVisitor(holder, isOnTheFly) } diff --git a/src/kotlin/org/intellij/plugins/hil/ILLanguageInjector.kt b/src/kotlin/org/intellij/plugins/hil/ILLanguageInjector.kt index ed796447..4d2794be 100644 --- a/src/kotlin/org/intellij/plugins/hil/ILLanguageInjector.kt +++ b/src/kotlin/org/intellij/plugins/hil/ILLanguageInjector.kt @@ -23,7 +23,7 @@ import org.intellij.plugins.hcl.psi.HCLFile import org.intellij.plugins.hcl.psi.HCLHeredocContent import org.intellij.plugins.hcl.psi.HCLStringLiteral import org.intellij.plugins.hcl.psi.impl.HCLPsiImplUtils -import org.intellij.plugins.hcl.terraform.config.TerraformFileType +import org.intellij.plugins.hcl.terraform.config.patterns.TerraformPatterns import org.intellij.plugins.hil.HILElementTypes.INTERPOLATION_END import org.intellij.plugins.hil.HILElementTypes.INTERPOLATION_START import org.intellij.plugins.hil.psi.HILLexer @@ -41,7 +41,7 @@ class ILLanguageInjector : LanguageInjector { val file = host.containingFile if (file !is HCLFile || !file.isInterpolationsAllowed()) return // Restrict interpolations in .tfvars files // TODO: This file shouldn't know about .tfvars here - if (file.fileType == TerraformFileType && file.name.endsWith("." + TerraformFileType.TFVARS_EXTENSION)) return + if (TerraformPatterns.TerraformVariablesFile.accepts(file)) return if (host is HCLStringLiteral) return getStringLiteralInjections(host, places) if (host is HCLHeredocContent) return getHCLHeredocContentInjections(host, places) return