package org.jetbrains.plugins.clojure.psi.impl; import com.intellij.openapi.components.ProjectComponent; import com.intellij.openapi.project.Project; import com.intellij.openapi.application.ApplicationManager; import com.intellij.psi.PsiFileFactory; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.clojure.file.ClojureFileType; /** * @author ilyas */ public class ClojurePsiManager implements ProjectComponent { private final Project myProject; private PsiFile myDummyFile; public ClojurePsiManager(Project project) { myProject = project; } public void projectOpened() { } public void projectClosed() { } @NotNull public String getComponentName() { return "ClojurePsiManager"; } public void initComponent() { ApplicationManager.getApplication().runReadAction(new Runnable() { public void run() { final String dummyFn = "dummy." + ClojureFileType.CLOJURE_FILE_TYPE.getDefaultExtension(); myDummyFile = PsiFileFactory.getInstance(myProject) .createFileFromText(dummyFn, ClojureFileType.CLOJURE_FILE_TYPE, ""); } }); } public void disposeComponent() { } public static ClojurePsiManager getInstance(Project project) { return project.getComponent(ClojurePsiManager.class); } public PsiFile getDummyFile() { return myDummyFile; } }