package org.intellij.plugins.markdown.ui.preview;
import com.intellij.ide.scratch.ScratchFileService;
import com.intellij.ide.scratch.ScratchFileType;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.FileEditorPolicy;
import com.intellij.openapi.fileEditor.WeighedFileEditorProvider;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import org.intellij.plugins.markdown.lang.MarkdownFileType;
import org.intellij.plugins.markdown.lang.MarkdownLanguage;
import org.jetbrains.annotations.NotNull;
public class MarkdownPreviewFileEditorProvider extends WeighedFileEditorProvider {
@Override
public boolean accept(@NotNull Project project, @NotNull VirtualFile file) {
final FileType fileType = file.getFileType();
return fileType == MarkdownFileType.INSTANCE ||
fileType == ScratchFileType.INSTANCE && ScratchFileService.getInstance().getScratchesMapping().getMapping(file) ==
MarkdownLanguage.INSTANCE;
}
@NotNull
@Override
public FileEditor createEditor(@NotNull Project project, @NotNull VirtualFile file) {
return new MarkdownPreviewFileEditor(file);
}
@NotNull
@Override
public String getEditorTypeId() {
return "markdown-preview-editor";
}
@NotNull
@Override
public FileEditorPolicy getPolicy() {
return FileEditorPolicy.PLACE_AFTER_DEFAULT_EDITOR;
}
}