package org.elixir_lang.beam; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; import com.intellij.psi.SingleRootFileViewProvider; import org.elixir_lang.ElixirLanguage; import org.elixir_lang.beam.psi.BeamFileImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class FileViewProvider extends SingleRootFileViewProvider { public FileViewProvider(@NotNull PsiManager manager, @NotNull VirtualFile file) { this(manager, file, true); } public FileViewProvider(@NotNull PsiManager manager, @NotNull VirtualFile virtualFile, boolean eventSystemEnabled) { super(manager, virtualFile, eventSystemEnabled, ElixirLanguage.INSTANCE); } @Nullable @Override protected PsiFile createFile(@NotNull Project project, @NotNull VirtualFile file, @NotNull FileType fileType) { return new BeamFileImpl(this); } @NotNull @Override public SingleRootFileViewProvider createCopy(@NotNull VirtualFile copy) { return new FileViewProvider(getManager(), copy, false); } }