package com.coffeelint.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 = "CoffeeLintProjectComponent",
storages = {
@Storage(id = "default", file = StoragePathMacros.PROJECT_FILE),
@Storage(id = "dir", file = StoragePathMacros.PROJECT_CONFIG_DIR + "/coffeelintPlugin.xml", scheme = StorageScheme.DIRECTORY_BASED)})
public class Settings implements PersistentStateComponent<Settings> {
public String configFile = "";
public String rulesPath = "";
public String builtinRulesPath = "";
public String extensions = "";
public String lintExecutable = "";
public String nodeInterpreter;
public boolean treatAllIssuesAsWarnings;
public boolean pluginEnabled;
protected Project project;
public static Settings getInstance(Project project) {
Settings settings = ServiceManager.getService(project, Settings.class);
settings.project = project;
return settings;
}
@Nullable
@Override
public Settings getState() {
return this;
}
@Override
public void loadState(Settings state) {
XmlSerializerUtil.copyBean(state, this);
}
public String getVersion() {
return nodeInterpreter + lintExecutable + configFile + rulesPath + builtinRulesPath + extensions;
}
}