| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package fuchsia.developer.plugin.fidl; |
| |
| import com.intellij.application.options.CodeStyleAbstractConfigurable; |
| import com.intellij.application.options.CodeStyleAbstractPanel; |
| import com.intellij.application.options.TabbedLanguageCodeStylePanel; |
| import com.intellij.psi.codeStyle.CodeStyleConfigurable; |
| import com.intellij.psi.codeStyle.CodeStyleSettings; |
| import com.intellij.psi.codeStyle.CodeStyleSettingsProvider; |
| import com.intellij.psi.codeStyle.CustomCodeStyleSettings; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| public class FidlCodeStyleSettingsProvider extends CodeStyleSettingsProvider { |
| |
| @Override |
| public CustomCodeStyleSettings createCustomSettings(CodeStyleSettings settings) { |
| return new FidlCodeStyleSettings(settings); |
| } |
| |
| @Nullable |
| @Override |
| public String getConfigurableDisplayName() { |
| return "FIDL"; |
| } |
| |
| @NotNull |
| public CodeStyleConfigurable createConfigurable( |
| @NotNull CodeStyleSettings settings, @NotNull CodeStyleSettings modelSettings) { |
| return new CodeStyleAbstractConfigurable( |
| settings, modelSettings, this.getConfigurableDisplayName()) { |
| @Override |
| protected CodeStyleAbstractPanel createPanel(CodeStyleSettings settings) { |
| return new FidlCodeStyleMainPanel(getCurrentSettings(), settings); |
| } |
| }; |
| } |
| |
| private static class FidlCodeStyleMainPanel extends TabbedLanguageCodeStylePanel { |
| public FidlCodeStyleMainPanel(CodeStyleSettings currentSettings, CodeStyleSettings settings) { |
| super(Language.INSTANCE, currentSettings, settings); |
| } |
| } |
| } |