@Override public void valueChange(OptionChangeEvent event) { for (VimExtension extension : Extensions.getExtensions(VimExtension.EP_NAME)) { if (name.equals(extension.getName())) { if (Options.getInstance().isSet(name)) { extension.init(); logger.info("IdeaVim extension '" + name + "' initialized"); } else { extension.dispose(); } } } } });
@Override protected void setUp() throws Exception { super.setUp(); CoreApplicationEnvironment.registerExtensionPoint( Extensions.getRootArea(), "com.intellij.lang.braceMatcher", LanguageExtensionPoint.class); } }
@NotNull public static GoApplicationRunConfigurationType getInstance() { return Extensions.findExtension(CONFIGURATION_TYPE_EP, GoApplicationRunConfigurationType.class); } }
public static void initExtensions(@NotNull MockProject project) { Extensions.getRootArea().registerExtensionPoint("com.intellij.referencesSearch", "com.intellij.util.QueryExecutor"); Extensions.getRootArea().registerExtensionPoint("com.intellij.useScopeEnlarger", "com.intellij.psi.search.UseScopeEnlarger"); Extensions.getRootArea().registerExtensionPoint("com.intellij.useScopeOptimizer", "com.intellij.psi.search.UseScopeOptimizer"); Extensions.getRootArea().registerExtensionPoint("com.intellij.languageInjector", "com.intellij.psi.LanguageInjector"); Extensions.getArea(project).registerExtensionPoint("com.intellij.multiHostInjector", "com.intellij.lang.injection.MultiHostInjector"); Extensions.getRootArea().registerExtensionPoint("com.intellij.codeInsight.containerProvider", "com.intellij.codeInsight.ContainerProvider"); Extensions.getRootArea().getExtensionPoint("com.intellij.referencesSearch").registerExtension(new CachesBasedRefSearcher()); registerApplicationService(project, PsiReferenceService.class, PsiReferenceServiceImpl.class); registerApplicationService(project, JobLauncher.class, JobLauncherImpl.class); registerApplicationService(project, AsyncFutureFactory.class, AsyncFutureFactoryImpl.class); project.registerService(PsiSearchHelper.class, PsiSearchHelperImpl.class); project.registerService(DumbService.class, DumbServiceImpl.class); project.registerService(ResolveCache.class, ResolveCache.class); project.registerService(PsiFileFactory.class, PsiFileFactoryImpl.class); try { project.registerService(JavaHelper.class, new JavaHelper.AsmHelper()); } catch (LinkageError e) { System.out.println("ASM not available, using reflection helper: " + e); project.registerService(JavaHelper.class, new JavaHelper.ReflectionHelper()); } project.registerService(InjectedLanguageManager.class, InjectedLanguageManagerImpl.class); ProgressManager.getInstance(); }
/** Sets up the container. */ @Before public final void setup() { // prevent memory leak error TestRunnerUtil.replaceIdeEventQueueSafely(); Disposable disposableParent = TestUtils.createMockApplication(); applicationContainer = (MutablePicoContainer) ApplicationManager.getApplication().getPicoContainer(); project = TestUtils.mockProject(applicationContainer); Extensions.cleanRootArea(disposableParent); extensionsArea = (ExtensionsAreaImpl) Extensions.getRootArea(); }
/** Construct a mock project. */ @NotNull public static MockProject mockProject(@Nullable PicoContainer container) { Extensions.registerAreaClass("IDEA_PROJECT", null); container = container != null ? container : new DefaultPicoContainer(); return new MockProject(container, getParentDisposableForCleanup()); }
projectJdkTable.addJdk(sdk); ExtensionsArea area = Extensions.getArea(myProject); registerExtensionPoint(area, ProjectExtension.EP_NAME, ProjectExtension.class);
public static void init() { if (!INITILAIZED.getAndSet(true)) { Extensions.registerAreaClass("IDEA_PROJECT", null); System.setProperty(TreeNavigator.OVERRIDE_TREE_NAVIGATOR_PROPERTY, MockTreeNavigator.class.getName()); LanguageParserDefinitions.INSTANCE.addExplicitExtension(SoyLanguage.INSTANCE, new SoyParserDefinition()); if (System.getProperty(PsiElementPath.TRACE_PATH_PROPERTY_NAME) == null) { System.setProperty(PsiElementPath.TRACE_PATH_PROPERTY_NAME, PsiElementPath.TRACE_PATH_BY_THREAD); } } }
@Test public void decorator_returnsTrue_noOtherDecorators_called() { // register two implementations for decorator extension point. // TODO(ivanporty) possibly make this part of CloudToolsRule using @ExtensionPoint signature. // TODO(ivanporty) figure out if it's possible to pass existing mocks instead of class names. Element extensionElement1 = new Element("cloudApiActionDecorator"); extensionElement1.setAttribute("implementation", TestDecoratorOne.class.getName()); Extensions.getArea(null) .registerExtension( new DefaultPluginDescriptor("com.gct.core"), extensionElement1, "com.google.gct.cloudapis"); Element extensionElement2 = new Element("cloudApiActionDecorator"); extensionElement2.setAttribute("implementation", TestDecoratorTwo.class.getName()); Extensions.getArea(null) .registerExtension( new DefaultPluginDescriptor("com.gct.core"), extensionElement2, "com.google.gct.cloudapis"); addCloudLibrariesAction.update(mockActionEvent); // make sure decorator that decorated an action stops other decoration. assertThat(TestDecoratorOne.decoratorCalled).isTrue(); assertThat(TestDecoratorTwo.decoratorCalled).isFalse(); }
private void registerExtensionOptions() { for (VimExtension extension : Extensions.getExtensions(VimExtension.EP_NAME)) { final String name = extension.getName(); final ToggleOption option = new ToggleOption(name, name, false); option.addOptionChangeListener(new OptionChangeListener() { @Override public void valueChange(OptionChangeEvent event) { for (VimExtension extension : Extensions.getExtensions(VimExtension.EP_NAME)) { if (name.equals(extension.getName())) { if (Options.getInstance().isSet(name)) { extension.init(); logger.info("IdeaVim extension '" + name + "' initialized"); } else { extension.dispose(); } } } } }); addOption(option); } }
@NotNull private ExtensionPoint<KeyedLazyInstance<Handler>> getPoint() { return Extensions.getRootArea().getExtensionPoint(myEpName); } }
@NotNull public static GoTestRunConfigurationType getInstance() { return Extensions.findExtension(CONFIGURATION_TYPE_EP, GoTestRunConfigurationType.class); } }
Extensions.registerAreaClass("IDEA_PROJECT", null); MockProjectEx project = new MockProjectEx(rootDisposable); MutablePicoContainer appContainer = application.getPicoContainer();
debouncedStatusesChanged.run(); for (AbstractProjectViewPane pane : Extensions.getExtensions(AbstractProjectViewPane.EP_NAME, myProject)) { if (pane.getTreeBuilder() != null) { pane.getTreeBuilder().queueUpdate();
public static <T> void registerExtensionPoint(ExtensionPointName<T> extensionPointName, final Class<T> aClass) { registerExtensionPoint(Extensions.getRootArea(), extensionPointName, aClass); }
@NotNull public static GoRunFileConfigurationType getInstance() { return Extensions.findExtension(CONFIGURATION_TYPE_EP, GoRunFileConfigurationType.class); } }
public void assertNavigationContains(PsiElement psiElement, String targetShortcut) { if(!targetShortcut.startsWith("\\")) { targetShortcut = "\\" + targetShortcut; } Set<String> classTargets = new HashSet<String>(); for (GotoDeclarationHandler gotoDeclarationHandler : Extensions.getExtensions(GotoDeclarationHandler.EP_NAME)) { PsiElement[] gotoDeclarationTargets = gotoDeclarationHandler.getGotoDeclarationTargets(psiElement, 0, myFixture.getEditor()); if(gotoDeclarationTargets != null && gotoDeclarationTargets.length > 0) { for (PsiElement gotoDeclarationTarget : gotoDeclarationTargets) { if(gotoDeclarationTarget instanceof Method) { String meName = ((Method) gotoDeclarationTarget).getName(); String clName = ((Method) gotoDeclarationTarget).getContainingClass().getPresentableFQN(); if(!clName.startsWith("\\")) { clName = "\\" + clName; } classTargets.add(clName + "::" + meName); } else if(gotoDeclarationTarget instanceof Function) { classTargets.add("\\" + ((Function) gotoDeclarationTarget).getName()); } } } } if(!classTargets.contains(targetShortcut)) { fail(String.format("failed that PsiElement (%s) navigate to %s on %s", psiElement.toString(), targetShortcut, classTargets.toString())); } }
@Override public <T> void registerExtension( @NotNull ExtensionPointName<T> extensionPoint, @NotNull T extension) { Extensions.getRootArea().getExtensionPoint(extensionPoint).registerExtension(extension); }
@NotNull public static GoAppEngineRunConfigurationType getInstance() { return Extensions.findExtension(CONFIGURATION_TYPE_EP, GoAppEngineRunConfigurationType.class); } }
private void assertNavigationIsEmpty() { PsiElement psiElement = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); for (GotoDeclarationHandler gotoDeclarationHandler : Extensions.getExtensions(GotoDeclarationHandler.EP_NAME)) { PsiElement[] gotoDeclarationTargets = gotoDeclarationHandler.getGotoDeclarationTargets(psiElement, 0, myFixture.getEditor()); if(gotoDeclarationTargets != null && gotoDeclarationTargets.length > 0) { fail(String.format("failed that PsiElement (%s) navigate is empty; found target in '%s'", psiElement.toString(), gotoDeclarationHandler.getClass())); } } }