package com.dmarcotte.handlebars.file; import com.dmarcotte.handlebars.HbLanguage; import com.dmarcotte.handlebars.config.HbConfig; import com.intellij.ide.highlighter.HtmlFileType; import com.intellij.lang.Language; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.LanguageSubstitutor; import com.intellij.testFramework.LightVirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class HbLanguageSubstitutor extends LanguageSubstitutor { @Nullable @Override public Language getLanguage(@NotNull VirtualFile file, @NotNull Project project) { if (HbConfig.shouldOpenHtmlAsHandlebars(project) && file.getFileType() == HtmlFileType.INSTANCE) { if (file instanceof LightVirtualFile) { return null; } return HbLanguage.INSTANCE; } return null; } }