package com.dmarcotte.handlebars.config; import com.intellij.lang.html.HTMLLanguage; import org.jetbrains.annotations.NotNull; /** * Formalizes the properties which we will persist using {@link com.intellij.ide.util.PropertiesComponent} */ enum Property { AUTO_GENERATE_CLOSE_TAG { @NotNull @Override public String getStringName() { // please excuse the "disabled" in this name. This is an artifact from an earlier approach // to properties, which we keep for backwards compatibility return "HbDisableAutoGenerateCloseTag"; } @NotNull @Override public String getDefault() { return ENABLED; } }, AUTOCOMPLETE_MUSTACHES { @NotNull @Override public String getStringName() { return "HbAutocompleteMustaches"; } @NotNull @Override public String getDefault() { return ENABLED; } }, FORMATTER { @NotNull @Override public String getStringName() { return "HbFormatter"; } @NotNull @Override public String getDefault() { return ENABLED; } }, AUTO_COLLAPSE_BLOCKS { @NotNull @Override public String getStringName() { return "HbAutoCollapseBlocks"; } @NotNull @Override public String getDefault() { return DISABLED; } }, COMMENTER_LANGUAGE_ID { @NotNull @Override public String getStringName() { return "HbCommenterLanguageId"; } @NotNull @Override public String getDefault() { return HTMLLanguage.INSTANCE.getID(); } }, SHOULD_OPEN_HTML { @NotNull @Override public String getStringName() { return "HbShouldOpenHtmlAsHb"; } @NotNull @Override public String getDefault() { return ""; } }; public static final String ENABLED = "enabled"; public static final String DISABLED = "disabled"; /** * The String which will actually be persisted in a user's properties using {@link com.intellij.ide.util.PropertiesComponent}. * <p/> * This value must be unique amongst Property entries * <p/> * IMPORTANT: these should probably never change so that we don't lose a user's preferences between releases. */ @NotNull public abstract String getStringName(); /** * The default/initial value for a user */ @NotNull public abstract String getDefault(); }