下面列出了怎么用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;
}