@NotNull private static XmlFileHeader calcXmlFileHeader(final XmlFile file) { if (file instanceof PsiFileEx && ((PsiFileEx)file).isContentsLoaded() && file.getNode().isParsed()) { return computeHeaderByPsi(file); } if (!XmlUtil.isStubBuilding() && file.getFileType() == XmlFileType.INSTANCE) { VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile instanceof VirtualFileWithId) { ObjectStubTree tree = StubTreeLoader.getInstance().readFromVFile(file.getProject(), virtualFile); if (tree != null) { Stub root = tree.getRoot(); if (root instanceof FileStub) { return ((FileStub)root).getHeader(); } } } } if (!file.isValid()) return XmlFileHeader.EMPTY; return NanoXmlUtil.parseHeader(file); }
@NotNull @Override public Set<String> getClassNames(@NotNull PsiPackage psiPackage, @NotNull GlobalSearchScope scope) { Set<String> names = null; FileIndexFacade facade = FileIndexFacade.getInstance(myProject); for (PsiDirectory dir : psiPackage.getDirectories(scope)) { for (PsiFile file : dir.getFiles()) { if (file instanceof PsiClassOwner && file.getViewProvider().getLanguages().size() == 1) { VirtualFile vFile = file.getVirtualFile(); if (vFile != null && !(file instanceof PsiCompiledElement) && !facade.isInSourceContent(vFile) && (!scope.isForceSearchingInLibrarySources() || !StubTreeLoader.getInstance().canHaveStub(vFile))) { continue; } Set<String> inFile = file instanceof PsiClassOwnerEx ? ((PsiClassOwnerEx)file).getClassNames() : getClassNames(((PsiClassOwner)file).getClasses()); if (inFile.isEmpty()) continue; if (names == null) names = new HashSet<String>(); names.addAll(inFile); } } } return names == null ? Collections.<String>emptySet() : names; }
public static ElementStub getRootStub(@TestDataFile String filePath, JavaCodeInsightTestFixture fixture) { PsiFile psiFile = fixture.configureByFile(filePath); StubTreeLoader loader = StubTreeLoader.getInstance(); VirtualFile file = psiFile.getVirtualFile(); assertTrue(loader.canHaveStub(file)); ObjectStubTree stubTree = loader.readFromVFile(fixture.getProject(), file); assertNotNull(stubTree); ElementStub root = (ElementStub)stubTree.getRoot(); assertNotNull(root); return root; }
public void testNullTag() throws Exception { VirtualFile virtualFile = myFixture.copyFileToProject("nullTag.xml"); assertNotNull(virtualFile); PsiFile psiFile = ((PsiManagerEx)getPsiManager()).getFileManager().findFile(virtualFile); StubTreeLoader loader = StubTreeLoader.getInstance(); VirtualFile file = psiFile.getVirtualFile(); assertTrue(loader.canHaveStub(file)); ObjectStubTree stubTree = loader.readFromVFile(getProject(), file); assertNull(stubTree); // no stubs for invalid XML }
@NotNull private static XmlFileHeader calcXmlFileHeader(final XmlFile file) { if (file instanceof PsiFileEx && ((PsiFileEx)file).isContentsLoaded() && file.getNode().isParsed()) { return computeHeaderByPsi(file); } if (!XmlUtil.isStubBuilding() && file.getFileType() == XmlFileType.INSTANCE) { VirtualFile virtualFile = file.getVirtualFile(); if (virtualFile instanceof VirtualFileWithId) { ObjectStubTree tree = StubTreeLoader.getInstance().readFromVFile(file.getProject(), virtualFile); if (tree != null) { Stub root = tree.getRoot(); if (root instanceof FileStub) { return ((FileStub)root).getHeader(); } } } } if (!file.isValid()) return XmlFileHeader.EMPTY; if (XmlUtil.isStubBuilding() && file.getFileType() == XmlFileType.INSTANCE) { FileContent fileContent = file.getUserData(DomStubBuilder.CONTENT_FOR_DOM_STUBS); if (fileContent != null) { //noinspection IOResourceOpenedButNotSafelyClosed return NanoXmlUtil.parseHeader(new CharSequenceReader(fileContent.getContentAsText())); } } return NanoXmlUtil.parseHeader(file); }
public static ElementStub getRootStub(String filePath, JavaCodeInsightTestFixture fixture) { PsiFile psiFile = fixture.configureByFile(filePath); StubTreeLoader loader = StubTreeLoader.getInstance(); VirtualFile file = psiFile.getVirtualFile(); assertTrue(loader.canHaveStub(file)); ObjectStubTree stubTree = loader.readFromVFile(fixture.getProject(), file); assertNotNull(stubTree); ElementStub root = (ElementStub)stubTree.getRoot(); assertNotNull(root); return root; }
protected XmlFile prepareFile(String path) { XmlFile file = (XmlFile)myFixture.configureByFile(path); assertFalse(file.getNode().isParsed()); VirtualFile virtualFile = file.getVirtualFile(); assertNotNull(virtualFile); ObjectStubTree tree = StubTreeLoader.getInstance().readOrBuild(getProject(), virtualFile, file); assertNotNull(tree); ((PsiManagerImpl)getPsiManager()).cleanupForNextTest(); file = (XmlFile)getPsiManager().findFile(virtualFile); assertNotNull(file); return file; }
public void testNullTag() throws Exception { PsiFile psiFile = myFixture.configureByFile("nullTag.xml"); StubTreeLoader loader = StubTreeLoader.getInstance(); VirtualFile file = psiFile.getVirtualFile(); assertTrue(loader.canHaveStub(file)); ObjectStubTree stubTree = loader.readFromVFile(getProject(), file); assertNull(stubTree); // no stubs for invalid XML }
@NotNull @Override public Set<String> getClassNames(@NotNull PsiJavaPackage psiPackage, @NotNull GlobalSearchScope scope) { Set<String> names = null; FileIndexFacade facade = FileIndexFacade.getInstance(myProject); for(PsiDirectory dir : psiPackage.getDirectories(scope)) { for(PsiFile file : dir.getFiles()) { if(file instanceof PsiClassOwner && file.getViewProvider().getLanguages().size() == 1) { VirtualFile vFile = file.getVirtualFile(); if(vFile != null && !(file instanceof PsiCompiledElement) && !facade.isInSourceContent(vFile) && (!scope.isForceSearchingInLibrarySources() || !StubTreeLoader.getInstance().canHaveStub(vFile))) { continue; } Set<String> inFile = file instanceof PsiClassOwnerEx ? ((PsiClassOwnerEx) file).getClassNames() : getClassNames(((PsiClassOwner) file).getClasses()); if(inFile.isEmpty()) { continue; } if(names == null) { names = new HashSet<>(); } names.addAll(inFile); } } } return names == null ? Collections.<String>emptySet() : names; }
public CoreApplicationEnvironment(@NotNull Disposable parentDisposable) { myParentDisposable = parentDisposable; myFileTypeRegistry = new CoreFileTypeRegistry(); myApplication = createApplication(myParentDisposable); ApplicationManager.setApplication(myApplication, new StaticGetter<FileTypeRegistry>(myFileTypeRegistry), myParentDisposable); myLocalFileSystem = createLocalFileSystem(); myJarFileSystem = createJarFileSystem(); Extensions.registerAreaClass(ExtensionAreas.IDEA_PROJECT, null); final MutablePicoContainer appContainer = myApplication.getPicoContainer(); registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(new Function<CharSequence, Document>() { @Override public Document fun(CharSequence charSequence) { return new DocumentImpl(charSequence); } }, null)); VirtualFileSystem[] fs = {myLocalFileSystem, myJarFileSystem}; VirtualFileManagerImpl virtualFileManager = new VirtualFileManagerImpl(fs, MessageBusFactory.newMessageBus(myApplication)); registerComponentInstance(appContainer, VirtualFileManager.class, virtualFileManager); registerApplicationService(EncodingManager.class, new CoreEncodingRegistry()); registerApplicationService(VirtualFilePointerManager.class, createVirtualFilePointerManager()); registerApplicationService(DefaultASTFactory.class, new CoreASTFactory()); registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); registerApplicationService(ReferenceProvidersRegistry.class, new ReferenceProvidersRegistryImpl()); registerApplicationService(StubTreeLoader.class, new CoreStubTreeLoader()); registerApplicationService(PsiReferenceService.class, new PsiReferenceServiceImpl()); registerApplicationService(MetaDataRegistrar.class, new MetaRegistry()); registerApplicationService(ProgressManager.class, createProgressIndicatorProvider()); registerApplicationService(JobLauncher.class, createJobLauncher()); registerApplicationService(CodeFoldingSettings.class, new CodeFoldingSettings()); registerApplicationService(CommandProcessor.class, new CoreCommandProcessor()); myApplication.registerService(ApplicationInfo.class, ApplicationInfoImpl.class); }
public CoreApplicationEnvironment(Disposable parentDisposable) { myParentDisposable = parentDisposable; Extensions.cleanRootArea(myParentDisposable); myFileTypeRegistry = new CoreFileTypeRegistry(); myEncodingRegistry = new CoreEncodingRegistry(); myApplication = createApplication(myParentDisposable); ApplicationManager.setApplication(myApplication, new StaticGetter<FileTypeRegistry>(myFileTypeRegistry), new StaticGetter<EncodingRegistry>(myEncodingRegistry), myParentDisposable); myLocalFileSystem = createLocalFileSystem(); myJarFileSystem = createJarFileSystem(); Extensions.registerAreaClass(ExtensionAreas.IDEA_PROJECT, null); final MutablePicoContainer appContainer = myApplication.getPicoContainer(); registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(new Function<CharSequence, Document>() { @Override public Document fun(CharSequence charSequence) { return new DocumentImpl(charSequence); } }, null)); VirtualFileSystem[] fs = {myLocalFileSystem, myJarFileSystem}; VirtualFileManagerImpl virtualFileManager = new VirtualFileManagerImpl(fs, new MessageBusImpl(myApplication, null)); registerComponentInstance(appContainer, VirtualFileManager.class, virtualFileManager); registerApplicationService(VirtualFilePointerManager.class, createVirtualFilePointerManager()); myApplication.registerService(DefaultASTFactory.class, new CoreASTFactory()); myApplication.registerService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); myApplication.registerService(ReferenceProvidersRegistry.class, new MockReferenceProvidersRegistry()); myApplication.registerService(StubTreeLoader.class, new CoreStubTreeLoader()); myApplication.registerService(PsiReferenceService.class, new PsiReferenceServiceImpl()); myApplication.registerService(MetaDataRegistrar.class, new MetaRegistry()); registerApplicationExtensionPoint(ContentBasedFileSubstitutor.EP_NAME, ContentBasedFileSubstitutor.class); registerExtensionPoint(Extensions.getRootArea(), BinaryFileStubBuilders.EP_NAME, FileTypeExtensionPoint.class); registerExtensionPoint(Extensions.getRootArea(), FileContextProvider.EP_NAME, FileContextProvider.class); registerApplicationExtensionPoint(MetaDataContributor.EP_NAME, MetaDataContributor.class); ProgressIndicatorProvider.ourInstance = createProgressIndicatorProvider(); myApplication.registerService(JobLauncher.class, createJobLauncher()); }
public CoreApplicationEnvironment(@Nonnull Disposable parentDisposable) { myParentDisposable = parentDisposable; myFileTypeRegistry = new CoreFileTypeRegistry(); myApplication = createApplication(myParentDisposable); ApplicationManager.setApplication(myApplication, new StaticGetter<>(myFileTypeRegistry), myParentDisposable); myLocalFileSystem = createLocalFileSystem(); myJarFileSystem = createJarFileSystem(); Extensions.registerAreaClass(ExtensionAreas.PROJECT, null); final MutablePicoContainer appContainer = myApplication.getPicoContainer(); registerComponentInstance(appContainer, FileDocumentManager.class, new MockFileDocumentManagerImpl(DocumentImpl::new, null)); VirtualFileSystem[] fs = {myLocalFileSystem, myJarFileSystem}; VirtualFileManagerImpl virtualFileManager = new VirtualFileManagerImpl(fs, myApplication.getMessageBus()); registerComponentInstance(appContainer, VirtualFileManager.class, virtualFileManager); registerApplicationExtensionPoint(ASTLazyFactory.EP.getExtensionPointName(), ASTLazyFactory.class); registerApplicationExtensionPoint(ASTLeafFactory.EP.getExtensionPointName(), ASTLeafFactory.class); registerApplicationExtensionPoint(ASTCompositeFactory.EP.getExtensionPointName(), ASTCompositeFactory.class); addExtension(ASTLazyFactory.EP.getExtensionPointName(), new DefaultASTLazyFactory()); addExtension(ASTLeafFactory.EP.getExtensionPointName(), new DefaultASTLeafFactory()); addExtension(ASTCompositeFactory.EP.getExtensionPointName(), new DefaultASTCompositeFactory()); registerApplicationService(EncodingManager.class, new CoreEncodingRegistry()); registerApplicationService(VirtualFilePointerManager.class, createVirtualFilePointerManager()); registerApplicationService(PsiBuilderFactory.class, new PsiBuilderFactoryImpl()); registerApplicationService(ReferenceProvidersRegistry.class, new MockReferenceProvidersRegistry()); registerApplicationService(StubTreeLoader.class, new CoreStubTreeLoader()); registerApplicationService(PsiReferenceService.class, new PsiReferenceServiceImpl()); registerApplicationService(MetaDataRegistrar.class, new MetaRegistry()); registerApplicationService(ProgressManager.class, createProgressIndicatorProvider()); registerApplicationService(JobLauncher.class, createJobLauncher()); registerApplicationService(CodeFoldingSettings.class, new CodeFoldingSettings()); registerApplicationService(CommandProcessor.class, new CoreCommandProcessor()); myApplication.registerService(ApplicationInfo.class, ApplicationInfoImpl.class); }