类com.intellij.psi.codeStyle.CodeStyleSettingsProvider源码实例Demo

下面列出了怎么用com.intellij.psi.codeStyle.CodeStyleSettingsProvider的API类实例代码及写法,或者点击链接到github查看源代码。


@Override
protected Configurable[] buildConfigurables() {
  myPanels = new ArrayList<>();

  List<Configurable> result = new ArrayList<>();

  for (CodeStyleSettingsProvider provider : CodeStyleSettingsProvider.EXTENSION_POINT_NAME.getExtensions()) {
    boolean isGeneral = provider instanceof GeneralCodeStyleSettingsProvider;

    if (provider.hasSettingsPage()) {
      CodeStyleConfigurableWrapper wrapper = buildWrapper(provider);

      myPanels.add(wrapper);

      if (!isGeneral) {
        result.add(wrapper);
      }
      else {
        myRootConfigurable = wrapper;
      }
    }
  }

  return result.toArray(new Configurable[result.size()]);
}
 

@Override
protected void initTabs(CodeStyleSettings settings)
{
	super.initTabs(settings);
	for(CodeStyleSettingsProvider provider : Extensions.getExtensions(CodeStyleSettingsProvider.EXTENSION_POINT_NAME))
	{
		if(provider.getLanguage() == CSharpLanguage.INSTANCE && !provider.hasSettingsPage())
		{
			createTab(provider);
		}
	}
}
 

private CodeStyleConfigurableWrapper buildWrapper(CodeStyleSettingsProvider provider) {
  return new CodeStyleConfigurableWrapper(provider, new CodeStyleSettingsPanelFactory() {
    @Override
    public NewCodeStyleSettingsPanel createPanel(final CodeStyleScheme scheme) {
      return new NewCodeStyleSettingsPanel(provider.createSettingsPage(scheme.getCodeStyleSettings(), ensureModel().getCloneSettings(scheme)));
    }
  });
}
 

public CodeStyleConfigurableWrapper(@Nonnull CodeStyleSettingsProvider provider, @Nonnull CodeStyleSettingsPanelFactory factory) {
  myProvider = provider;
  myFactory = factory;
  myInitialResetInvoked = false;
}
 
 类所在包
 类方法
 同包方法