package com.dmarcotte.handlebars.pages; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurableProvider; import com.intellij.openapi.project.Project; import org.jetbrains.annotations.Nullable; /** * If we have "JavaScript" dependency * then configuration {@link com.dmarcotte.handlebars.pages.HbConfigurationPage} will be added to "JavaScript/Templates" over extension point * with name "JavaScript.lang.templates". * If there is no the dependency we should use this provider for adding configuration in common list */ public class HbConfigurationProvider extends ConfigurableProvider { private Project myProject; public HbConfigurationProvider(Project project) { myProject = project; } @Nullable @Override public Configurable createConfigurable() { return new HbConfigurationPage(myProject); } @Override public boolean canCreateConfigurable() { return !Extensions.getArea(myProject).hasExtensionPoint("JavaScript.lang.templates"); } }