@Override protected EditorEx createEditor() { final EditorEx ex = super.createEditor(); if (myLanguage != null) { final FileType fileType = myLanguage.getAssociatedFileType(); ex.setHighlighter(HighlighterFactory.createHighlighter(myProject, fileType)); } ex.setEmbeddedIntoDialogWrapper(true); return ex; }
@Nullable private static LanguageFileType substituteFileType( Language language, VirtualFile vFile, Project project) { LanguageFileType fileType = null; if (vFile != null && project != null) { Language substLanguage = LanguageSubstitutors.INSTANCE.substituteLanguage(language, vFile, project); if (substLanguage != language) { fileType = substLanguage.getAssociatedFileType(); } } return fileType; }
@NotNull public static FileType substituteFileType( VirtualFile file, @NotNull FileType fileType, Project project) { if (project == null) { return fileType; } if (fileType instanceof LanguageFileType) { final Language language = ((LanguageFileType) fileType).getLanguage(); final Language substitutedLanguage = LanguageSubstitutors.INSTANCE.substituteLanguage(language, file, project); LanguageFileType substFileType = substitutedLanguage.getAssociatedFileType(); if (!substitutedLanguage.equals(language) && substFileType != null) { return new SubstitutedFileType(fileType, substFileType); } } return fileType; }
public LanguageTextField( @Nullable Language language, @Nullable Project project, @NotNull String value, @NotNull DocumentCreator documentCreator, boolean oneLineMode) { super( documentCreator.createDocument(value, language, project), project, language != null ? language.getAssociatedFileType() : StdFileTypes.PLAIN_TEXT, language == null, oneLineMode); myLanguage = language; myProject = project; setEnabled(language != null); }
private static Document createDocument( String value, @Nullable Language language, Project project, @NotNull SimpleDocumentCreator documentCreator) { if (language != null) { final PsiFileFactory factory = PsiFileFactory.getInstance(project); final FileType fileType = language.getAssociatedFileType(); assert fileType != null; final long stamp = LocalTimeCounter.currentTime(); final PsiFile psiFile = factory.createFileFromText( "Dummy." + fileType.getDefaultExtension(), fileType, value, stamp, true, false); documentCreator.customizePsiFile(psiFile); final Document document = PsiDocumentManager.getInstance(project).getDocument(psiFile); assert document != null; return document; } else { return EditorFactory.getInstance().createDocument(value); } }