package com.scss.settings; import com.intellij.openapi.components.*; import com.intellij.openapi.project.Project; import com.intellij.util.xmlb.XmlSerializerUtil; import org.jetbrains.annotations.Nullable; @State(name = "ScssLintProjectComponent", storages = { @Storage(id = "default", file = StoragePathMacros.PROJECT_FILE), @Storage(id = "dir", file = StoragePathMacros.PROJECT_CONFIG_DIR + "/scssLintPlugin.xml", scheme = StorageScheme.DIRECTORY_BASED)}) public class Settings implements PersistentStateComponent<Settings> { public String scssLintConfigFile = ""; public String scssLintExecutable = ""; public boolean treatAllIssuesAsWarnings; public boolean pluginEnabled; public static Settings getInstance(Project project) { return ServiceManager.getService(project, Settings.class); } @Nullable @Override public Settings getState() { return this; } @Override public void loadState(Settings state) { XmlSerializerUtil.copyBean(state, this); } public String getVersion() { return scssLintExecutable + scssLintConfigFile + treatAllIssuesAsWarnings; } }