@NotNull @Override public EditorHighlighter createEditorHighlighter( @NotNull VirtualFile vFile, @NotNull EditorColorsScheme settings, @Nullable Project project) { FileType fileType = vFile.getFileType(); if (fileType instanceof LanguageFileType) { LanguageFileType substFileType = substituteFileType(((LanguageFileType) fileType).getLanguage(), vFile, project); if (substFileType != null) { EditorHighlighterProvider provider = FileTypeEditorHighlighterProviders.INSTANCE.forFileType(substFileType); EditorHighlighter editorHighlighter = provider.getEditorHighlighter(project, fileType, vFile, settings); boolean isPlain = editorHighlighter.getClass() == LexerEditorHighlighter.class && ((LexerEditorHighlighter) editorHighlighter).isPlain(); if (!isPlain) { return editorHighlighter; } } try { return FileTypeEditorHighlighterProviders.INSTANCE .forFileType(fileType) .getEditorHighlighter(project, fileType, vFile, settings); } catch (ProcessCanceledException e) { throw e; } catch (Exception e) { LOG.error(e); } } SyntaxHighlighter highlighter = null; for (ContentBasedFileSubstitutor processor : Extensions.getExtensions(ContentBasedFileSubstitutor.EP_NAME)) { boolean applicable; try { applicable = processor.isApplicable(project, vFile); } catch (Exception e) { LOG.error(e); continue; } if (applicable && processor instanceof ContentBasedClassFileProcessor) { highlighter = ((ContentBasedClassFileProcessor) processor).createHighlighter(project, vFile); } } if (highlighter == null) { highlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(fileType, project, vFile); } return createEditorHighlighter(highlighter, settings); }
@NotNull @Override public EditorHighlighter createEditorHighlighter( @NotNull final FileType fileType, @NotNull final EditorColorsScheme settings, final Project project) { if (fileType instanceof LanguageFileType) { return FileTypeEditorHighlighterProviders.INSTANCE .forFileType(fileType) .getEditorHighlighter(project, fileType, null, settings); } SyntaxHighlighter highlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(fileType, project, null); return createEditorHighlighter(highlighter, settings); }
private EditorHighlighter createHighlighter() { if (myTemplate != null && myProject != null && myVelocityFileType != FileTypes.UNKNOWN) { return EditorHighlighterFactory.getInstance() .createEditorHighlighter( myProject, new LightVirtualFile("aaa." + myTemplate.getExtension() + ".ft")); } FileType fileType = null; if (myTemplate != null) { fileType = FileTypeManager.getInstance().getFileTypeByExtension(myTemplate.getExtension()); } if (fileType == null) { fileType = FileTypes.PLAIN_TEXT; } SyntaxHighlighter originalHighlighter = SyntaxHighlighterFactory.getSyntaxHighlighter(fileType, null, null); if (originalHighlighter == null) originalHighlighter = new PlainSyntaxHighlighter(); return new LexerEditorHighlighter( new TemplateHighlighter(originalHighlighter), EditorColorsManager.getInstance().getGlobalScheme()); }