package com.igormaznitsa.ideamindmap.lang; import com.igormaznitsa.ideamindmap.filetype.MindMapFileType; import com.igormaznitsa.ideamindmap.utils.IdeaUtils; import com.intellij.extapi.psi.PsiFileBase; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtilCore; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.FileViewProvider; import com.intellij.psi.search.SearchScope; import javax.annotation.Nonnull; public class MMDFile extends PsiFileBase { public MMDFile(final FileViewProvider fileViewProvider) { super(fileViewProvider, MMLanguage.INSTANCE); } @Nonnull @Override public SearchScope getUseScope() { final Module module = ModuleUtilCore.findModuleForPsiElement(this); return module != null ? IdeaUtils.moduleScope(getProject(), module) : super.getUseScope(); } @Nonnull @Override public FileType getFileType() { return MindMapFileType.INSTANCE; } @Override public String toString() { final VirtualFile virtualFile = getVirtualFile(); return "MMDFile: " + (virtualFile != null? virtualFile.getName() : "<unknown>"); } }