com.intellij.psi.templateLanguages.TemplateDataLanguageMappings#com.intellij.psi.templateLanguages.TemplateLanguage源码实例Demo

下面列出了com.intellij.psi.templateLanguages.TemplateDataLanguageMappings#com.intellij.psi.templateLanguages.TemplateLanguage 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public FluidFileViewProvider(PsiManager manager, VirtualFile file, boolean physical) {
    super(manager, file, physical);

    Language dataLang = TemplateDataLanguageMappings.getInstance(manager.getProject()).getMapping(file);
    if (dataLang == null) {
        dataLang = StdFileTypes.HTML.getLanguage();
    }

    if (dataLang instanceof TemplateLanguage) {
        myTemplateDataLanguage = PlainTextLanguage.INSTANCE;
    } else {
        // The substitutor signals, that a files content should be substituted
        Language mySubstitutedLanguage = LanguageSubstitutors.INSTANCE.substituteLanguage(dataLang, file, manager.getProject());
        if (mySubstitutedLanguage == FluidLanguage.INSTANCE) {
            this.myTemplateDataLanguage = StdFileTypes.HTML.getLanguage();
        } else {
            this.myTemplateDataLanguage = mySubstitutedLanguage;
        }
    }
}
 
源代码2 项目: consulo   文件: LanguageUtil.java
public static boolean isInjectableLanguage(@Nonnull Language language) {
  if (language == Language.ANY) {
    return false;
  }
  if (language.getID().startsWith("$")) {
    return false;
  }
  if (language instanceof InjectableLanguage) {
    return true;
  }
  if (language instanceof TemplateLanguage) {
    return false;
  }
  if (LanguageParserDefinitions.INSTANCE.forLanguage(language) == null) {
    return false;
  }
  return true;
}
 
源代码3 项目: consulo   文件: LanguageUtil.java
public static boolean isInTemplateLanguageFile(@Nullable final PsiElement element) {
  if (element == null) return false;

  final PsiFile psiFile = element.getContainingFile();
  if(psiFile == null) return false;

  final Language language = psiFile.getViewProvider().getBaseLanguage();
  return language instanceof TemplateLanguage;
}
 
源代码4 项目: consulo   文件: StubVersionMap.java
private static int version(Object owner) {
  if (owner instanceof IStubFileElementType) {
    IStubFileElementType elementType = (IStubFileElementType)owner;
    if (elementType.getLanguage() instanceof TemplateLanguage && elementType.getStubVersion() < IStubFileElementType.getTemplateStubVersion()) {
      LOG.error(elementType.getLanguage() + " stub version should call super.getStubVersion()");
    }
    return elementType.getStubVersion();
  }
  else {
    return ((BinaryFileStubBuilder)owner).getStubVersion();
  }
}
 
源代码5 项目: consulo   文件: IStubFileElementType.java
private static int calcStubVersion() {
  IElementType[] dataElementTypes = IElementType.enumerate((elementType) -> elementType instanceof IStubFileElementType && !(elementType.getLanguage() instanceof TemplateLanguage));
  return Arrays.stream(dataElementTypes).mapToInt((e) -> ((IStubFileElementType)e).getStubVersion()).sum();
}
 
源代码6 项目: consulo   文件: IStubFileElementType.java
/**
 * Stub structure version. Should be incremented each time when stub tree changes (e.g. elements added/removed,
 * element serialization/deserialization changes).
 * Make sure to invoke super method for {@link TemplateLanguage} to prevent stub serialization problems due to
 * data language stub changes
 *
 * @return stub version
 */
public int getStubVersion() {
  return getLanguage() instanceof TemplateLanguage ? getTemplateStubVersion() : 0;
}