diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageRuleBasedScanner.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageRuleBasedScanner.java
index 1773d190..9c910bc5 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageRuleBasedScanner.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageRuleBasedScanner.java
@@ -26,6 +26,7 @@ import org.eclipse.jface.text.rules.RuleBasedScanner;
import org.eclipse.jface.text.rules.Token;
import com.wudsn.ide.lng.preferences.LanguagePreferences;
+import com.wudsn.ide.lng.preferences.LanguagePreferencesConstants;
import com.wudsn.ide.lng.preferences.TextAttributeConverter;
/**
@@ -37,7 +38,6 @@ import com.wudsn.ide.lng.preferences.TextAttributeConverter;
final class LanguageRuleBasedScanner extends RuleBasedScanner {
// Key for preference store
- private LanguagePreferences languagePreferences;
private String preferencesKey;
// Default Token for the text attributes
@@ -47,21 +47,22 @@ final class LanguageRuleBasedScanner extends RuleBasedScanner {
* Creates a new instance. Called by {@link LanguageSourceViewerConfiguration}.
*
* @param languagePreferences The language preferences, not null
.
- * @param preferencesKey The preference key to listen to for text attribute
- * changes, not null
.
+ * @param textAttributeName The text attribute name to listen to for text
+ * attribute changes, not null
. See
+ * {@link LanguagePreferencesConstants}
*/
- LanguageRuleBasedScanner(LanguagePreferences languagePreferences, String preferencesKey) {
+ LanguageRuleBasedScanner(LanguagePreferences languagePreferences, String textAttributeName) {
if (languagePreferences == null) {
throw new IllegalArgumentException("Parameter 'language' must not be null.");
}
- if (preferencesKey == null) {
- throw new IllegalArgumentException("Parameter 'preferencesKey' must not be null.");
+ if (textAttributeName == null) {
+ throw new IllegalArgumentException("Parameter 'textAttributeName' must not be null.");
}
- this.languagePreferences = languagePreferences;
- this.preferencesKey = preferencesKey;
+ this.preferencesKey = LanguagePreferencesConstants.getPreferencesKey(languagePreferences.getLanguage(),
+ textAttributeName);
- defaultToken = new Token(languagePreferences.getEditorTextAttribute(preferencesKey));
+ defaultToken = new Token(languagePreferences.getEditorTextAttribute(textAttributeName));
super.setDefaultReturnToken(defaultToken);
}
@@ -91,10 +92,9 @@ final class LanguageRuleBasedScanner extends RuleBasedScanner {
throw new IllegalArgumentException("Parameter 'changedPropertyNames' must not be null.");
}
boolean refresh = false;
- if (preferences.getLanguage().equals(languagePreferences.getLanguage())
- && changedPropertyNames.contains(preferencesKey)) {
+ if (changedPropertyNames.contains(preferencesKey)) {
TextAttributeConverter.dispose((TextAttribute) defaultToken.getData());
- defaultToken.setData(preferences.getEditorTextAttribute(preferencesKey));
+ defaultToken.setData(preferences.getLanguagesPreferences().getEditorTextAttribute(preferencesKey));
refresh = true;
}
return refresh;
diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageSourceScanner.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageSourceScanner.java
index 7909755b..bfa6d9b7 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageSourceScanner.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/editor/LanguageSourceScanner.java
@@ -220,7 +220,8 @@ final class LanguageSourceScanner extends RuleBasedScanner {
}
}
}
- System.out.println("" + this + ":" + state.identifierWordTokens.size() + " identifier word tokens set: "+ state.identifierWordTokens); // TODO
+ System.out.println("" + this + ":" + state.identifierWordTokens.size() + " identifier word tokens set: "
+ + state.identifierWordTokens); // TODO
}
/*
@@ -431,11 +432,11 @@ final class LanguageSourceScanner extends RuleBasedScanner {
if (textAttributeName == null) {
throw new IllegalArgumentException("Parameter 'textAttributeName' must not be null.");
}
- LanguagePreferences preferences;
- Token token;
- preferences = editor.getLanguagePreferences();
- token = new Token(preferences.getEditorTextAttribute(textAttributeName));
- tokens.put(textAttributeName, token);
+ LanguagePreferences preferences = editor.getLanguagePreferences();
+ String preferencesKey = LanguagePreferencesConstants.getPreferencesKey(preferences.getLanguage(),
+ textAttributeName);
+ Token token = new Token(preferences.getEditorTextAttribute(textAttributeName));
+ tokens.put(preferencesKey, token);
return token;
}
@@ -498,7 +499,7 @@ final class LanguageSourceScanner extends RuleBasedScanner {
Token token = tokens.get(propertyName);
if (token != null) {
TextAttributeConverter.dispose((TextAttribute) token.getData());
- token.setData(preferences.getEditorTextAttribute(propertyName));
+ token.setData(preferences.getLanguagesPreferences().getEditorTextAttribute(propertyName));
refresh = true;
} else if (LanguagePreferencesConstants.isCompilerTargetName(propertyName)) {
diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferences.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferences.java
index 0a9e0add..144693ea 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferences.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferences.java
@@ -40,7 +40,6 @@ public final class LanguagePreferences {
*/
private LanguagesPreferences languagesPreferences;
private Language language;
- private String languagePrefix;
/**
* Created by {@link AbstractIDEPlugin} only.
@@ -56,13 +55,16 @@ public final class LanguagePreferences {
}
this.languagesPreferences = languagesPreferences;
this.language = language;
- this.languagePrefix=language.name().toLowerCase()+".";
+ }
+
+ public LanguagesPreferences getLanguagesPreferences() {
+ return languagesPreferences;
}
public Language getLanguage() {
return language;
}
-
+
/**
* Gets the default case content assist.
*
@@ -111,14 +113,16 @@ public final class LanguagePreferences {
* the default value false
if there is no preference with the given
* name, or if the current value cannot be treated as a boolean.
*
- * @param name The name of the preference, not null
.
+ * @param preferencesKeySuffix The he preferences key suffix of the preference,
+ * not null
.
* @return The preference value.
*/
- boolean getBoolean(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'name' must not be null.");
+ boolean getBoolean(String preferencesKeySuffix) {
+ if (preferencesKeySuffix == null) {
+ throw new IllegalArgumentException("Parameter 'preferencesKeySuffix' must not be null.");
}
- return languagesPreferences.getBoolean(languagePrefix+ name);
+ return languagesPreferences
+ .getBoolean(LanguagePreferencesConstants.getPreferencesKey(language, preferencesKeySuffix));
}
/**
@@ -127,29 +131,32 @@ public final class LanguagePreferences {
* there is no preference with the given name, or if the current value cannot be
* treated as a string.
*
- * @param name The name of the preference, not null
.
+ * @param preferencesKeySuffix The preferences key suffix of the preference, not
+ * null
.
* @return The preference value, may be empty, not null
.
*/
- String getString(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'name' must not be null.");
+ String getString(String preferencesKeySuffix) {
+ if (preferencesKeySuffix == null) {
+ throw new IllegalArgumentException("Parameter 'preferencesKeySuffix' must not be null.");
}
- return languagesPreferences.getString(languagePrefix + name);
+ return languagesPreferences
+ .getString(LanguagePreferencesConstants.getPreferencesKey(language, preferencesKeySuffix));
}
/**
* Gets the text attribute for a token type.
*
- * @param name The name of the preferences for the token type, see
- * {@link LanguagePreferencesConstants}.
+ * @param textAttributeName The suffix of the preferences for the token type,
+ * see {@link LanguagePreferencesConstants}.
*
* @return The text attribute, not null
.
*/
- public TextAttribute getEditorTextAttribute(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'name' must not be null.");
+ public TextAttribute getEditorTextAttribute(String textAttributeName) {
+ if (textAttributeName == null) {
+ throw new IllegalArgumentException("Parameter 'textAttributeName' must not be null.");
}
- return languagesPreferences.getEditorTextAttribute(languagePrefix+ name);
+ return languagesPreferences
+ .getEditorTextAttribute(LanguagePreferencesConstants.getPreferencesKey(language, textAttributeName));
}
diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesConstants.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesConstants.java
index f51c4e31..98cc005d 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesConstants.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesConstants.java
@@ -27,7 +27,8 @@ import com.wudsn.ide.lng.Language;
import com.wudsn.ide.lng.Texts;
/**
- * Constants for preferences.
+ * Constants for preferences. The string constants are preferences key suffix
+ * that are not used directly but prefixes with the language.
*
* @author Peter Dell
*/
@@ -121,6 +122,18 @@ public final class LanguagePreferencesConstants {
*/
static final String EDITOR_COMPILE_COMMAND_POSITIONING_MODE = "editor.compile.command.positioning.mode"; //$NON-NLS-1$
+ /**
+ * Create the preferences key for a property of a given language.
+ *
+ * @param language The language, not null
+ * @param preferencesKeySuffix The suffix as defined by the constants of this
+ * class, not empty, not null
+ * @return
+ */
+ public static String getPreferencesKey(Language language, String preferencesKeySuffix) {
+ return language.name().toLowerCase() + "." + preferencesKeySuffix;
+ }
+
/**
* Get list of all preferences keys that depend on the global JFact text font
* setting.
@@ -133,40 +146,45 @@ public final class LanguagePreferencesConstants {
List result = new ArrayList();
// Comments and literals
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_COMMENT,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_COMMENT),
Texts.PREFERENCES_TEXT_ATTRIBUTE_COMMENT_NAME));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_NUMBER,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_NUMBER),
Texts.PREFERENCES_TEXT_ATTRIBUTE_NUMBER_NAME));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_STRING,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_STRING),
Texts.PREFERENCES_TEXT_ATTRIBUTE_STRING_NAME));
switch (language) {
case ASM: {
// Built-in
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_DIRECTVE,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_DIRECTVE),
Texts.PREFERENCES_TEXT_ATTRIBUTE_DIRECTIVE));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_OPCODE_ILLEGAL,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_OPCODE_ILLEGAL),
+ Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_ILLEGAL_NAME));
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_OPCODE_LEGAL),
Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_LEGAL_NAME));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_OPCODE_LEGAL,
- Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_LEGAL_NAME));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_OPCODE_PSEUDO,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_OPCODE_PSEUDO),
Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_PSEUDO_NAME));
// Identifiers
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_EQUATE,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_EQUATE),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_EQUATE));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LABEL,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LABEL),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_LABEL));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LOCAL_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LOCAL_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_LOCAL_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_MACRO_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_MACRO_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_MACRO_DEFINITION_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION));
break;
@@ -175,15 +193,18 @@ public final class LanguagePreferencesConstants {
case PAS: {
// Built-in
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_DIRECTVE,
+ result.add(new TextAttributeDefinition(getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_DIRECTVE),
Texts.PREFERENCES_TEXT_ATTRIBUTE_DIRECTIVE));
// Identifiers
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION));
- result.add(new TextAttributeDefinition(EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION,
+ result.add(new TextAttributeDefinition(
+ getPreferencesKey(language, EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION),
Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION));
break;
diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesPage.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesPage.java
index 75e89275..5621f6de 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesPage.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagePreferencesPage.java
@@ -58,8 +58,8 @@ import org.eclipse.ui.model.WorkbenchViewerComparator;
import com.wudsn.ide.base.common.ProcessWithLogs;
import com.wudsn.ide.base.gui.SWTFactory;
-import com.wudsn.ide.lng.LanguagePlugin;
import com.wudsn.ide.lng.Language;
+import com.wudsn.ide.lng.LanguagePlugin;
import com.wudsn.ide.lng.Texts;
import com.wudsn.ide.lng.compiler.CompilerDefinition;
import com.wudsn.ide.lng.compiler.CompilerRegistry;
@@ -104,7 +104,7 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
* The language.
*/
private Language language;
-
+
/**
* The owning plugin.
*/
@@ -121,11 +121,6 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
*/
private String activeCompilerId;
- /**
- * The list of all text attributes and the corresponding preferences keys.
- */
- private String[][] textAttributeListItemKeys;
-
/**
* List for text attribute items.
*/
@@ -163,37 +158,6 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
plugin = LanguagePlugin.getInstance();
setPreferenceStore(plugin.getPreferenceStore());
changedPropertyNames = new TreeSet();
-
- textAttributeListItemKeys = new String[][] {
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_COMMENT_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_COMMENT },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_NUMBER_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_NUMBER },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_STRING_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_STRING },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_DIRECTIVE,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_DIRECTVE },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_LEGAL_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_OPCODE_LEGAL },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_ILLEGAL_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_OPCODE_ILLEGAL },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_OPCODE_PSEUDO_NAME,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_OPCODE_PSEUDO },
-
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_EQUATE,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_EQUATE },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_LABEL,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LABEL },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_ENUM_DEFINITION_SECTION },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_STRUCTURE_DEFINITION_SECTION },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_LOCAL_SECTION,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_LOCAL_SECTION },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_MACRO_DEFINITION_SECTION,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_MACRO_DEFINITION_SECTION },
- { Texts.PREFERENCES_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION,
- LanguagePreferencesConstants.EDITOR_TEXT_ATTRIBUTE_IDENTIFIER_PROCEDURE_DEFINITION_SECTION } };
}
@Override
@@ -395,15 +359,11 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
.getTextAttributeDefinitions(language);
textAttributeListItems = new ArrayList(textAttributeDefinitions.size());
- for (TextAttributeDefinition textAttributeDefinition: textAttributeDefinitions) {
- String data;
- TextAttribute textAttribute;
- TextAttributeListItem item;
+ for (TextAttributeDefinition textAttributeDefinition : textAttributeDefinitions) {
+ String data = getPreferenceStore().getString(textAttributeDefinition.getPreferencesKey());
+ TextAttribute textAttribute = TextAttributeConverter.fromString(data);
- data = getPreferenceStore().getString(textAttributeDefinition.getPreferencesKey());
- textAttribute = TextAttributeConverter.fromString(data);
-
- item = new TextAttributeListItem(textAttributeDefinition);
+ TextAttributeListItem item = new TextAttributeListItem(textAttributeDefinition);
item.setTextAttribute(textAttribute);
textAttributeListItems.add(item);
}
@@ -510,7 +470,10 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
public boolean performOk() {
if (super.performOk()) {
saveChanges();
+ plugin.log("Language preferences changed for language '{0}': {1}",
+ new Object[] { language, String.join(",", changedPropertyNames) });
plugin.firePreferencesChangeEvent(language, changedPropertyNames);
+
return true;
}
return false;
@@ -527,8 +490,9 @@ public abstract class LanguagePreferencesPage extends FieldEditorPreferencePage
super.performDefaults();
IPreferenceStore preferencesStore = getPreferenceStore();
- for (int i = 0, n = textAttributeListItemKeys.length; i < n; i++) {
- String key = textAttributeListItemKeys[i][1];
+ for (TextAttributeListItem listItem : textAttributeListItems) {
+
+ String key = listItem.getDefinition().getPreferencesKey();
preferencesStore.setValue(key, preferencesStore.getDefaultString(key));
addChangedProperty(key);
}
diff --git a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagesPreferences.java b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagesPreferences.java
index 60397ba6..206b4d87 100644
--- a/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagesPreferences.java
+++ b/com.wudsn.ide.lng/src/com/wudsn/ide/lng/preferences/LanguagesPreferences.java
@@ -24,6 +24,7 @@ import org.eclipse.jface.text.TextAttribute;
import com.wudsn.ide.base.common.AbstractIDEPlugin;
import com.wudsn.ide.lng.Language;
+
/**
* Facade class for typed access to the plugin preferences.
*
@@ -48,8 +49,6 @@ public final class LanguagesPreferences {
this.preferenceStore = preferenceStore;
}
-
-
/**
* Gets the preferences for a language.
*
@@ -62,25 +61,23 @@ public final class LanguagesPreferences {
throw new IllegalArgumentException("Parameter 'language' must not be null.");
}
-
return new LanguagePreferences(this, language);
}
-
/**
* Gets the current value of the boolean preference with the given name. Returns
* the default-default value false
if there is no preference with
* the given name, or if the current value cannot be treated as a boolean.
*
- * @param name The name of the preference, not null
.
+ * @param preferencesKey The key of the preference, not null
.
* @return The preference value.
*/
- boolean getBoolean(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'key' must not be null.");
+ boolean getBoolean(String preferencesKey) {
+ if (preferencesKey == null) {
+ throw new IllegalArgumentException("Parameter 'preferencesKey' must not be null.");
}
- return preferenceStore.getBoolean(name);
+ return preferenceStore.getBoolean(preferencesKey);
}
/**
@@ -89,15 +86,15 @@ public final class LanguagesPreferences {
* there is no preference with the given name, or if the current value cannot be
* treated as a string.
*
- * @param name The name of the preference, not null
.
+ * @param preferencesKey The key of the preference, not null
.
* @return The preference value, may be empty, not null
.
*/
- String getString(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'key' must not be null.");
+ String getString(String preferencesKey) {
+ if (preferencesKey == null) {
+ throw new IllegalArgumentException("Parameter 'preferencesKey' must not be null.");
}
String result;
- result = preferenceStore.getString(name);
+ result = preferenceStore.getString(preferencesKey);
if (result == null) {
result = "";
} else {
@@ -106,22 +103,21 @@ public final class LanguagesPreferences {
return result;
}
-
+
/**
* Gets the text attribute for a token type.
*
- * @param name The name of the preferences for the token type, see
- * {@link LanguagePreferencesConstants}.
+ * @param preferencesKey The key of the preference, not null
.
*
* @return The text attribute, not null
.
*
*/
- TextAttribute getEditorTextAttribute(String name) {
- if (name == null) {
- throw new IllegalArgumentException("Parameter 'name' must not be null.");
+ public TextAttribute getEditorTextAttribute(String preferencesKey) {
+ if (preferencesKey == null) {
+ throw new IllegalArgumentException("Parameter 'preferencesKey' must not be null.");
}
-
- return TextAttributeConverter.fromString(preferenceStore.getString(name));
+
+ return TextAttributeConverter.fromString(preferenceStore.getString(preferencesKey));
}
}
\ No newline at end of file