Added auto activation for HTML characters (i.e. <&#) in the Preference Page
authorkhartlage <khartlage>
Tue, 8 Apr 2003 19:16:53 +0000 (19:16 +0000)
committerkhartlage <khartlage>
Tue, 8 Apr 2003 19:16:53 +0000 (19:16 +0000)
net.sourceforge.phpeclipse/plugin.xml
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUIMessages.properties
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/preferences/PHPEditorPreferencePage.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/ContentAssistPreference.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/PreferenceConstants.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/ui/text/JavaTextTools.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/PHPSyntaxEditorPreferencePage.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPSourceViewerConfiguration.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/HTMLCompletionProcessor.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/php/PHPCompletionProcessor.java

index e812fad..89e8568 100644 (file)
@@ -537,12 +537,12 @@ Temporarily replaced until errors can be ironed out...
             class="net.sourceforge.phpeclipse.PHPEclipseBasePreferencePage"
             id="net.sourceforge.phpeclipse.preference.PHPEclipsePreferencePage">
       </page>
-      <page
+  <!--    <page
             name="Editor2"
             category="net.sourceforge.phpeclipse.preference.PHPEclipsePreferencePage"
             class="net.sourceforge.phpeclipse.PHPSyntaxEditorPreferencePage"
             id="net.sourceforge.phpeclipse.preference.PHPSyntaxEditorPreferencePage">
-      </page>
+      </page>  -->
       <page
             name="Outline"
             category="net.sourceforge.phpeclipse.preference.PHPEclipsePreferencePage"
index 71fee91..c0b6a69 100644 (file)
@@ -284,6 +284,7 @@ PHPEditorPreferencePage.guessArgumentNamesOnMethodCompletion=&Guess filled argum
 PHPEditorPreferencePage.autoActivationDelay=Auto activation dela&y:
 PHPEditorPreferencePage.autoActivationTriggersForPHP=Auto activation &triggers for PHP:
 PHPEditorPreferencePage.autoActivationTriggersForPHPDoc=Auto activation triggers for &PHPDoc:
+PHPEditorPreferencePage.autoActivationTriggersForHTML=Auto activation triggers for &HTML:
 PHPEditorPreferencePage.backgroundForCompletionProposals=&Background for completion proposals:
 PHPEditorPreferencePage.foregroundForCompletionProposals=&Foreground for completion proposals:
 PHPEditorPreferencePage.backgroundForMethodParameters=Bac&kground for method parameters:
index 8e77100..d0f9277 100644 (file)
@@ -11,7 +11,6 @@ Contributors:
 
 package net.sourceforge.phpdt.internal.ui.preferences;
 
-
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -26,12 +25,15 @@ import net.sourceforge.phpdt.internal.ui.dialog.StatusUtil;
 import net.sourceforge.phpdt.internal.ui.util.TabFolderLayout;
 import net.sourceforge.phpdt.ui.PreferenceConstants;
 import net.sourceforge.phpdt.ui.text.JavaTextTools;
+import net.sourceforge.phpeclipse.IPreferenceConstants;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpeclipse.phpeditor.PHPEditorEnvironment;
 import net.sourceforge.phpeclipse.phpeditor.PHPSourceViewerConfiguration;
 import net.sourceforge.phpeclipse.preferences.ColorEditor;
+import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.preference.FileFieldEditor;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.preference.PreferencePage;
@@ -74,1196 +76,1253 @@ import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
  * The page for setting the editor options.
  */
 public class PHPEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-       
-       private static final String BOLD= PreferenceConstants.EDITOR_BOLD_SUFFIX;
-
-       public final OverlayPreferenceStore.OverlayKey[] fKeys= new OverlayPreferenceStore.OverlayKey[] {
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FOREGROUND_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BACKGROUND_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_TAB_WIDTH),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_TYPE_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_TYPE_BOLD),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_STRING_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_STRING_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MATCHING_BRACKETS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CURRENT_LINE_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CURRENT_LINE),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PRINT_MARGIN),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FIND_SCOPE_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINKED_POSITION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINK_COLOR),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PROBLEM_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WARNING_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_TASK_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_TASK_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BOOKMARK_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_UNKNOWN_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CORRECTION_INDICATION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_OVERVIEW_RULER),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_LINE_NUMBER_RULER),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SPACES_FOR_TABS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOACTIVATION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOINSERT),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND),            
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_CASE_SENSITIVITY),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ADDIMPORT),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_INSERT_COMPLETION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_PASTE),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_STRINGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACKETS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACES),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_JAVADOCS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WRAP_STRINGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FORMAT_JAVADOCS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_HOME_END),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_DEFAULT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_NONE_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_ALT_SHIFT_HOVER),
-       };
-       
-       private final String[][] fSyntaxColorListModel= new String[][] {
-               { PHPUIMessages.getString("PHPEditorPreferencePage.multiLineComment"), PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.singleLineComment"), PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.keywords"), PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.functionNames"), PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.variables"), PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.constants"), PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.types"), PreferenceConstants.EDITOR_PHP_TYPE_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.strings"), PreferenceConstants.EDITOR_STRING_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.others"), PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocKeywords"), PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocHtmlTags"), PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocLinks"), PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocOthers"), PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR } //$NON-NLS-1$
-       };
-       
-       private final String[][] fAppearanceColorListModel= new String[][] {
-               {PHPUIMessages.getString("PHPEditorPreferencePage.lineNumberForegroundColor"), PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.matchingBracketsHighlightColor2"), PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.currentLineHighlighColor"), PreferenceConstants.EDITOR_CURRENT_LINE_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColor2"), PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.findScopeColor2"), PreferenceConstants.EDITOR_FIND_SCOPE_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.linkedPositionColor2"), PreferenceConstants.EDITOR_LINKED_POSITION_COLOR}, //$NON-NLS-1$
-       {PHPUIMessages.getString("PHPEditorPreferencePage.linkColor2"), PreferenceConstants.EDITOR_LINK_COLOR}, //$NON-NLS-1$
-       };
-       
-       private final String[][] fProblemIndicationColorListModel= new String[][] {
-               {"Errors", PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR, PreferenceConstants.EDITOR_PROBLEM_INDICATION, PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER },
-               {"Warnings", PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR, PreferenceConstants.EDITOR_WARNING_INDICATION, PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER },
-               {"Tasks", PreferenceConstants.EDITOR_TASK_INDICATION_COLOR, PreferenceConstants.EDITOR_TASK_INDICATION, PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER },
-               {"Search Results", PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER },
-               {"Bookmarks", PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR, PreferenceConstants.EDITOR_BOOKMARK_INDICATION, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER },
-               {"Others", PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR, PreferenceConstants.EDITOR_UNKNOWN_INDICATION, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER }
-       };
-       
-       private OverlayPreferenceStore fOverlayStore;
-       private JavaTextTools fJavaTextTools;
-//     private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock;
-       
-       private Map fColorButtons= new HashMap();
-       private SelectionListener fColorButtonListener= new SelectionListener() {
-               public void widgetDefaultSelected(SelectionEvent e) {
-               }
-               public void widgetSelected(SelectionEvent e) {
-                       ColorEditor editor= (ColorEditor) e.widget.getData();
-                       PreferenceConverter.setValue(fOverlayStore, (String) fColorButtons.get(editor), editor.getColorValue());
-               }
-       };
-       
-       private Map fCheckBoxes= new HashMap();
-       private SelectionListener fCheckBoxListener= new SelectionListener() {
-               public void widgetDefaultSelected(SelectionEvent e) {
-               }
-               public void widgetSelected(SelectionEvent e) {
-                       Button button= (Button) e.widget;
-                       fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
-               }
-       };
-       
-       private Map fTextFields= new HashMap();
-       private ModifyListener fTextFieldListener= new ModifyListener() {
-               public void modifyText(ModifyEvent e) {
-                       Text text= (Text) e.widget;
-                       fOverlayStore.setValue((String) fTextFields.get(text), text.getText());
-               }
-       };
-
-       private ArrayList fNumberFields= new ArrayList();
-       private ModifyListener fNumberFieldListener= new ModifyListener() {
-               public void modifyText(ModifyEvent e) {
-                       numberFieldChanged((Text) e.widget);
-               }
-       };
-       
-       private WorkbenchChainedTextFontFieldEditor fFontEditor;
-       private List fSyntaxColorList;
-       private List fAppearanceColorList;
-       private List fProblemIndicationList;
-       private ColorEditor fSyntaxForegroundColorEditor;
-       private ColorEditor fAppearanceForegroundColorEditor;
-       private ColorEditor fProblemIndicationForegroundColorEditor;
-       private ColorEditor fBackgroundColorEditor;
-       private Button fBackgroundDefaultRadioButton;
-       private Button fBackgroundCustomRadioButton;
-       private Button fBackgroundColorButton;
-       private Button fBoldCheckBox;
-       // private Button fAddJavaDocTagsButton;
-       private Button fGuessMethodArgumentsButton;
-       private SourceViewer fPreviewViewer;
-       private Color fBackgroundColor;
-    private Control fAutoInsertDelayText;
-    private Control fAutoInsertJavaTriggerText;
-    private Control fAutoInsertJavaDocTriggerText;
-       private Button fShowInTextCheckBox;
-       private Button fShowInOverviewRulerCheckBox;
-       
-       public PHPEditorPreferencePage() {
-               setDescription(PHPUIMessages.getString("PHPEditorPreferencePage.description")); //$NON-NLS-1$
-               setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
-               fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(), fKeys);
-       }
-       
-       /*
-        * @see IWorkbenchPreferencePage#init()
-        */     
-       public void init(IWorkbench workbench) {
-       }
-
-       /*
-        * @see PreferencePage#createControl(Composite)
-        */
-       public void createControl(Composite parent) {
-               super.createControl(parent);
-       //      WorkbenchHelp.setHelp(getControl(), IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE);
-       }
-
-       private void handleSyntaxColorListSelection() { 
-               int i= fSyntaxColorList.getSelectionIndex();
-               String key= fSyntaxColorListModel[i][1];
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-               fSyntaxForegroundColorEditor.setColorValue(rgb);                
-               fBoldCheckBox.setSelection(fOverlayStore.getBoolean(key + BOLD));
-       }
-
-       private void handleAppearanceColorListSelection() {     
-               int i= fAppearanceColorList.getSelectionIndex();
-               String key= fAppearanceColorListModel[i][1];
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-               fAppearanceForegroundColorEditor.setColorValue(rgb);            
-       }
-       
-       private void handleProblemIndicationColorListSelection() {
-               int i= fProblemIndicationList.getSelectionIndex();
-               
-               String key= fProblemIndicationColorListModel[i][1];
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-               fProblemIndicationForegroundColorEditor.setColorValue(rgb);
-               
-               key= fProblemIndicationColorListModel[i][2];
-               fShowInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
-               
-               key= fProblemIndicationColorListModel[i][3];
-               fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));                               
-       }
-       
-       private Control createSyntaxPage(Composite parent) {
-               
-               Composite colorComposite= new Composite(parent, SWT.NULL);
-               colorComposite.setLayout(new GridLayout());
-
-               Group backgroundComposite= new Group(colorComposite, SWT.SHADOW_ETCHED_IN);
-               backgroundComposite.setLayout(new RowLayout());
-               backgroundComposite.setText(PHPUIMessages.getString("PHPEditorPreferencePage.backgroundColor"));//$NON-NLS-1$
-       
-               SelectionListener backgroundSelectionListener= new SelectionListener() {
-                       public void widgetSelected(SelectionEvent e) {                          
-                               boolean custom= fBackgroundCustomRadioButton.getSelection();
-                               fBackgroundColorButton.setEnabled(custom);
-                               fOverlayStore.setValue(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, !custom);
-                       }
-                       public void widgetDefaultSelected(SelectionEvent e) {}
-               };
-
-               fBackgroundDefaultRadioButton= new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
-               fBackgroundDefaultRadioButton.setText(PHPUIMessages.getString("PHPEditorPreferencePage.systemDefault")); //$NON-NLS-1$
-               fBackgroundDefaultRadioButton.addSelectionListener(backgroundSelectionListener);
-
-               fBackgroundCustomRadioButton= new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
-               fBackgroundCustomRadioButton.setText(PHPUIMessages.getString("PHPEditorPreferencePage.custom")); //$NON-NLS-1$
-               fBackgroundCustomRadioButton.addSelectionListener(backgroundSelectionListener);
-
-               fBackgroundColorEditor= new ColorEditor(backgroundComposite);
-               fBackgroundColorButton= fBackgroundColorEditor.getButton();
-
-               Label label= new Label(colorComposite, SWT.LEFT);
-               label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.foreground")); //$NON-NLS-1$
-               label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-               Composite editorComposite= new Composite(colorComposite, SWT.NONE);
-               GridLayout layout= new GridLayout();
-               layout.numColumns= 2;
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               editorComposite.setLayout(layout);
-               GridData gd= new GridData(GridData.FILL_BOTH);
-               editorComposite.setLayoutData(gd);              
-
-               fSyntaxColorList= new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
-               gd= new GridData(GridData.FILL_BOTH);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               fSyntaxColorList.setLayoutData(gd);
-                                               
-               Composite stylesComposite= new Composite(editorComposite, SWT.NONE);
-               layout= new GridLayout();
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               layout.numColumns= 2;
-               stylesComposite.setLayout(layout);
-               stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-               
-               label= new Label(stylesComposite, SWT.LEFT);
-               label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
-               gd= new GridData();
-               gd.horizontalAlignment= GridData.BEGINNING;
-               label.setLayoutData(gd);
-
-               fSyntaxForegroundColorEditor= new ColorEditor(stylesComposite);
-               Button foregroundColorButton= fSyntaxForegroundColorEditor.getButton();
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-               foregroundColorButton.setLayoutData(gd);
-               
-               fBoldCheckBox= new Button(stylesComposite, SWT.CHECK);
-        fBoldCheckBox.setText(PHPUIMessages.getString("PHPEditorPreferencePage.bold")); //$NON-NLS-1$
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fBoldCheckBox.setLayoutData(gd);
-               
-               label= new Label(colorComposite, SWT.LEFT);
-               label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.preview")); //$NON-NLS-1$
-               label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-               
-               Control previewer= createPreviewer(colorComposite);
-               gd= new GridData(GridData.FILL_BOTH);
-               gd.widthHint= convertWidthInCharsToPixels(20);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               previewer.setLayoutData(gd);
-
-               
-               fSyntaxColorList.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               handleSyntaxColorListSelection();
-                       }
-               });
-               
-               foregroundColorButton.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fSyntaxColorList.getSelectionIndex();
-                               String key= fSyntaxColorListModel[i][1];
-                               
-                               PreferenceConverter.setValue(fOverlayStore, key, fSyntaxForegroundColorEditor.getColorValue());
-                       }
-               });
-
-               fBackgroundColorButton.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               PreferenceConverter.setValue(fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR, fBackgroundColorEditor.getColorValue());                                       
-                       }
-               });
-
-               fBoldCheckBox.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fSyntaxColorList.getSelectionIndex();
-                               String key= fSyntaxColorListModel[i][1];
-                               fOverlayStore.setValue(key + BOLD, fBoldCheckBox.getSelection());
-                       }
-               });
-                               
-               return colorComposite;
-       }
-       
-       private Control createPreviewer(Composite parent) {
-               
-               fJavaTextTools= new JavaTextTools(fOverlayStore);
-               
-               fPreviewViewer= new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-               fPreviewViewer.configure(new PHPSourceViewerConfiguration(fJavaTextTools, null));
-               fPreviewViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
-               fPreviewViewer.setEditable(false);
-               
-               initializeViewerColors(fPreviewViewer);
-               
-               String content= loadPreviewContentFromFile("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
-               IDocument document= new Document(content);
-               PHPEditorEnvironment pe;
-               IDocumentPartitioner partitioner= fJavaTextTools.createDocumentPartitioner();
-               partitioner.connect(document);
-               document.setDocumentPartitioner(partitioner);
-               
-               fPreviewViewer.setDocument(document);
-               
-               fOverlayStore.addPropertyChangeListener(new IPropertyChangeListener() {
-                       public void propertyChange(PropertyChangeEvent event) {
-                               String p= event.getProperty();
-                               if (p.equals(PreferenceConstants.EDITOR_BACKGROUND_COLOR) ||
-                                       p.equals(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR))
-                               {
-                                       initializeViewerColors(fPreviewViewer);
-                               }
-                               
-                               fPreviewViewer.invalidateTextPresentation();
-                       }
-               });
-               
-               return fPreviewViewer.getControl();
-       }
-       
-       /**
-        * Initializes the given viewer's colors.
-        * 
-        * @param viewer the viewer to be initialized
-        */
-       private void initializeViewerColors(ISourceViewer viewer) {
-               
-               IPreferenceStore store= fOverlayStore;
-               if (store != null) {
-                       
-                       StyledText styledText= viewer.getTextWidget();
-                                               
-                       // ---------- background color ----------------------
-                       Color color= store.getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)
-                               ? null
-                               : createColor(store, PreferenceConstants.EDITOR_BACKGROUND_COLOR, styledText.getDisplay());
-                       styledText.setBackground(color);
-                               
-                       if (fBackgroundColor != null)
-                               fBackgroundColor.dispose();
-                               
-                       fBackgroundColor= color;
-               }
-       }
-
-       /**
-        * Creates a color from the information stored in the given preference store.
-        * Returns <code>null</code> if there is no such information available.
-        */
-       private Color createColor(IPreferenceStore store, String key, Display display) {
-       
-               RGB rgb= null;          
-               
-               if (store.contains(key)) {
-                       
-                       if (store.isDefault(key))
-                               rgb= PreferenceConverter.getDefaultColor(store, key);
-                       else
-                               rgb= PreferenceConverter.getColor(store, key);
-               
-                       if (rgb != null)
-                               return new Color(display, rgb);
-               }
-               
-               return null;
-       }       
-       
-       // sets enabled flag for a control and all its sub-tree
-       private static void setEnabled(Control control, boolean enable) {
-               control.setEnabled(enable);
-               if (control instanceof Composite) {
-                       Composite composite= (Composite) control;
-                       Control[] children= composite.getChildren();
-                       for (int i= 0; i < children.length; i++)
-                               setEnabled(children[i], enable);
-               }
-       }
-
-       private Control createAppearancePage(Composite parent) {
-
-               Composite appearanceComposite= new Composite(parent, SWT.NONE);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               appearanceComposite.setLayout(layout);
-
-               String label= PHPUIMessages.getString("PHPEditorPreferencePage.textFont"); //$NON-NLS-1$
-               addTextFontEditor(appearanceComposite, label, AbstractTextEditor.PREFERENCE_FONT);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$
-               addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
-               addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0, true);
-                               
-       //      label= PHPUIMessages.getString("PHPEditorPreferencePage.synchronizeOnCursor"); //$NON-NLS-1$
-       //      addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
-                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showLineNumbers"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_CURRENT_LINE, 0);
-                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN, 0);
-
-
-               Label l= new Label(appearanceComposite, SWT.LEFT );
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               gd.heightHint= convertHeightInCharsToPixels(1) / 2;
-               l.setLayoutData(gd);
-               
-               l= new Label(appearanceComposite, SWT.LEFT);
-               l.setText(PHPUIMessages.getString("PHPEditorPreferencePage.appearanceOptions")); //$NON-NLS-1$
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               l.setLayoutData(gd);
-
-               Composite editorComposite= new Composite(appearanceComposite, SWT.NONE);
-               layout= new GridLayout();
-               layout.numColumns= 2;
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               editorComposite.setLayout(layout);
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
-               gd.horizontalSpan= 2;
-               editorComposite.setLayoutData(gd);              
-
-               fAppearanceColorList= new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
-               gd= new GridData(GridData.FILL_BOTH);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               fAppearanceColorList.setLayoutData(gd);
-                                               
-               Composite stylesComposite= new Composite(editorComposite, SWT.NONE);
-               layout= new GridLayout();
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               layout.numColumns= 2;
-               stylesComposite.setLayout(layout);
-               stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-               
-               l= new Label(stylesComposite, SWT.LEFT);
-               l.setText(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
-               gd= new GridData();
-               gd.horizontalAlignment= GridData.BEGINNING;
-               l.setLayoutData(gd);
-
-               fAppearanceForegroundColorEditor= new ColorEditor(stylesComposite);
-               Button foregroundColorButton= fAppearanceForegroundColorEditor.getButton();
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-               foregroundColorButton.setLayoutData(gd);
-
-               fAppearanceColorList.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               handleAppearanceColorListSelection();
-                       }
-               });
-               foregroundColorButton.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fAppearanceColorList.getSelectionIndex();
-                               String key= fAppearanceColorListModel[i][1];
-                               
-                               PreferenceConverter.setValue(fOverlayStore, key, fAppearanceForegroundColorEditor.getColorValue());
-                       }
-               });
-               return appearanceComposite;
-       }
-       
-       
-       private Control createProblemIndicationPage(Composite parent) {
-               Composite composite= new Composite(parent, SWT.NULL);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               composite.setLayout(layout);
-                               
-               String text= "Analyse &problems while typing";
-               addCheckBox(composite, text, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
-               
-               text= PHPUIMessages.getString("PHPEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
-               addCheckBox(composite, text, PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
-               
-               Label label= new Label(composite, SWT.LEFT );
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               gd.heightHint= convertHeightInCharsToPixels(1) / 2;
-               label.setLayoutData(gd);
-               
-               label= new Label(composite, SWT.LEFT);
-               label.setText("&Marker presentation options:");
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               label.setLayoutData(gd);
-
-               Composite editorComposite= new Composite(composite, SWT.NONE);
-               layout= new GridLayout();
-               layout.numColumns= 2;
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               editorComposite.setLayout(layout);
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
-               gd.horizontalSpan= 2;
-               editorComposite.setLayoutData(gd);              
-
-               fProblemIndicationList= new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
-               gd= new GridData(GridData.FILL_BOTH);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               fProblemIndicationList.setLayoutData(gd);
-                                               
-               Composite optionsComposite= new Composite(editorComposite, SWT.NONE);
-               layout= new GridLayout();
-               layout.marginHeight= 0;
-               layout.marginWidth= 0;
-               layout.numColumns= 2;
-               optionsComposite.setLayout(layout);
-               optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-               
-               fShowInTextCheckBox= new Button(optionsComposite, SWT.CHECK);
-        fShowInTextCheckBox.setText("Show in &text");
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fShowInTextCheckBox.setLayoutData(gd);
-               
-               fShowInOverviewRulerCheckBox= new Button(optionsComposite, SWT.CHECK);
-        fShowInOverviewRulerCheckBox.setText("Show in overview &ruler");
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fShowInOverviewRulerCheckBox.setLayoutData(gd);
-               
-               label= new Label(optionsComposite, SWT.LEFT);
-               label.setText("C&olor:");
-               gd= new GridData();
-               gd.horizontalAlignment= GridData.BEGINNING;
-               label.setLayoutData(gd);
-
-               fProblemIndicationForegroundColorEditor= new ColorEditor(optionsComposite);
-               Button foregroundColorButton= fProblemIndicationForegroundColorEditor.getButton();
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-               foregroundColorButton.setLayoutData(gd);
-
-               fProblemIndicationList.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               handleProblemIndicationColorListSelection();
-                       }
-               });
-               
-               fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][2];
-                               fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
-                       }
-               });
-               
-               fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][3];
-                               fOverlayStore.setValue(key, fShowInOverviewRulerCheckBox.getSelection());
-                       }
-               });
-               
-               foregroundColorButton.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][1];
-                               PreferenceConverter.setValue(fOverlayStore, key, fProblemIndicationForegroundColorEditor.getColorValue());
-                       }
-               });
-               
-               return composite;
-       }
-
-//     private Control createBehaviourPage(Composite parent) {
-//             Composite composite= new Composite(parent, SWT.NULL);
-//             GridLayout layout= new GridLayout(); layout.numColumns= 2;
-//             composite.setLayout(layout);
-//
-//             String label= PHPUIMessages.getString("PHPEditorPreferencePage.wrapStrings"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_WRAP_STRINGS, 1);
-//             
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.smartHomeEnd"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.smartPaste"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.insertSpaceForTabs"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeStrings"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_STRINGS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBrackets"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBraces"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACES, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closePHPDocs"); //$NON-NLS-1$
-//             Button button= addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.addPHPDocTags"); //$NON-NLS-1$
-//             fAddJavaDocTagsButton= addCheckBox(composite, label, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
-//             createDependency(button, fAddJavaDocTagsButton);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.formatPHPDocs"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1);
-//     
-//             return composite;
-//     }
-       
-       private static void indent(Control control) {
-               GridData gridData= new GridData();
-               gridData.horizontalIndent= 20;
-               control.setLayoutData(gridData);                
-       }
-       
-       private static void createDependency(final Button master, final Control slave) {
-               indent(slave);
-               master.addSelectionListener(new SelectionListener() {
-                       public void widgetSelected(SelectionEvent e) {
-                               slave.setEnabled(master.getSelection());
-                       }
-
-                       public void widgetDefaultSelected(SelectionEvent e) {}
-               });             
-       }
-
-       private Control createContentAssistPage(Composite parent) {
-
-               Composite contentAssistComposite= new Composite(parent, SWT.NULL);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               contentAssistComposite.setLayout(layout);
-
-               String label= PHPUIMessages.getString("PHPEditorPreferencePage.insertSingleProposalsAutomatically"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOINSERT, 0);               
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showOnlyProposalsVisibleInTheInvocationContext"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.presentProposalsInAlphabeticalOrder"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.automaticallyAddImportInsteadOfQualifiedName"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ADDIMPORT, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.insertCompletion"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_INSERT_COMPLETION, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.fillArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
-               Button button= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.guessArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
-               fGuessMethodArgumentsButton= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, 0);
-               createDependency(button, fGuessMethodArgumentsButton);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.enableAutoActivation"); //$NON-NLS-1$
-               final Button autoactivation= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationDelay"); //$NON-NLS-1$
-               fAutoInsertDelayText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 4, 0, true);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHP"); //$NON-NLS-1$
-               fAutoInsertJavaTriggerText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, 4, 0, false);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHPDoc"); //$NON-NLS-1$
-               fAutoInsertJavaDocTriggerText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, 4, 0, false);
-                                                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionProposals"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionProposals"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForMethodParameters"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForMethodParameters"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionReplacement"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionReplacement"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, 0);
-               
-               autoactivation.addSelectionListener(new SelectionAdapter(){
-            public void widgetSelected(SelectionEvent e) {
-               updateAutoactivationControls();
-            }
-               });             
-               return contentAssistComposite;
-       }
-
-       /*
-        * @see PreferencePage#createContents(Composite)
-        */
-       protected Control createContents(Composite parent) {
-               
-               fOverlayStore.load();
-               fOverlayStore.start();
-               
-               TabFolder folder= new TabFolder(parent, SWT.NONE);
-               folder.setLayout(new TabFolderLayout());        
-               folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-               
-               TabItem item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.general")); //$NON-NLS-1$
-               item.setControl(createAppearancePage(folder));
-               
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.colors")); //$NON-NLS-1$
-               item.setControl(createSyntaxPage(folder));
-               
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.codeAssist")); //$NON-NLS-1$
-               item.setControl(createContentAssistPage(folder));
-
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.problemIndicationTab.title")); //$NON-NLS-1$
-               item.setControl(createProblemIndicationPage(folder));
-
-//             item= new TabItem(folder, SWT.NONE);
-//             item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.behaviourTab.title")); //$NON-NLS-1$
-//             item.setControl(createBehaviourPage(folder));
-
-//             item= new TabItem(folder, SWT.NONE);
-//             item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.hoverTab.title")); //$NON-NLS-1$
-//             fJavaEditorHoverConfigurationBlock= new JavaEditorHoverConfigurationBlock(fOverlayStore);
-//             item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
-               
-               initialize();
-               
-               return folder;
-       }
-       
-       private void initialize() {
-               
-               fFontEditor.setPreferenceStore(getPreferenceStore());
-               fFontEditor.setPreferencePage(this);
-               fFontEditor.load();
-               
-               initializeFields();
-               
-               for (int i= 0; i < fSyntaxColorListModel.length; i++)
-                       fSyntaxColorList.add(fSyntaxColorListModel[i][0]);
-                       
-               fSyntaxColorList.getDisplay().asyncExec(new Runnable() {
-                       public void run() {
-                               if (fSyntaxColorList != null && !fSyntaxColorList.isDisposed()) {
-                                       fSyntaxColorList.select(0);
-                                       handleSyntaxColorListSelection();
-                               }
-                       }
-               });
-               
-               for (int i= 0; i < fAppearanceColorListModel.length; i++)
-                       fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
-                       
-               fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
-                       public void run() {
-                               if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
-                                       fAppearanceColorList.select(0);
-                                       handleAppearanceColorListSelection();
-                               }
-                       }
-               });
-               
-               for (int i= 0; i < fProblemIndicationColorListModel.length; i++)
-                       fProblemIndicationList.add(fProblemIndicationColorListModel[i][0]);
-                       
-               fProblemIndicationList.getDisplay().asyncExec(new Runnable() {
-                       public void run() {
-                               if (fProblemIndicationList != null && !fProblemIndicationList.isDisposed()) {
-                                       fProblemIndicationList.select(0);
-                                       handleProblemIndicationColorListSelection();
-                               }
-                       }
-               });
-       }
-       
-       private void initializeFields() {
-               
-               Iterator e= fColorButtons.keySet().iterator();
-               while (e.hasNext()) {
-                       ColorEditor c= (ColorEditor) e.next();
-                       String key= (String) fColorButtons.get(c);
-                       RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-                       c.setColorValue(rgb);
-               }
-               
-               e= fCheckBoxes.keySet().iterator();
-               while (e.hasNext()) {
-                       Button b= (Button) e.next();
-                       String key= (String) fCheckBoxes.get(b);
-                       b.setSelection(fOverlayStore.getBoolean(key));
-               }
-               
-               e= fTextFields.keySet().iterator();
-               while (e.hasNext()) {
-                       Text t= (Text) e.next();
-                       String key= (String) fTextFields.get(t);
-                       t.setText(fOverlayStore.getString(key));
-               }
-               
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR);
-               fBackgroundColorEditor.setColorValue(rgb);              
-               
-               boolean default_= fOverlayStore.getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR);
-               fBackgroundDefaultRadioButton.setSelection(default_);
-               fBackgroundCustomRadioButton.setSelection(!default_);
-               fBackgroundColorButton.setEnabled(!default_);
-
-       //      boolean closeJavaDocs= fOverlayStore.getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS);
-       //      fAddJavaDocTagsButton.setEnabled(closeJavaDocs);
-
-               boolean fillMethodArguments= fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
-               fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
-               
+
+  private static final String BOLD = PreferenceConstants.EDITOR_BOLD_SUFFIX;
+
+  public final OverlayPreferenceStore.OverlayKey[] fKeys =
+    new OverlayPreferenceStore.OverlayKey[] {
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FOREGROUND_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BACKGROUND_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_TAB_WIDTH),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_TYPE_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_TYPE_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_STRING_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_STRING_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MATCHING_BRACKETS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CURRENT_LINE_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CURRENT_LINE),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PRINT_MARGIN),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FIND_SCOPE_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINKED_POSITION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINK_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PROBLEM_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WARNING_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_TASK_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_TASK_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BOOKMARK_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.STRING,
+        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_UNKNOWN_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CORRECTION_INDICATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_OVERVIEW_RULER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_LINE_NUMBER_RULER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SPACES_FOR_TABS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOACTIVATION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOINSERT),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.STRING,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.STRING,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC),
+      new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.STRING,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_CASE_SENSITIVITY),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ADDIMPORT),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_INSERT_COMPLETION),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_PASTE),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_STRINGS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACKETS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACES),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_JAVADOCS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WRAP_STRINGS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FORMAT_JAVADOCS),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_HOME_END),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_DEFAULT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_NONE_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SHIFT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_ALT_SHIFT_HOVER),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_USERDEF_XMLFILE),
+      };
+
+  private final String[][] fSyntaxColorListModel = new String[][] { { PHPUIMessages.getString("PHPEditorPreferencePage.multiLineComment"), PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.singleLineComment"), PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.keywords"), PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.functionNames"), PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.variables"), PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.constants"), PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.types"), PreferenceConstants.EDITOR_PHP_TYPE_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.strings"), PreferenceConstants.EDITOR_STRING_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.others"), PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.phpDocKeywords"), PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.phpDocHtmlTags"), PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.phpDocLinks"), PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.phpDocOthers"), PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR } //$NON-NLS-1$
+  };
+
+  private final String[][] fAppearanceColorListModel = new String[][] { { PHPUIMessages.getString("PHPEditorPreferencePage.lineNumberForegroundColor"), PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.matchingBracketsHighlightColor2"), PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.currentLineHighlighColor"), PreferenceConstants.EDITOR_CURRENT_LINE_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColor2"), PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.findScopeColor2"), PreferenceConstants.EDITOR_FIND_SCOPE_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.linkedPositionColor2"), PreferenceConstants.EDITOR_LINKED_POSITION_COLOR }, //$NON-NLS-1$
+    {
+      PHPUIMessages.getString("PHPEditorPreferencePage.linkColor2"), PreferenceConstants.EDITOR_LINK_COLOR }, //$NON-NLS-1$
+  };
+
+  private final String[][] fProblemIndicationColorListModel =
+    new String[][] {
+      {
+        "Errors",
+        PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_PROBLEM_INDICATION,
+        PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER },
+      {
+      "Warnings",
+        PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_WARNING_INDICATION,
+        PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER },
+        {
+      "Tasks",
+        PreferenceConstants.EDITOR_TASK_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_TASK_INDICATION,
+        PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER },
+        {
+      "Search Results",
+        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION,
+        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER },
+        {
+      "Bookmarks",
+        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_BOOKMARK_INDICATION,
+        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER },
+        {
+      "Others",
+        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR,
+        PreferenceConstants.EDITOR_UNKNOWN_INDICATION,
+        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER }
+  };
+
+  private OverlayPreferenceStore fOverlayStore;
+  private JavaTextTools fJavaTextTools;
+  //   private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock;
+
+  private Map fColorButtons = new HashMap();
+  private SelectionListener fColorButtonListener = new SelectionListener() {
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+    public void widgetSelected(SelectionEvent e) {
+      ColorEditor editor = (ColorEditor) e.widget.getData();
+      PreferenceConverter.setValue(fOverlayStore, (String) fColorButtons.get(editor), editor.getColorValue());
+    }
+  };
+
+  private Map fCheckBoxes = new HashMap();
+  private SelectionListener fCheckBoxListener = new SelectionListener() {
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+    public void widgetSelected(SelectionEvent e) {
+      Button button = (Button) e.widget;
+      fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
+    }
+  };
+
+  private Map fTextFields = new HashMap();
+  private ModifyListener fTextFieldListener = new ModifyListener() {
+    public void modifyText(ModifyEvent e) {
+      Text text = (Text) e.widget;
+      fOverlayStore.setValue((String) fTextFields.get(text), text.getText());
+    }
+  };
+
+  private ArrayList fNumberFields = new ArrayList();
+  private ModifyListener fNumberFieldListener = new ModifyListener() {
+    public void modifyText(ModifyEvent e) {
+      numberFieldChanged((Text) e.widget);
+    }
+  };
+
+  private WorkbenchChainedTextFontFieldEditor fFontEditor;
+  private List fSyntaxColorList;
+  private List fAppearanceColorList;
+  private List fProblemIndicationList;
+  private ColorEditor fSyntaxForegroundColorEditor;
+  private ColorEditor fAppearanceForegroundColorEditor;
+  private ColorEditor fProblemIndicationForegroundColorEditor;
+  private ColorEditor fBackgroundColorEditor;
+  private Button fBackgroundDefaultRadioButton;
+  private Button fBackgroundCustomRadioButton;
+  private Button fBackgroundColorButton;
+  private Button fBoldCheckBox;
+  // private Button fAddJavaDocTagsButton;
+  private Button fGuessMethodArgumentsButton;
+  private SourceViewer fPreviewViewer;
+  private Color fBackgroundColor;
+  private Control fAutoInsertDelayText;
+  private Control fAutoInsertJavaTriggerText;
+  private Control fAutoInsertJavaDocTriggerText;
+  private Control fAutoInsertHTMLTriggerText;
+  private Button fShowInTextCheckBox;
+  private Button fShowInOverviewRulerCheckBox;
+  // private FileFieldEditor fUserDefinedPHPSyntaxFileFFE;
+
+  public PHPEditorPreferencePage() {
+    setDescription(PHPUIMessages.getString("PHPEditorPreferencePage.description")); //$NON-NLS-1$
+    setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
+    fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), fKeys);
+  }
+
+  /*
+   * @see IWorkbenchPreferencePage#init()
+   */
+  public void init(IWorkbench workbench) {
+  }
+
+  /*
+   * @see PreferencePage#createControl(Composite)
+   */
+  public void createControl(Composite parent) {
+    super.createControl(parent);
+    // WorkbenchHelp.setHelp(getControl(), IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE);
+  }
+
+  private void handleSyntaxColorListSelection() {
+    int i = fSyntaxColorList.getSelectionIndex();
+    String key = fSyntaxColorListModel[i][1];
+    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+    fSyntaxForegroundColorEditor.setColorValue(rgb);
+    fBoldCheckBox.setSelection(fOverlayStore.getBoolean(key + BOLD));
+  }
+
+  private void handleAppearanceColorListSelection() {
+    int i = fAppearanceColorList.getSelectionIndex();
+    String key = fAppearanceColorListModel[i][1];
+    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+    fAppearanceForegroundColorEditor.setColorValue(rgb);
+  }
+
+  private void handleProblemIndicationColorListSelection() {
+    int i = fProblemIndicationList.getSelectionIndex();
+
+    String key = fProblemIndicationColorListModel[i][1];
+    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+    fProblemIndicationForegroundColorEditor.setColorValue(rgb);
+
+    key = fProblemIndicationColorListModel[i][2];
+    fShowInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
+
+    key = fProblemIndicationColorListModel[i][3];
+    fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
+  }
+
+  private Control createSyntaxPage(Composite parent) {
+
+    Composite colorComposite = new Composite(parent, SWT.NULL);
+    colorComposite.setLayout(new GridLayout());
+
+    Group backgroundComposite = new Group(colorComposite, SWT.SHADOW_ETCHED_IN);
+    backgroundComposite.setLayout(new RowLayout());
+    backgroundComposite.setText(PHPUIMessages.getString("PHPEditorPreferencePage.backgroundColor")); //$NON-NLS-1$
+
+    SelectionListener backgroundSelectionListener = new SelectionListener() {
+      public void widgetSelected(SelectionEvent e) {
+        boolean custom = fBackgroundCustomRadioButton.getSelection();
+        fBackgroundColorButton.setEnabled(custom);
+        fOverlayStore.setValue(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, !custom);
+      }
+      public void widgetDefaultSelected(SelectionEvent e) {
+      }
+    };
+
+    fBackgroundDefaultRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
+    fBackgroundDefaultRadioButton.setText(PHPUIMessages.getString("PHPEditorPreferencePage.systemDefault")); //$NON-NLS-1$
+    fBackgroundDefaultRadioButton.addSelectionListener(backgroundSelectionListener);
+
+    fBackgroundCustomRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
+    fBackgroundCustomRadioButton.setText(PHPUIMessages.getString("PHPEditorPreferencePage.custom")); //$NON-NLS-1$
+    fBackgroundCustomRadioButton.addSelectionListener(backgroundSelectionListener);
+
+    fBackgroundColorEditor = new ColorEditor(backgroundComposite);
+    fBackgroundColorButton = fBackgroundColorEditor.getButton();
+
+    //    fUserDefinedPHPSyntaxFileFFE =
+    //      new FileFieldEditor(
+    //        IPreferenceConstants.PHP_USERDEF_XMLFILE,
+    //        PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.syntaxdialog"),
+    //        colorComposite);
+    //    fUserDefinedPHPSyntaxFileFFE.setPreferencePage(this);
+    //    fUserDefinedPHPSyntaxFileFFE.setPreferenceStore(getPreferenceStore());
+    //    fUserDefinedPHPSyntaxFileFFE.load();
+
+    Label label = new Label(colorComposite, SWT.LEFT);
+    label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.foreground")); //$NON-NLS-1$
+    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+    Composite editorComposite = new Composite(colorComposite, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    editorComposite.setLayout(layout);
+    GridData gd = new GridData(GridData.FILL_BOTH);
+    editorComposite.setLayoutData(gd);
+
+    fSyntaxColorList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
+    gd = new GridData(GridData.FILL_BOTH);
+    gd.heightHint = convertHeightInCharsToPixels(5);
+    fSyntaxColorList.setLayoutData(gd);
+
+    Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
+    layout = new GridLayout();
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    layout.numColumns = 2;
+    stylesComposite.setLayout(layout);
+    stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    label = new Label(stylesComposite, SWT.LEFT);
+    label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
+    gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    label.setLayoutData(gd);
+
+    fSyntaxForegroundColorEditor = new ColorEditor(stylesComposite);
+    Button foregroundColorButton = fSyntaxForegroundColorEditor.getButton();
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    foregroundColorButton.setLayoutData(gd);
+
+    fBoldCheckBox = new Button(stylesComposite, SWT.CHECK);
+    fBoldCheckBox.setText(PHPUIMessages.getString("PHPEditorPreferencePage.bold")); //$NON-NLS-1$
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    gd.horizontalSpan = 2;
+    fBoldCheckBox.setLayoutData(gd);
+
+    label = new Label(colorComposite, SWT.LEFT);
+    label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.preview")); //$NON-NLS-1$
+    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+    Control previewer = createPreviewer(colorComposite);
+    gd = new GridData(GridData.FILL_BOTH);
+    gd.widthHint = convertWidthInCharsToPixels(20);
+    gd.heightHint = convertHeightInCharsToPixels(5);
+    previewer.setLayoutData(gd);
+
+    fSyntaxColorList.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        handleSyntaxColorListSelection();
+      }
+    });
+
+    foregroundColorButton.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        int i = fSyntaxColorList.getSelectionIndex();
+        String key = fSyntaxColorListModel[i][1];
+
+        PreferenceConverter.setValue(fOverlayStore, key, fSyntaxForegroundColorEditor.getColorValue());
+      }
+    });
+
+    fBackgroundColorButton.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        PreferenceConverter.setValue(
+          fOverlayStore,
+          PreferenceConstants.EDITOR_BACKGROUND_COLOR,
+          fBackgroundColorEditor.getColorValue());
+      }
+    });
+
+    fBoldCheckBox.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        int i = fSyntaxColorList.getSelectionIndex();
+        String key = fSyntaxColorListModel[i][1];
+        fOverlayStore.setValue(key + BOLD, fBoldCheckBox.getSelection());
+      }
+    });
+
+    return colorComposite;
+  }
+
+  private Control createPreviewer(Composite parent) {
+
+    fJavaTextTools = new JavaTextTools(fOverlayStore);
+
+    fPreviewViewer = new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
+    fPreviewViewer.configure(new PHPSourceViewerConfiguration(fJavaTextTools, null));
+    fPreviewViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
+    fPreviewViewer.setEditable(false);
+
+    initializeViewerColors(fPreviewViewer);
+
+    String content = loadPreviewContentFromFile("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
+    IDocument document = new Document(content);
+    PHPEditorEnvironment pe;
+    IDocumentPartitioner partitioner = fJavaTextTools.createDocumentPartitioner();
+    partitioner.connect(document);
+    document.setDocumentPartitioner(partitioner);
+
+    fPreviewViewer.setDocument(document);
+
+    fOverlayStore.addPropertyChangeListener(new IPropertyChangeListener() {
+      public void propertyChange(PropertyChangeEvent event) {
+        String p = event.getProperty();
+        if (p.equals(PreferenceConstants.EDITOR_BACKGROUND_COLOR)
+          || p.equals(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)) {
+          initializeViewerColors(fPreviewViewer);
+        }
+
+        fPreviewViewer.invalidateTextPresentation();
+      }
+    });
+
+    return fPreviewViewer.getControl();
+  }
+
+  /**
+   * Initializes the given viewer's colors.
+   * 
+   * @param viewer the viewer to be initialized
+   */
+  private void initializeViewerColors(ISourceViewer viewer) {
+
+    IPreferenceStore store = fOverlayStore;
+    if (store != null) {
+
+      StyledText styledText = viewer.getTextWidget();
+
+      // ---------- background color ----------------------
+      Color color =
+        store.getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)
+          ? null
+          : createColor(store, PreferenceConstants.EDITOR_BACKGROUND_COLOR, styledText.getDisplay());
+      styledText.setBackground(color);
+
+      if (fBackgroundColor != null)
+        fBackgroundColor.dispose();
+
+      fBackgroundColor = color;
+    }
+  }
+
+  /**
+   * Creates a color from the information stored in the given preference store.
+   * Returns <code>null</code> if there is no such information available.
+   */
+  private Color createColor(IPreferenceStore store, String key, Display display) {
+
+    RGB rgb = null;
+
+    if (store.contains(key)) {
+
+      if (store.isDefault(key))
+        rgb = PreferenceConverter.getDefaultColor(store, key);
+      else
+        rgb = PreferenceConverter.getColor(store, key);
+
+      if (rgb != null)
+        return new Color(display, rgb);
+    }
+
+    return null;
+  }
+
+  // sets enabled flag for a control and all its sub-tree
+  private static void setEnabled(Control control, boolean enable) {
+    control.setEnabled(enable);
+    if (control instanceof Composite) {
+      Composite composite = (Composite) control;
+      Control[] children = composite.getChildren();
+      for (int i = 0; i < children.length; i++)
+        setEnabled(children[i], enable);
+    }
+  }
+
+  private Control createAppearancePage(Composite parent) {
+
+    Composite appearanceComposite = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    appearanceComposite.setLayout(layout);
+
+    String label = PHPUIMessages.getString("PHPEditorPreferencePage.textFont"); //$NON-NLS-1$
+    addTextFontEditor(appearanceComposite, label, AbstractTextEditor.PREFERENCE_FONT);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$
+    addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
+    addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0, true);
+
+    // label= PHPUIMessages.getString("PHPEditorPreferencePage.synchronizeOnCursor"); //$NON-NLS-1$
+    // addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showLineNumbers"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_CURRENT_LINE, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN, 0);
+
+    Label l = new Label(appearanceComposite, SWT.LEFT);
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    gd.heightHint = convertHeightInCharsToPixels(1) / 2;
+    l.setLayoutData(gd);
+
+    l = new Label(appearanceComposite, SWT.LEFT);
+    l.setText(PHPUIMessages.getString("PHPEditorPreferencePage.appearanceOptions")); //$NON-NLS-1$
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    l.setLayoutData(gd);
+
+    Composite editorComposite = new Composite(appearanceComposite, SWT.NONE);
+    layout = new GridLayout();
+    layout.numColumns = 2;
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    editorComposite.setLayout(layout);
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
+    gd.horizontalSpan = 2;
+    editorComposite.setLayoutData(gd);
+
+    fAppearanceColorList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
+    gd = new GridData(GridData.FILL_BOTH);
+    gd.heightHint = convertHeightInCharsToPixels(5);
+    fAppearanceColorList.setLayoutData(gd);
+
+    Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
+    layout = new GridLayout();
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    layout.numColumns = 2;
+    stylesComposite.setLayout(layout);
+    stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    l = new Label(stylesComposite, SWT.LEFT);
+    l.setText(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
+    gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    l.setLayoutData(gd);
+
+    fAppearanceForegroundColorEditor = new ColorEditor(stylesComposite);
+    Button foregroundColorButton = fAppearanceForegroundColorEditor.getButton();
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    foregroundColorButton.setLayoutData(gd);
+
+    fAppearanceColorList.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        handleAppearanceColorListSelection();
+      }
+    });
+    foregroundColorButton.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        int i = fAppearanceColorList.getSelectionIndex();
+        String key = fAppearanceColorListModel[i][1];
+
+        PreferenceConverter.setValue(fOverlayStore, key, fAppearanceForegroundColorEditor.getColorValue());
+      }
+    });
+    return appearanceComposite;
+  }
+
+  private Control createProblemIndicationPage(Composite parent) {
+    Composite composite = new Composite(parent, SWT.NULL);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    composite.setLayout(layout);
+
+    String text = "Analyse &problems while typing";
+    addCheckBox(composite, text, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
+
+    text = PHPUIMessages.getString("PHPEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
+    addCheckBox(composite, text, PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
+
+    Label label = new Label(composite, SWT.LEFT);
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    gd.heightHint = convertHeightInCharsToPixels(1) / 2;
+    label.setLayoutData(gd);
+
+    label = new Label(composite, SWT.LEFT);
+    label.setText("&Marker presentation options:");
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    label.setLayoutData(gd);
+
+    Composite editorComposite = new Composite(composite, SWT.NONE);
+    layout = new GridLayout();
+    layout.numColumns = 2;
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    editorComposite.setLayout(layout);
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
+    gd.horizontalSpan = 2;
+    editorComposite.setLayoutData(gd);
+
+    fProblemIndicationList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
+    gd = new GridData(GridData.FILL_BOTH);
+    gd.heightHint = convertHeightInCharsToPixels(5);
+    fProblemIndicationList.setLayoutData(gd);
+
+    Composite optionsComposite = new Composite(editorComposite, SWT.NONE);
+    layout = new GridLayout();
+    layout.marginHeight = 0;
+    layout.marginWidth = 0;
+    layout.numColumns = 2;
+    optionsComposite.setLayout(layout);
+    optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
+    fShowInTextCheckBox.setText("Show in &text");
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    gd.horizontalSpan = 2;
+    fShowInTextCheckBox.setLayoutData(gd);
+
+    fShowInOverviewRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
+    fShowInOverviewRulerCheckBox.setText("Show in overview &ruler");
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    gd.horizontalSpan = 2;
+    fShowInOverviewRulerCheckBox.setLayoutData(gd);
+
+    label = new Label(optionsComposite, SWT.LEFT);
+    label.setText("C&olor:");
+    gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    label.setLayoutData(gd);
+
+    fProblemIndicationForegroundColorEditor = new ColorEditor(optionsComposite);
+    Button foregroundColorButton = fProblemIndicationForegroundColorEditor.getButton();
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    foregroundColorButton.setLayoutData(gd);
+
+    fProblemIndicationList.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+
+      public void widgetSelected(SelectionEvent e) {
+        handleProblemIndicationColorListSelection();
+      }
+    });
+
+    fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+
+      public void widgetSelected(SelectionEvent e) {
+        int i = fProblemIndicationList.getSelectionIndex();
+        String key = fProblemIndicationColorListModel[i][2];
+        fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
+      }
+    });
+
+    fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+
+      public void widgetSelected(SelectionEvent e) {
+        int i = fProblemIndicationList.getSelectionIndex();
+        String key = fProblemIndicationColorListModel[i][3];
+        fOverlayStore.setValue(key, fShowInOverviewRulerCheckBox.getSelection());
+      }
+    });
+
+    foregroundColorButton.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+
+      public void widgetSelected(SelectionEvent e) {
+        int i = fProblemIndicationList.getSelectionIndex();
+        String key = fProblemIndicationColorListModel[i][1];
+        PreferenceConverter.setValue(fOverlayStore, key, fProblemIndicationForegroundColorEditor.getColorValue());
+      }
+    });
+
+    return composite;
+  }
+
+  //   private Control createBehaviourPage(Composite parent) {
+  //           Composite composite= new Composite(parent, SWT.NULL);
+  //           GridLayout layout= new GridLayout(); layout.numColumns= 2;
+  //           composite.setLayout(layout);
+  //
+  //           String label= PHPUIMessages.getString("PHPEditorPreferencePage.wrapStrings"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_WRAP_STRINGS, 1);
+  //           
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.smartHomeEnd"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.smartPaste"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.insertSpaceForTabs"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.closeStrings"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_STRINGS, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBrackets"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBraces"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACES, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.closePHPDocs"); //$NON-NLS-1$
+  //           Button button= addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.addPHPDocTags"); //$NON-NLS-1$
+  //           fAddJavaDocTagsButton= addCheckBox(composite, label, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
+  //           createDependency(button, fAddJavaDocTagsButton);
+  //
+  //           label= PHPUIMessages.getString("PHPEditorPreferencePage.formatPHPDocs"); //$NON-NLS-1$
+  //           addCheckBox(composite, label, PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1);
+  //   
+  //           return composite;
+  //   }
+
+  private static void indent(Control control) {
+    GridData gridData = new GridData();
+    gridData.horizontalIndent = 20;
+    control.setLayoutData(gridData);
+  }
+
+  private static void createDependency(final Button master, final Control slave) {
+    indent(slave);
+    master.addSelectionListener(new SelectionListener() {
+      public void widgetSelected(SelectionEvent e) {
+        slave.setEnabled(master.getSelection());
+      }
+
+      public void widgetDefaultSelected(SelectionEvent e) {
+      }
+    });
+  }
+
+  private Control createContentAssistPage(Composite parent) {
+
+    Composite contentAssistComposite = new Composite(parent, SWT.NULL);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    contentAssistComposite.setLayout(layout);
+
+    String label = PHPUIMessages.getString("PHPEditorPreferencePage.insertSingleProposalsAutomatically"); //$NON-NLS-1$
+    addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOINSERT, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showOnlyProposalsVisibleInTheInvocationContext"); //$NON-NLS-1$
+    addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.presentProposalsInAlphabeticalOrder"); //$NON-NLS-1$
+    addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.automaticallyAddImportInsteadOfQualifiedName"); //$NON-NLS-1$
+    addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ADDIMPORT, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.insertCompletion"); //$NON-NLS-1$
+    addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_INSERT_COMPLETION, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.fillArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
+    Button button = addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.guessArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
+    fGuessMethodArgumentsButton =
+      addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, 0);
+    createDependency(button, fGuessMethodArgumentsButton);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.enableAutoActivation"); //$NON-NLS-1$
+    final Button autoactivation = addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationDelay"); //$NON-NLS-1$
+    fAutoInsertDelayText =
+      addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 4, 0, true);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHP"); //$NON-NLS-1$
+    fAutoInsertJavaTriggerText =
+      addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, 4, 0, false);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHPDoc"); //$NON-NLS-1$
+    fAutoInsertJavaDocTriggerText =
+      addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, 4, 0, false);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForHTML"); //$NON-NLS-1$
+    fAutoInsertHTMLTriggerText =
+      addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML, 4, 0, false);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionProposals"); //$NON-NLS-1$
+    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, 0);
+
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionProposals"); //$NON-NLS-1$
+    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, 0);
+
+    //    label = PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForMethodParameters"); //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, 0);
+    //
+    //    label = PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForMethodParameters"); //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, 0);
+
+    //    label = PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionReplacement"); //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, 0);
+    //
+    //    label = PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionReplacement"); //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, 0);
+
+    autoactivation.addSelectionListener(new SelectionAdapter() {
+      public void widgetSelected(SelectionEvent e) {
         updateAutoactivationControls();
-        
-       //      fJavaEditorHoverConfigurationBlock.initializeFields();
-       }
-       
-    private void updateAutoactivationControls() {
-        boolean autoactivation= fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
-        fAutoInsertDelayText.setEnabled(autoactivation);
-        fAutoInsertJavaTriggerText.setEnabled(autoactivation);
-        fAutoInsertJavaDocTriggerText.setEnabled(autoactivation);
+      }
+    });
+    return contentAssistComposite;
+  }
+
+  /*
+   * @see PreferencePage#createContents(Composite)
+   */
+  protected Control createContents(Composite parent) {
+
+    fOverlayStore.load();
+    fOverlayStore.start();
+
+    TabFolder folder = new TabFolder(parent, SWT.NONE);
+    folder.setLayout(new TabFolderLayout());
+    folder.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+    TabItem item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.general")); //$NON-NLS-1$
+    item.setControl(createAppearancePage(folder));
+
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.colors")); //$NON-NLS-1$
+    item.setControl(createSyntaxPage(folder));
+
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.codeAssist")); //$NON-NLS-1$
+    item.setControl(createContentAssistPage(folder));
+
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.problemIndicationTab.title")); //$NON-NLS-1$
+    item.setControl(createProblemIndicationPage(folder));
+
+    //         item= new TabItem(folder, SWT.NONE);
+    //         item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.behaviourTab.title")); //$NON-NLS-1$
+    //         item.setControl(createBehaviourPage(folder));
+
+    //         item= new TabItem(folder, SWT.NONE);
+    //         item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.hoverTab.title")); //$NON-NLS-1$
+    //         fJavaEditorHoverConfigurationBlock= new JavaEditorHoverConfigurationBlock(fOverlayStore);
+    //         item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
+
+    initialize();
+
+    return folder;
+  }
+
+  private void initialize() {
+
+    fFontEditor.setPreferenceStore(getPreferenceStore());
+    fFontEditor.setPreferencePage(this);
+    fFontEditor.load();
+
+    initializeFields();
+
+    for (int i = 0; i < fSyntaxColorListModel.length; i++)
+      fSyntaxColorList.add(fSyntaxColorListModel[i][0]);
+
+    fSyntaxColorList.getDisplay().asyncExec(new Runnable() {
+      public void run() {
+        if (fSyntaxColorList != null && !fSyntaxColorList.isDisposed()) {
+          fSyntaxColorList.select(0);
+          handleSyntaxColorListSelection();
+        }
+      }
+    });
+
+    for (int i = 0; i < fAppearanceColorListModel.length; i++)
+      fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
+
+    fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
+      public void run() {
+        if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
+          fAppearanceColorList.select(0);
+          handleAppearanceColorListSelection();
+        }
+      }
+    });
+
+    for (int i = 0; i < fProblemIndicationColorListModel.length; i++)
+      fProblemIndicationList.add(fProblemIndicationColorListModel[i][0]);
+
+    fProblemIndicationList.getDisplay().asyncExec(new Runnable() {
+      public void run() {
+        if (fProblemIndicationList != null && !fProblemIndicationList.isDisposed()) {
+          fProblemIndicationList.select(0);
+          handleProblemIndicationColorListSelection();
+        }
+      }
+    });
+  }
+
+  private void initializeFields() {
+
+    Iterator e = fColorButtons.keySet().iterator();
+    while (e.hasNext()) {
+      ColorEditor c = (ColorEditor) e.next();
+      String key = (String) fColorButtons.get(c);
+      RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+      c.setColorValue(rgb);
+    }
+
+    e = fCheckBoxes.keySet().iterator();
+    while (e.hasNext()) {
+      Button b = (Button) e.next();
+      String key = (String) fCheckBoxes.get(b);
+      b.setSelection(fOverlayStore.getBoolean(key));
+    }
+
+    e = fTextFields.keySet().iterator();
+    while (e.hasNext()) {
+      Text t = (Text) e.next();
+      String key = (String) fTextFields.get(t);
+      t.setText(fOverlayStore.getString(key));
+    }
+
+    RGB rgb = PreferenceConverter.getColor(fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR);
+    fBackgroundColorEditor.setColorValue(rgb);
+
+    boolean default_ = fOverlayStore.getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR);
+    fBackgroundDefaultRadioButton.setSelection(default_);
+    fBackgroundCustomRadioButton.setSelection(!default_);
+    fBackgroundColorButton.setEnabled(!default_);
+
+    // boolean closeJavaDocs= fOverlayStore.getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS);
+    // fAddJavaDocTagsButton.setEnabled(closeJavaDocs);
+
+    boolean fillMethodArguments = fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
+    fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
+
+    updateAutoactivationControls();
+
+    // fJavaEditorHoverConfigurationBlock.initializeFields();
+  }
+
+  private void updateAutoactivationControls() {
+    boolean autoactivation = fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
+    fAutoInsertDelayText.setEnabled(autoactivation);
+    fAutoInsertJavaTriggerText.setEnabled(autoactivation);
+    fAutoInsertJavaDocTriggerText.setEnabled(autoactivation);
+    fAutoInsertHTMLTriggerText.setEnabled(autoactivation);
+  }
+
+  /*
+   * @see PreferencePage#performOk()
+   */
+  public boolean performOk() {
+    fFontEditor.store();
+    // fJavaEditorHoverConfigurationBlock.performOk();
+    fOverlayStore.propagate();
+    // fUserDefinedPHPSyntaxFileFFE.store();
+    PHPeclipsePlugin.getDefault().savePluginPreferences();
+    return true;
+  }
+
+  /*
+   * @see PreferencePage#performDefaults()
+   */
+  protected void performDefaults() {
+
+    fFontEditor.loadDefault();
+
+    fOverlayStore.loadDefaults();
+    initializeFields();
+
+    //  fUserDefinedPHPSyntaxFileFFE.loadDefault();
+    handleSyntaxColorListSelection();
+    handleAppearanceColorListSelection();
+    handleProblemIndicationColorListSelection();
+    super.performDefaults();
+
+    fPreviewViewer.invalidateTextPresentation();
+  }
+
+  /*
+   * @see DialogPage#dispose()
+   */
+  public void dispose() {
+
+    if (fJavaTextTools != null) {
+      fJavaTextTools = null;
+    }
+
+    fFontEditor.setPreferencePage(null);
+    fFontEditor.setPreferenceStore(null);
+
+    if (fOverlayStore != null) {
+      fOverlayStore.stop();
+      fOverlayStore = null;
+    }
+
+    super.dispose();
+  }
+
+  private Control addColorButton(Composite composite, String label, String key, int indentation) {
+
+    Label labelControl = new Label(composite, SWT.NONE);
+    labelControl.setText(label);
+
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    gd.horizontalIndent = indentation;
+    labelControl.setLayoutData(gd);
+
+    ColorEditor editor = new ColorEditor(composite);
+    Button button = editor.getButton();
+    button.setData(editor);
+
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    button.setLayoutData(gd);
+    button.addSelectionListener(fColorButtonListener);
+
+    fColorButtons.put(editor, key);
+
+    return composite;
+  }
+
+  private Button addCheckBox(Composite parent, String label, String key, int indentation) {
+    Button checkBox = new Button(parent, SWT.CHECK);
+    checkBox.setText(label);
+
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    gd.horizontalIndent = indentation;
+    gd.horizontalSpan = 2;
+    checkBox.setLayoutData(gd);
+    checkBox.addSelectionListener(fCheckBoxListener);
+
+    fCheckBoxes.put(checkBox, key);
+
+    return checkBox;
+  }
+
+  private Control addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) {
+
+    Label labelControl = new Label(composite, SWT.NONE);
+    labelControl.setText(label);
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    gd.horizontalIndent = indentation;
+    labelControl.setLayoutData(gd);
+
+    Text textControl = new Text(composite, SWT.BORDER | SWT.SINGLE);
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    gd.widthHint = convertWidthInCharsToPixels(textLimit + 1);
+    textControl.setLayoutData(gd);
+    textControl.setTextLimit(textLimit);
+    fTextFields.put(textControl, key);
+    if (isNumber) {
+      fNumberFields.add(textControl);
+      textControl.addModifyListener(fNumberFieldListener);
+    } else {
+      textControl.addModifyListener(fTextFieldListener);
+    }
+
+    return textControl;
+  }
+
+  private void addTextFontEditor(Composite parent, String label, String key) {
+
+    Composite editorComposite = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 3;
+    editorComposite.setLayout(layout);
+    fFontEditor = new WorkbenchChainedTextFontFieldEditor(key, label, editorComposite);
+    fFontEditor.setChangeButtonText(PHPUIMessages.getString("PHPEditorPreferencePage.change")); //$NON-NLS-1$
+
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    editorComposite.setLayoutData(gd);
+  }
+
+  private String loadPreviewContentFromFile(String filename) {
+    String line;
+    String separator = System.getProperty("line.separator"); //$NON-NLS-1$
+    StringBuffer buffer = new StringBuffer(512);
+    BufferedReader reader = null;
+    try {
+      reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(filename)));
+      while ((line = reader.readLine()) != null) {
+        buffer.append(line);
+        buffer.append(separator);
+      }
+    } catch (IOException io) {
+      PHPeclipsePlugin.log(io);
+    } finally {
+      if (reader != null) {
+        try {
+          reader.close();
+        } catch (IOException e) {
+        }
+      }
+    }
+    return buffer.toString();
+  }
+
+  private void numberFieldChanged(Text textControl) {
+    String number = textControl.getText();
+    IStatus status = validatePositiveNumber(number);
+    if (!status.matches(IStatus.ERROR))
+      fOverlayStore.setValue((String) fTextFields.get(textControl), number);
+    updateStatus(status);
+  }
+
+  private IStatus validatePositiveNumber(String number) {
+    StatusInfo status = new StatusInfo();
+    if (number.length() == 0) {
+      status.setError(PHPUIMessages.getString("PHPEditorPreferencePage.empty_input")); //$NON-NLS-1$
+    } else {
+      try {
+        int value = Integer.parseInt(number);
+        if (value < 0)
+          status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
+      } catch (NumberFormatException e) {
+        status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
+      }
+    }
+    return status;
+  }
+
+  private void updateStatus(IStatus status) {
+    if (!status.matches(IStatus.ERROR)) {
+      for (int i = 0; i < fNumberFields.size(); i++) {
+        Text text = (Text) fNumberFields.get(i);
+        IStatus s = validatePositiveNumber(text.getText());
+        status = StatusUtil.getMoreSevere(s, status);
+      }
     }
-       
-       /*
-        * @see PreferencePage#performOk()
-        */
-       public boolean performOk() {
-               fFontEditor.store();
-       //      fJavaEditorHoverConfigurationBlock.performOk();
-               fOverlayStore.propagate();
-               PHPeclipsePlugin.getDefault().savePluginPreferences();
-               return true;
-       }
-       
-       /*
-        * @see PreferencePage#performDefaults()
-        */
-       protected void performDefaults() {
-               
-               fFontEditor.loadDefault();
-               
-               fOverlayStore.loadDefaults();
-               initializeFields();
-
-               handleSyntaxColorListSelection();
-               handleAppearanceColorListSelection();
-               handleProblemIndicationColorListSelection();
-               super.performDefaults();
-               
-               fPreviewViewer.invalidateTextPresentation();
-       }
-       
-       /*
-        * @see DialogPage#dispose()
-        */
-       public void dispose() {
-               
-               if (fJavaTextTools != null) {
-                       fJavaTextTools= null;
-               }
-               
-               fFontEditor.setPreferencePage(null);
-               fFontEditor.setPreferenceStore(null);
-               
-               if (fOverlayStore != null) {
-                       fOverlayStore.stop();
-                       fOverlayStore= null;
-               }
-               
-               super.dispose();
-       }
-       
-       private Control addColorButton(Composite composite, String label, String key, int indentation) {
-
-               Label labelControl= new Label(composite, SWT.NONE);
-               labelControl.setText(label);
-               
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               gd.horizontalIndent= indentation;
-               labelControl.setLayoutData(gd);
-               
-               ColorEditor editor= new ColorEditor(composite);
-               Button button= editor.getButton();
-               button.setData(editor);
-               
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               button.setLayoutData(gd);
-               button.addSelectionListener(fColorButtonListener);
-               
-               fColorButtons.put(editor, key);
-               
-               return composite;
-       }
-       
-       private Button addCheckBox(Composite parent, String label, String key, int indentation) {               
-               Button checkBox= new Button(parent, SWT.CHECK);
-               checkBox.setText(label);
-               
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               gd.horizontalIndent= indentation;
-               gd.horizontalSpan= 2;
-               checkBox.setLayoutData(gd);
-               checkBox.addSelectionListener(fCheckBoxListener);
-               
-               fCheckBoxes.put(checkBox, key);
-               
-               return checkBox;
-       }
-       
-       private Control addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) {
-               
-               Label labelControl= new Label(composite, SWT.NONE);
-               labelControl.setText(label);
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               gd.horizontalIndent= indentation;
-               labelControl.setLayoutData(gd);
-               
-               Text textControl= new Text(composite, SWT.BORDER | SWT.SINGLE);         
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               gd.widthHint= convertWidthInCharsToPixels(textLimit + 1);
-               textControl.setLayoutData(gd);
-               textControl.setTextLimit(textLimit);
-               fTextFields.put(textControl, key);
-               if (isNumber) {
-                       fNumberFields.add(textControl);
-                       textControl.addModifyListener(fNumberFieldListener);
-               } else {
-                       textControl.addModifyListener(fTextFieldListener);
-               }
-                       
-               return textControl;
-       }
-       
-       private void addTextFontEditor(Composite parent, String label, String key) {
-               
-               Composite editorComposite= new Composite(parent, SWT.NONE);
-               GridLayout layout= new GridLayout();
-               layout.numColumns= 3;
-               editorComposite.setLayout(layout);              
-               fFontEditor= new WorkbenchChainedTextFontFieldEditor(key, label, editorComposite);
-               fFontEditor.setChangeButtonText(PHPUIMessages.getString("PHPEditorPreferencePage.change")); //$NON-NLS-1$
-                               
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               editorComposite.setLayoutData(gd);
-       }
-       
-       private String loadPreviewContentFromFile(String filename) {
-               String line;
-               String separator= System.getProperty("line.separator"); //$NON-NLS-1$
-               StringBuffer buffer= new StringBuffer(512);
-               BufferedReader reader= null;
-               try {
-                       reader= new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(filename)));
-                       while ((line= reader.readLine()) != null) {
-                               buffer.append(line);
-                               buffer.append(separator);
-                       }
-               } catch (IOException io) {
-                       PHPeclipsePlugin.log(io);
-               } finally {
-                       if (reader != null) {
-                               try { reader.close(); } catch (IOException e) {}
-                       }
-               }
-               return buffer.toString();
-       }
-       
-       private void numberFieldChanged(Text textControl) {
-               String number= textControl.getText();
-               IStatus status= validatePositiveNumber(number);
-               if (!status.matches(IStatus.ERROR))
-                       fOverlayStore.setValue((String) fTextFields.get(textControl), number);
-               updateStatus(status);
-       }
-       
-       private IStatus validatePositiveNumber(String number) {
-               StatusInfo status= new StatusInfo();
-               if (number.length() == 0) {
-                       status.setError(PHPUIMessages.getString("PHPEditorPreferencePage.empty_input")); //$NON-NLS-1$
-               } else {
-                       try {
-                               int value= Integer.parseInt(number);
-                               if (value < 0)
-                                       status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
-                       } catch (NumberFormatException e) {
-                               status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
-                       }
-               }
-               return status;
-       }
-       
-       private void updateStatus(IStatus status) {
-               if (!status.matches(IStatus.ERROR)) {
-                       for (int i= 0; i < fNumberFields.size(); i++) {
-                               Text text= (Text) fNumberFields.get(i);
-                               IStatus s= validatePositiveNumber(text.getText());
-                               status= StatusUtil.getMoreSevere(s, status);
-                       }
-               }       
-               setValid(!status.matches(IStatus.ERROR));
-               StatusUtil.applyToStatusLine(this, status);
-       }
-
-       /**
-        * @deprecated Inline to avoid reference to preference page
-        */
-       public static boolean indicateQuixFixableProblems() {
-               return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_CORRECTION_INDICATION);
-       }
-
-       /**
-        * @deprecated Inline to avoid reference to preference page
-        */     
-//     static public boolean synchronizeOutlineOnCursorMove() {
-//             return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE);
-//     }
+    setValid(!status.matches(IStatus.ERROR));
+    StatusUtil.applyToStatusLine(this, status);
+  }
+
+  /**
+   * @deprecated Inline to avoid reference to preference page
+   */
+  public static boolean indicateQuixFixableProblems() {
+    return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_CORRECTION_INDICATION);
+  }
+
+  /**
+   * @deprecated Inline to avoid reference to preference page
+   */
+  //   static public boolean synchronizeOutlineOnCursorMove() {
+  //           return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE);
+  //   }
 
 }
\ No newline at end of file
index aaec612..61d4a1b 100644 (file)
@@ -9,242 +9,281 @@ import net.sourceforge.phpdt.ui.PreferenceConstants;
 import net.sourceforge.phpdt.ui.text.IColorManager;
 import net.sourceforge.phpdt.ui.text.JavaTextTools;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+import net.sourceforge.phpeclipse.phpeditor.php.HTMLCompletionProcessor;
 import net.sourceforge.phpeclipse.phpeditor.php.IPHPPartitionScannerConstants;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPCompletionProcessor;
 
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.contentassist.ContentAssistant;
 import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.RGB;
 
-
 public class ContentAssistPreference {
-       
-       /** Preference key for content assist auto activation */
-       private final static String AUTOACTIVATION=  PreferenceConstants.CODEASSIST_AUTOACTIVATION;
-       /** Preference key for content assist auto activation delay */
-       private final static String AUTOACTIVATION_DELAY=  PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY;
-       /** Preference key for content assist proposal color */
-       private final static String PROPOSALS_FOREGROUND=  PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND;
-       /** Preference key for content assist proposal color */
-       private final static String PROPOSALS_BACKGROUND=  PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND;
-       /** Preference key for content assist parameters color */
-       private final static String PARAMETERS_FOREGROUND=  PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND;
-       /** Preference key for content assist parameters color */
-       private final static String PARAMETERS_BACKGROUND=  PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND;
-       /** Preference key for content assist completion replacement color */
-       private final static String COMPLETION_REPLACEMENT_FOREGROUND=  PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND;
-       /** Preference key for content assist completion replacement color */
-       private final static String COMPLETION_REPLACEMENT_BACKGROUND=  PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND;
-       /** Preference key for content assist auto insert */
-       private final static String AUTOINSERT= PreferenceConstants.CODEASSIST_AUTOINSERT;
-       
-       /** Preference key for php content assist auto activation triggers */
-       private final static String AUTOACTIVATION_TRIGGERS_JAVA= PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA;
-       /** Preference key for phpdoc content assist auto activation triggers */
-       private final static String AUTOACTIVATION_TRIGGERS_JAVADOC= PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC;
-       
-       /** Preference key for visibility of proposals */
-       private final static String SHOW_VISIBLE_PROPOSALS= PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS;
-       /** Preference key for alphabetic ordering of proposals */
-       private final static String ORDER_PROPOSALS= PreferenceConstants.CODEASSIST_ORDER_PROPOSALS;
-       /** Preference key for case sensitivity of propsals */
-       private final static String CASE_SENSITIVITY= PreferenceConstants.CODEASSIST_CASE_SENSITIVITY;
-       /** Preference key for adding imports on code assist */
-       private final static String ADD_IMPORT= PreferenceConstants.CODEASSIST_ADDIMPORT;
-       /** Preference key for inserting content assist */
-       private static final String INSERT_COMPLETION= PreferenceConstants.CODEASSIST_INSERT_COMPLETION;
-       /** Preference key for filling argument names on method completion */
-       private static final String FILL_METHOD_ARGUMENTS= PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES;
-       /** Preference key for guessing argument names on method completion */
-       private static final String GUESS_METHOD_ARGUMENTS= PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS;
-
-       
-       private static Color getColor(IPreferenceStore store, String key, IColorManager manager) {
-               RGB rgb= PreferenceConverter.getColor(store, key);
-               return manager.getColor(rgb);
-       }
-       
-       private static Color getColor(IPreferenceStore store, String key) {
-               JavaTextTools textTools= PHPeclipsePlugin.getDefault().getJavaTextTools();
-               return getColor(store, key, textTools.getColorManager());
-       }
-       
-       private static PHPCompletionProcessor getJavaProcessor(ContentAssistant assistant) {
-               IContentAssistProcessor p= assistant.getContentAssistProcessor(IPHPPartitionScannerConstants.PHP);
-               if (p instanceof PHPCompletionProcessor)
-                       return  (PHPCompletionProcessor) p;
-               return null;
-       }
-       
-       private static PHPDocCompletionProcessor getJavaDocProcessor(ContentAssistant assistant) {
-               IContentAssistProcessor p= assistant.getContentAssistProcessor(IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT);
-               if (p instanceof PHPDocCompletionProcessor) 
-                       return (PHPDocCompletionProcessor) p;
-               return null;
-       }
-       
-       private static void configureJavaProcessor(ContentAssistant assistant, IPreferenceStore store) {
-               PHPCompletionProcessor jcp= getJavaProcessor(assistant);
-               if (jcp == null)
-                       return;
-                       
-               String triggers= store.getString(AUTOACTIVATION_TRIGGERS_JAVA);
-               if (triggers != null)
-                       jcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
-                       
-//             boolean enabled= store.getBoolean(SHOW_VISIBLE_PROPOSALS);
-//             jcp.restrictProposalsToVisibility(enabled);
-//             
-//             enabled= store.getBoolean(CASE_SENSITIVITY);
-//             jcp.restrictProposalsToMatchingCases(enabled);
-//             
-//             enabled= store.getBoolean(ORDER_PROPOSALS);
-//             jcp.orderProposalsAlphabetically(enabled);
-//             
-//             enabled= store.getBoolean(ADD_IMPORT);
-//             jcp.allowAddingImports(enabled);                
-       }
-       
-       private static void configureJavaDocProcessor(ContentAssistant assistant, IPreferenceStore store) {
-               PHPDocCompletionProcessor jdcp= getJavaDocProcessor(assistant);
-               if (jdcp == null)
-                       return;
-                       
-               String triggers= store.getString(AUTOACTIVATION_TRIGGERS_JAVADOC);
-               if (triggers != null)
-                       jdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
-                       
-               boolean enabled= store.getBoolean(CASE_SENSITIVITY);
-               jdcp.restrictProposalsToMatchingCases(enabled);
-               
-               enabled= store.getBoolean(ORDER_PROPOSALS);
-               jdcp.orderProposalsAlphabetically(enabled);
-       }
-       
-       /**
-        * Configure the given content assistant from the given store.
-        */
-       public static void configure(ContentAssistant assistant, IPreferenceStore store) {
-               
-               JavaTextTools textTools= PHPeclipsePlugin.getDefault().getJavaTextTools();
-               IColorManager manager= textTools.getColorManager();             
-               
-               
-               boolean enabled= store.getBoolean(AUTOACTIVATION);
-               assistant.enableAutoActivation(enabled);
-               
-               int delay= store.getInt(AUTOACTIVATION_DELAY);
-               assistant.setAutoActivationDelay(delay);
-               
-               Color c= getColor(store, PROPOSALS_FOREGROUND, manager);
-               assistant.setProposalSelectorForeground(c);
-               
-               c= getColor(store, PROPOSALS_BACKGROUND, manager);
-               assistant.setProposalSelectorBackground(c);
-               
-               c= getColor(store, PARAMETERS_FOREGROUND, manager);
-               assistant.setContextInformationPopupForeground(c);
-               assistant.setContextSelectorForeground(c);
-               
-               c= getColor(store, PARAMETERS_BACKGROUND, manager);
-               assistant.setContextInformationPopupBackground(c);
-               assistant.setContextSelectorBackground(c);
-               
-               enabled= store.getBoolean(AUTOINSERT);
-               assistant.enableAutoInsert(enabled);
-
-               configureJavaProcessor(assistant, store);
-               configureJavaDocProcessor(assistant, store);
-       }
-       
-       
-       private static void changeJavaProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
-               PHPCompletionProcessor jcp= getJavaProcessor(assistant);
-               if (jcp == null)
-                       return;
-                       
-               if (AUTOACTIVATION_TRIGGERS_JAVA.equals(key)) {
-                       String triggers= store.getString(AUTOACTIVATION_TRIGGERS_JAVA);
-                       if (triggers != null)
-                               jcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
-               } 
-//             else if (SHOW_VISIBLE_PROPOSALS.equals(key)) {
-//                     boolean enabled= store.getBoolean(SHOW_VISIBLE_PROPOSALS);
-//                     jcp.restrictProposalsToVisibility(enabled);
-//             } else if (CASE_SENSITIVITY.equals(key)) {
-//                     boolean enabled= store.getBoolean(CASE_SENSITIVITY);
-//                     jcp.restrictProposalsToMatchingCases(enabled);
-//             } else if (ORDER_PROPOSALS.equals(key)) {
-//                     boolean enable= store.getBoolean(ORDER_PROPOSALS);
-//                     jcp.orderProposalsAlphabetically(enable);
-//             } else if (ADD_IMPORT.equals(key)) {
-//                     boolean enabled= store.getBoolean(ADD_IMPORT);
-//                     jcp.allowAddingImports(enabled);
-//             }
-       }
-       
-       private static void changeJavaDocProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
-               PHPDocCompletionProcessor jdcp= getJavaDocProcessor(assistant);
-               if (jdcp == null)
-                       return;
-                       
-               if (AUTOACTIVATION_TRIGGERS_JAVADOC.equals(key)) {
-                       String triggers= store.getString(AUTOACTIVATION_TRIGGERS_JAVADOC);
-                       if (triggers != null)
-                               jdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
-               } else if (CASE_SENSITIVITY.equals(key)) {
-                       boolean enabled= store.getBoolean(CASE_SENSITIVITY);
-                       jdcp.restrictProposalsToMatchingCases(enabled);
-               } else if (ORDER_PROPOSALS.equals(key)) {
-                       boolean enable= store.getBoolean(ORDER_PROPOSALS);
-                       jdcp.orderProposalsAlphabetically(enable);
-               }
-       }
-       
-       /**
-        * Changes the configuration of the given content assistant according to the given property
-        * change event and the given preference store.
-        */
-       public static void changeConfiguration(ContentAssistant assistant, IPreferenceStore store, PropertyChangeEvent event) {
-               
-               String p= event.getProperty();
-               
-               if (AUTOACTIVATION.equals(p)) {
-                       boolean enabled= store.getBoolean(AUTOACTIVATION);
-                       assistant.enableAutoActivation(enabled);
-               } else if (AUTOACTIVATION_DELAY.equals(p)) {
-                       int delay= store.getInt(AUTOACTIVATION_DELAY);
-                       assistant.setAutoActivationDelay(delay);
-               } else if (PROPOSALS_FOREGROUND.equals(p)) {
-                       Color c= getColor(store, PROPOSALS_FOREGROUND);
-                       assistant.setProposalSelectorForeground(c);
-               } else if (PROPOSALS_BACKGROUND.equals(p)) {
-                       Color c= getColor(store, PROPOSALS_BACKGROUND);
-                       assistant.setProposalSelectorBackground(c);
-               } else if (PARAMETERS_FOREGROUND.equals(p)) {
-                       Color c= getColor(store, PARAMETERS_FOREGROUND);
-                       assistant.setContextInformationPopupForeground(c);
-                       assistant.setContextSelectorForeground(c);
-               } else if (PARAMETERS_BACKGROUND.equals(p)) {
-                       Color c= getColor(store, PARAMETERS_BACKGROUND);
-                       assistant.setContextInformationPopupBackground(c);
-                       assistant.setContextSelectorBackground(c);
-               } else if (AUTOINSERT.equals(p)) {
-                       boolean enabled= store.getBoolean(AUTOINSERT);
-                       assistant.enableAutoInsert(enabled);
-               }
-               
-               changeJavaProcessor(assistant, store, p);
-               changeJavaDocProcessor(assistant, store, p);
-       }
-
-       public static boolean fillArgumentsOnMethodCompletion(IPreferenceStore store) {
-               return store.getBoolean(FILL_METHOD_ARGUMENTS);
-       }
-}
 
+  /** Preference key for content assist auto activation */
+  private final static String AUTOACTIVATION = PreferenceConstants.CODEASSIST_AUTOACTIVATION;
+  /** Preference key for content assist auto activation delay */
+  private final static String AUTOACTIVATION_DELAY = PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY;
+  /** Preference key for content assist proposal color */
+  private final static String PROPOSALS_FOREGROUND = PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND;
+  /** Preference key for content assist proposal color */
+  private final static String PROPOSALS_BACKGROUND = PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND;
+  /** Preference key for content assist parameters color */
+  private final static String PARAMETERS_FOREGROUND = PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND;
+  /** Preference key for content assist parameters color */
+  private final static String PARAMETERS_BACKGROUND = PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND;
+  /** Preference key for content assist completion replacement color */
+  private final static String COMPLETION_REPLACEMENT_FOREGROUND = PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND;
+  /** Preference key for content assist completion replacement color */
+  private final static String COMPLETION_REPLACEMENT_BACKGROUND = PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND;
+  /** Preference key for content assist auto insert */
+  private final static String AUTOINSERT = PreferenceConstants.CODEASSIST_AUTOINSERT;
+
+  /** Preference key for php content assist auto activation triggers */
+  private final static String AUTOACTIVATION_TRIGGERS_JAVA = PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA;
+  /** Preference key for phpdoc content assist auto activation triggers */
+  private final static String AUTOACTIVATION_TRIGGERS_JAVADOC = PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC;
+  /** Preference key for html content assist auto activation triggers */
+  private final static String AUTOACTIVATION_TRIGGERS_HTML = PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML;
+
+  /** Preference key for visibility of proposals */
+  private final static String SHOW_VISIBLE_PROPOSALS = PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS;
+  /** Preference key for alphabetic ordering of proposals */
+  private final static String ORDER_PROPOSALS = PreferenceConstants.CODEASSIST_ORDER_PROPOSALS;
+  /** Preference key for case sensitivity of propsals */
+  private final static String CASE_SENSITIVITY = PreferenceConstants.CODEASSIST_CASE_SENSITIVITY;
+  /** Preference key for adding imports on code assist */
+  private final static String ADD_IMPORT = PreferenceConstants.CODEASSIST_ADDIMPORT;
+  /** Preference key for inserting content assist */
+  private static final String INSERT_COMPLETION = PreferenceConstants.CODEASSIST_INSERT_COMPLETION;
+  /** Preference key for filling argument names on method completion */
+  private static final String FILL_METHOD_ARGUMENTS = PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES;
+  /** Preference key for guessing argument names on method completion */
+  private static final String GUESS_METHOD_ARGUMENTS = PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS;
+
+  private static Color getColor(IPreferenceStore store, String key, IColorManager manager) {
+    RGB rgb = PreferenceConverter.getColor(store, key);
+    return manager.getColor(rgb);
+  }
+
+  private static Color getColor(IPreferenceStore store, String key) {
+    JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
+    return getColor(store, key, textTools.getColorManager());
+  }
+
+  private static PHPCompletionProcessor getJavaProcessor(ContentAssistant assistant) {
+    IContentAssistProcessor p = assistant.getContentAssistProcessor(IPHPPartitionScannerConstants.PHP);
+    if (p instanceof PHPCompletionProcessor)
+      return (PHPCompletionProcessor) p;
+    return null;
+  }
+
+  private static PHPDocCompletionProcessor getJavaDocProcessor(ContentAssistant assistant) {
+    IContentAssistProcessor p = assistant.getContentAssistProcessor(IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT);
+    if (p instanceof PHPDocCompletionProcessor)
+      return (PHPDocCompletionProcessor) p;
+    return null;
+  }
+
+  private static HTMLCompletionProcessor getHTMLProcessor(ContentAssistant assistant) {
+    IContentAssistProcessor p = assistant.getContentAssistProcessor(IPHPPartitionScannerConstants.HTML);
+    if (p instanceof HTMLCompletionProcessor)
+      return (HTMLCompletionProcessor) p;
+    return null;
+  }
+
+  private static void configureJavaProcessor(ContentAssistant assistant, IPreferenceStore store) {
+    PHPCompletionProcessor pcp = getJavaProcessor(assistant);
+    if (pcp == null)
+      return;
+
+    String triggers = store.getString(AUTOACTIVATION_TRIGGERS_JAVA);
+    if (triggers != null)
+      pcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+    boolean enabled;
+    //         boolean enabled= store.getBoolean(SHOW_VISIBLE_PROPOSALS);
+    //         jcp.restrictProposalsToVisibility(enabled);
+    //         
+    //         enabled= store.getBoolean(CASE_SENSITIVITY);
+    //         jcp.restrictProposalsToMatchingCases(enabled);
+    //         
+    enabled = store.getBoolean(ORDER_PROPOSALS);
+    pcp.orderProposalsAlphabetically(enabled);
+    //         
+    //         enabled= store.getBoolean(ADD_IMPORT);
+    //         jcp.allowAddingImports(enabled);                
+  }
+
+  private static void configureJavaDocProcessor(ContentAssistant assistant, IPreferenceStore store) {
+    PHPDocCompletionProcessor pdcp = getJavaDocProcessor(assistant);
+    if (pdcp == null)
+      return;
+
+    String triggers = store.getString(AUTOACTIVATION_TRIGGERS_JAVADOC);
+    if (triggers != null)
+      pdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+
+    boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+    pdcp.restrictProposalsToMatchingCases(enabled);
+
+    enabled = store.getBoolean(ORDER_PROPOSALS);
+    pdcp.orderProposalsAlphabetically(enabled);
+  }
+
+  private static void configureHTMLProcessor(ContentAssistant assistant, IPreferenceStore store) {
+    HTMLCompletionProcessor hcp = getHTMLProcessor(assistant);
+    if (hcp == null)
+      return;
+
+    String triggers = store.getString(AUTOACTIVATION_TRIGGERS_HTML);
+    if (triggers != null)
+      hcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+
+    boolean enabled;
+    //    boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+    //    jdcp.restrictProposalsToMatchingCases(enabled);
+
+    enabled = store.getBoolean(ORDER_PROPOSALS);
+    hcp.orderProposalsAlphabetically(enabled);
+  }
+  /**
+   * Configure the given content assistant from the given store.
+   */
+  public static void configure(ContentAssistant assistant, IPreferenceStore store) {
+
+    JavaTextTools textTools = PHPeclipsePlugin.getDefault().getJavaTextTools();
+    IColorManager manager = textTools.getColorManager();
+
+    boolean enabled = store.getBoolean(AUTOACTIVATION);
+    assistant.enableAutoActivation(enabled);
+
+    int delay = store.getInt(AUTOACTIVATION_DELAY);
+    assistant.setAutoActivationDelay(delay);
+
+    Color c = getColor(store, PROPOSALS_FOREGROUND, manager);
+    assistant.setProposalSelectorForeground(c);
+
+    c = getColor(store, PROPOSALS_BACKGROUND, manager);
+    assistant.setProposalSelectorBackground(c);
+
+    c = getColor(store, PARAMETERS_FOREGROUND, manager);
+    assistant.setContextInformationPopupForeground(c);
+    assistant.setContextSelectorForeground(c);
+
+    c = getColor(store, PARAMETERS_BACKGROUND, manager);
+    assistant.setContextInformationPopupBackground(c);
+    assistant.setContextSelectorBackground(c);
+
+    enabled = store.getBoolean(AUTOINSERT);
+    assistant.enableAutoInsert(enabled);
+
+    configureJavaProcessor(assistant, store);
+    configureJavaDocProcessor(assistant, store);
+    configureHTMLProcessor(assistant, store);
+  }
+
+  private static void changeJavaProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
+    PHPCompletionProcessor jcp = getJavaProcessor(assistant);
+    if (jcp == null)
+      return;
+
+    if (AUTOACTIVATION_TRIGGERS_JAVA.equals(key)) {
+      String triggers = store.getString(AUTOACTIVATION_TRIGGERS_JAVA);
+      if (triggers != null)
+        jcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+    }
+    //         else if (SHOW_VISIBLE_PROPOSALS.equals(key)) {
+    //                 boolean enabled= store.getBoolean(SHOW_VISIBLE_PROPOSALS);
+    //                 jcp.restrictProposalsToVisibility(enabled);
+    //         } else if (CASE_SENSITIVITY.equals(key)) {
+    //                 boolean enabled= store.getBoolean(CASE_SENSITIVITY);
+    //                 jcp.restrictProposalsToMatchingCases(enabled); }
+    else if (ORDER_PROPOSALS.equals(key)) {
+      boolean enable = store.getBoolean(ORDER_PROPOSALS);
+      jcp.orderProposalsAlphabetically(enable);
+      //               } else if (ADD_IMPORT.equals(key)) {
+      //                       boolean enabled= store.getBoolean(ADD_IMPORT);
+      //                       jcp.allowAddingImports(enabled);
+    }
+  }
+
+  private static void changeJavaDocProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
+    PHPDocCompletionProcessor jdcp = getJavaDocProcessor(assistant);
+    if (jdcp == null)
+      return;
+
+    if (AUTOACTIVATION_TRIGGERS_JAVADOC.equals(key)) {
+      String triggers = store.getString(AUTOACTIVATION_TRIGGERS_JAVADOC);
+      if (triggers != null)
+        jdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+    } else if (CASE_SENSITIVITY.equals(key)) {
+      boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+      jdcp.restrictProposalsToMatchingCases(enabled);
+    } else if (ORDER_PROPOSALS.equals(key)) {
+      boolean enable = store.getBoolean(ORDER_PROPOSALS);
+      jdcp.orderProposalsAlphabetically(enable);
+    }
+  }
+
+  private static void changeHTMLProcessor(ContentAssistant assistant, IPreferenceStore store, String key) {
+    HTMLCompletionProcessor jdcp = getHTMLProcessor(assistant);
+    if (jdcp == null)
+      return;
+
+    if (AUTOACTIVATION_TRIGGERS_HTML.equals(key)) {
+      String triggers = store.getString(AUTOACTIVATION_TRIGGERS_HTML);
+      if (triggers != null)
+        jdcp.setCompletionProposalAutoActivationCharacters(triggers.toCharArray());
+      //    } else if (CASE_SENSITIVITY.equals(key)) {
+      //      boolean enabled = store.getBoolean(CASE_SENSITIVITY);
+      //      jdcp.restrictProposalsToMatchingCases(enabled);
+    } else if (ORDER_PROPOSALS.equals(key)) {
+      boolean enable = store.getBoolean(ORDER_PROPOSALS);
+      jdcp.orderProposalsAlphabetically(enable);
+    }
+  }
+  /**
+   * Changes the configuration of the given content assistant according to the given property
+   * change event and the given preference store.
+   */
+  public static void changeConfiguration(ContentAssistant assistant, IPreferenceStore store, PropertyChangeEvent event) {
+
+    String p = event.getProperty();
+
+    if (AUTOACTIVATION.equals(p)) {
+      boolean enabled = store.getBoolean(AUTOACTIVATION);
+      assistant.enableAutoActivation(enabled);
+    } else if (AUTOACTIVATION_DELAY.equals(p)) {
+      int delay = store.getInt(AUTOACTIVATION_DELAY);
+      assistant.setAutoActivationDelay(delay);
+    } else if (PROPOSALS_FOREGROUND.equals(p)) {
+      Color c = getColor(store, PROPOSALS_FOREGROUND);
+      assistant.setProposalSelectorForeground(c);
+    } else if (PROPOSALS_BACKGROUND.equals(p)) {
+      Color c = getColor(store, PROPOSALS_BACKGROUND);
+      assistant.setProposalSelectorBackground(c);
+    } else if (PARAMETERS_FOREGROUND.equals(p)) {
+      Color c = getColor(store, PARAMETERS_FOREGROUND);
+      assistant.setContextInformationPopupForeground(c);
+      assistant.setContextSelectorForeground(c);
+    } else if (PARAMETERS_BACKGROUND.equals(p)) {
+      Color c = getColor(store, PARAMETERS_BACKGROUND);
+      assistant.setContextInformationPopupBackground(c);
+      assistant.setContextSelectorBackground(c);
+    } else if (AUTOINSERT.equals(p)) {
+      boolean enabled = store.getBoolean(AUTOINSERT);
+      assistant.enableAutoInsert(enabled);
+    }
+
+    changeJavaProcessor(assistant, store, p);
+    changeJavaDocProcessor(assistant, store, p);
+    changeHTMLProcessor(assistant, store, p);
+  }
+
+  public static boolean fillArgumentsOnMethodCompletion(IPreferenceStore store) {
+    return store.getBoolean(FILL_METHOD_ARGUMENTS);
+  }
+}
index 0afea31..3647756 100644 (file)
@@ -38,912 +38,912 @@ import net.sourceforge.phpdt.ui.text.IJavaColorConstants;
   */
 public class PreferenceConstants {
 
-       private PreferenceConstants() {
-       }
-       
-       /**
-        * A named preference that controls return type rendering of methods in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>: if <code>true</code> return types
-        * are rendered
-        * </p>
-        */
-       public static final String APPEARANCE_METHOD_RETURNTYPE= "net.sourceforge.phpdt.ui.methodreturntype";//$NON-NLS-1$
-
-       /**
-        * A named preference that controls if override indicators are rendered in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>: if <code>true</code> override 
-        * indicators are rendered
-        * </p>
+  private PreferenceConstants() {
+  }
+
+  /**
+   * A named preference that controls return type rendering of methods in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>: if <code>true</code> return types
+   * are rendered
+   * </p>
+   */
+  public static final String APPEARANCE_METHOD_RETURNTYPE = "net.sourceforge.phpdt.ui.methodreturntype"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if override indicators are rendered in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>: if <code>true</code> override 
+   * indicators are rendered
+   * </p>
      */
-       public static final String APPEARANCE_OVERRIDE_INDICATOR= "net.sourceforge.phpdt.ui.overrideindicator";//$NON-NLS-1$
-
-       /**
-        * A named preference that defines the pattern used for package name compression.
-        * <p>
-        * Value is of type <code>String</code>. For example foe the given package name 'org.eclipse.jdt' pattern
-        * '.' will compress it to '..jdt', '1~' to 'o~.e~.jdt'.
-        * </p>
-        */     
-       public static final String APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW= "PackagesView.pkgNamePatternForPackagesView";//$NON-NLS-1$
-
-       /**
-        * A named preference that controls if package name compression is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * 
-        * @see #APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW
-        */     
-       public static final String APPEARANCE_COMPRESS_PACKAGE_NAMES= "net.sourceforge.phpdt.ui.compresspackagenames";//$NON-NLS-1$
-
-       /**
-        * A named preference that controls if empty inner packages are folded in
-        * the hierarchical mode of the package explorer.
-        * <p>
-        * Value is of type <code>Boolean</code>: if <code>true</code> empty
-        * inner packages are folded.
-        * </p>
-        * @since 2.1
-        */
-       public static final String APPEARANCE_FOLD_PACKAGES_IN_PACKAGE_EXPLORER= "net.sourceforge.phpdt.ui.flatPackagesInPackageExplorer";//$NON-NLS-1$
-
-       /**
-        * A named preference that defines how member elements are ordered by the
-        * Java views using the <code>JavaElementSorter</code>.
-        * <p>
-        * Value is of type <code>String</code>: A comma separated list of the
-        * following entries. Each entry must be in the list, no duplication. List
-        * order defines the sort order.
-        * <ul>
-        * <li><b>T</b>: Types</li>
-        * <li><b>C</b>: Constructors</li>
-        * <li><b>I</b>: Initializers</li>
-        * <li><b>M</b>: Methods</li>
-        * <li><b>F</b>: Fields</li>
-        * <li><b>SI</b>: Static Initializers</li>
-        * <li><b>SM</b>: Static Methods</li>
-        * <li><b>SF</b>: Static Fields</li>
-        * </ul>
-        * </p>
-        * @since 2.1
-        */
-       public static final String APPEARANCE_MEMBER_SORT_ORDER= "outlinesortoption"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if prefix removal during setter/getter generation is turned on or off. 
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */     
-       public static final String CODEGEN_USE_GETTERSETTER_PREFIX= "net.sourceforge.phpdt.ui.gettersetter.prefix.enable";//$NON-NLS-1$
-
-       /**
-        * A named preference that holds a list of prefixes to be removed from a local variable to compute setter 
-        * and gettter names.
-        * <p>
-        * Value is of type <code>String</code>: comma separated list of prefixed
-        * </p>
-        * 
-        * @see #CODEGEN_USE_GETTERSETTER_PREFIX
-        */     
-       public static final String CODEGEN_GETTERSETTER_PREFIX= "net.sourceforge.phpdt.ui.gettersetter.prefix.list";//$NON-NLS-1$
-
-       /**
-        * A named preference that controls if suffix removal during setter/getter generation is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */     
-       public static final String CODEGEN_USE_GETTERSETTER_SUFFIX= "net.sourceforge.phpdt.ui.gettersetter.suffix.enable";//$NON-NLS-1$
-
-       /**
-        * A named preference that holds a list of suffixes to be removed from a local variable to compute setter 
-        * and getter names.
-        * <p>
-        * Value is of type <code>String</code>: comma separated list of suffixes
-        * </p>
-        * 
-        * @see #CODEGEN_USE_GETTERSETTER_SUFFIX
-        */     
-       public static final String CODEGEN_GETTERSETTER_SUFFIX= "net.sourceforge.phpdt.ui.gettersetter.suffix.list"; //$NON-NLS-1$
-
-       /**
-        * A name preference that controls if a JavaDoc stub gets added to newly created types and methods.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String CODEGEN__JAVADOC_STUBS= "net.sourceforge.phpdt.ui.phpdoc"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if a non-phpdoc comment gets added to methods generated via the 
-        * "Override Methods" operation.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String CODEGEN__NON_JAVADOC_COMMENTS= "net.sourceforge.phpdt.ui.seecomments"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if a file comment gets added to newly created files.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String CODEGEN__FILE_COMMENTS= "net.sourceforge.phpdt.ui.filecomments"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that holds a list of comma separated package names. The list specifies the import order used by
-        * the "Organize Imports" opeation.
-        * <p>
-        * Value is of type <code>String</code>: semicolon separated list of package
-        * names
-        * </p>
-        */
-       public static final String ORGIMPORTS_IMPORTORDER= "net.sourceforge.phpdt.ui.importorder"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that specifies the number of imports added before a star-import declaration is used.
-        * <p>
-        * Value is of type <code>Int</code>: positive value specifing the number of non star-import is used
-        * </p>
-        */
-       public static final String ORGIMPORTS_ONDEMANDTHRESHOLD= "net.sourceforge.phpdt.ui.ondemandthreshold"; //$NON-NLS-1$
-
-       /**
-        * A named preferences that controls if types that start with a lower case letters get added by the
-        * "Organize Import" operation.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String ORGIMPORTS_IGNORELOWERCASE= "net.sourceforge.phpdt.ui.ignorelowercasenames"; //$NON-NLS-1$
-
-       /**
-        * A named preference that speficies whether children of a compilation unit are shown in the package explorer.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String SHOW_CU_CHILDREN= "net.sourceforge.phpdt.ui.packages.cuchildren"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the package explorer's selection is linked to the active editor.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String LINK_PACKAGES_TO_EDITOR= "net.sourceforge.phpdt.ui.packages.linktoeditor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the hierarchy view's selection is linked to the active editor.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String LINK_TYPEHIERARCHY_TO_EDITOR= "net.sourceforge.phpdt.ui.packages.linktypehierarchytoeditor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the browsing view's selection is
-        * linked to the active editor.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public static final String LINK_BROWSING_VIEW_TO_EDITOR= "net.sourceforge.phpdt.ui.browsing.linktoeditor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether new projects are generated using source and output folder.
-        * <p>
-        * Value is of type <code>Boolean</code>. if <code>true</code> new projects are created with a source and
-        * output folder. If <code>false</code> source and output folder equals to the project.
-        * </p>
-        */
-       public static final String SRCBIN_FOLDERS_IN_NEWPROJ= "net.sourceforge.phpdt.ui.wizards.srcBinFoldersInNewProjects"; //$NON-NLS-1$
-
-       /**
-        * A named preference that specifies the source folder name used when creating a new Java project. Value is inactive
-        * if <code>SRCBIN_FOLDERS_IN_NEWPROJ</code> is set to <code>false</code>.
-        * <p>
-        * Value is of type <code>String</code>. 
-        * </p>
-        * 
-        * @see #SRCBIN_FOLDERS_IN_NEWPROJ
-        */
-       public static final String SRCBIN_SRCNAME= "net.sourceforge.phpdt.ui.wizards.srcBinFoldersSrcName"; //$NON-NLS-1$
-
-       /**
-        * A named preference that specifies the output folder name used when creating a new Java project. Value is inactive
-        * if <code>SRCBIN_FOLDERS_IN_NEWPROJ</code> is set to <code>false</code>.
-        * <p>
-        * Value is of type <code>String</code>. 
-        * </p>
-        * 
-        * @see #SRCBIN_FOLDERS_IN_NEWPROJ
-        */
-       public static final String SRCBIN_BINNAME= "net.sourceforge.phpdt.ui.wizards.srcBinFoldersBinName"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds a list of possible JRE libraries used by the New Java Project wizard. An library 
-        * consists of a description and an arbitrary number of <code>IClasspathEntry</code>s, that will represent the 
-        * JRE on the new project's classpath. 
-        * <p>
-        * Value is of type <code>String</code>: a semicolon separated list of encoded JRE libraries. 
-        * <code>NEWPROJECT_JRELIBRARY_INDEX</code> defines the currently used library. Clients
-        * should use the method <code>encodeJRELibrary</code> to encode a JRE library into a string
-        * and the methods <code>decodeJRELibraryDescription(String)</code> and <code>
-        * decodeJRELibraryClasspathEntries(String)</code> to decode the description and the array
-        * of classpath entries from an encoded string.
-        * </p>
-        * 
-        * @see #NEWPROJECT_JRELIBRARY_INDEX
-        * @see #encodeJRELibrary(String, IClasspathEntry[])
-        * @see #decodeJRELibraryDescription(String)
-        * @see #decodeJRELibraryClasspathEntries(String)
-        */
-       public static final String NEWPROJECT_JRELIBRARY_LIST= "net.sourceforge.phpdt.ui.wizards.jre.list"; //$NON-NLS-1$
-
-       /**
-        * A named preferences that specifies the current active JRE library.
-        * <p>
-        * Value is of type <code>Int</code>: an index into the list of possible JRE libraries.
-        * </p>
-        * 
-        * @see #NEWPROJECT_JRELIBRARY_LIST
-        */
-       public static final String NEWPROJECT_JRELIBRARY_INDEX= "net.sourceforge.phpdt.ui.wizards.jre.index"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if a new type hierarchy gets opened in a 
-        * new type hierarchy perspective or inside the type hierarchy view part.
-        * <p>
-        * Value is of type <code>String</code>: possible values are <code>
-        * OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE</code> or <code>
-        * OPEN_TYPE_HIERARCHY_IN_VIEW_PART</code>.
-        * </p>
-        * 
-        * @see #OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE
-        * @see #OPEN_TYPE_HIERARCHY_IN_VIEW_PART
-        */
-       public static final String OPEN_TYPE_HIERARCHY= "net.sourceforge.phpdt.ui.openTypeHierarchy"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>OPEN_TYPE_HIERARCHY</code>.
-        * 
-        * @see #OPEN_TYPE_HIERARCHY
-        */
-       public static final String OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE= "perspective"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>OPEN_TYPE_HIERARCHY</code>.
-        * 
-        * @see #OPEN_TYPE_HIERARCHY
-        */
-       public static final String OPEN_TYPE_HIERARCHY_IN_VIEW_PART= "viewPart"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that controls the behaviour when double clicking on a container in the packages view. 
-        * <p>
-        * Value is of type <code>String</code>: possible values are <code>
-        * DOUBLE_CLICK_GOES_INTO</code> or <code>
-        * DOUBLE_CLICK_EXPANDS</code>.
-        * </p>
-        * 
-        * @see #DOUBLE_CLICK_EXPANDS
-        * @see #DOUBLE_CLICK_GOES_INTO
-        */
-       public static final String DOUBLE_CLICK= "packageview.doubleclick"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>DOUBLE_CLICK</code>.
-        * 
-        * @see #DOUBLE_CLICK
-        */
-       public static final String DOUBLE_CLICK_GOES_INTO= "packageview.gointo"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>DOUBLE_CLICK</code>.
-        * 
-        * @see #DOUBLE_CLICK
-        */
-       public static final String DOUBLE_CLICK_EXPANDS= "packageview.doubleclick.expands"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether Java views update their presentation while editing or when saving the
-        * content of an editor. 
-        * <p>
-        * Value is of type <code>String</code>: possible values are <code>
-        * UPDATE_ON_SAVE</code> or <code>
-        * UPDATE_WHILE_EDITING</code>.
-        * </p>
-        * 
-        * @see #UPDATE_ON_SAVE
-        * @see #UPDATE_WHILE_EDITING
-        */
-       public static final String UPDATE_JAVA_VIEWS= "JavaUI.update"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>UPDATE_JAVA_VIEWS</code>
-        * 
-        * @see #UPDATE_JAVA_VIEWS
-        */
-       public static final String UPDATE_ON_SAVE= "JavaUI.update.onSave"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>UPDATE_JAVA_VIEWS</code>
-        * 
-        * @see #UPDATE_JAVA_VIEWS
-        */
-       public static final String UPDATE_WHILE_EDITING= "JavaUI.update.whileEditing"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the path of the Javadoc command used by the Javadoc creation wizard.
-        * <p>
-        * Value is of type <code>String</code>.
-        * </p>
-        */
-       public static final String JAVADOC_COMMAND= "command"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether bracket matching highlighting is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_MATCHING_BRACKETS= "matchingBrackets"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to highlight matching brackets.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string 
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_MATCHING_BRACKETS_COLOR=  "matchingBracketsColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the current line highlighting is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_CURRENT_LINE= "currentLine"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to highlight the current line.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_CURRENT_LINE_COLOR= "currentLineColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the print margin is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_PRINT_MARGIN= "printMargin"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that holds the color used to render the print margin.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_PRINT_MARGIN_COLOR= "printMarginColor"; //$NON-NLS-1$
-
-       /**
-        * Print margin column. Int value.
-        */
-       public final static String EDITOR_PRINT_MARGIN_COLUMN= "printMarginColumn"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used for the find/replace scope.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_FIND_SCOPE_COLOR= AbstractTextEditor.PREFERENCE_COLOR_FIND_SCOPE;
-
-       /**
-        * A named preference that specifies if the editor uses spaces for tabs.
-        * <p>
-        * Value is of type <code>Boolean</code>. If <code>true</code>spaces instead of tabs are used
-        * in the editor. If <code>false</code> the editor inserts a tab character when pressing the tab
-        * key.
-        * </p>
-        */
-       public final static String EDITOR_SPACES_FOR_TABS= "spacesForTabs"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the number of spaces used per tab in the editor.
-        * <p>
-        * Value is of type <code>Int</code>: positive int value specifying the number of
-        * spaces per tab.
-        * </p>
-        */
-       public final static String EDITOR_TAB_WIDTH= "net.sourceforge.phpdt.ui.editor.tab.width"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the outline view selection
-        * should stay in sync with with the element at the current cursor position.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE= "JavaEditor.SyncOutlineOnCursorMove"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if correction indicators are shown in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_CORRECTION_INDICATION= "JavaEditor.ShowTemporaryProblem"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the editor shows problem indicators in text (squiggly lines). 
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_PROBLEM_INDICATION= "problemIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render problem indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see #EDITOR_PROBLEM_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_PROBLEM_INDICATION_COLOR= "problemIndicationColor"; //$NON-NLS-1$
-
-       /**PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR;
-        * A named preference that controls whether the editor shows warning indicators in text (squiggly lines). 
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_WARNING_INDICATION= "warningIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render warning indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see #EDITOR_WARNING_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_WARNING_INDICATION_COLOR= "warningIndicationColor"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that controls whether the editor shows task indicators in text (squiggly lines). 
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_TASK_INDICATION= "taskIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render task indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see #EDITOR_TASK_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_TASK_INDICATION_COLOR= "taskIndicationColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the editor shows bookmark
-        * indicators in text (squiggly lines).
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_BOOKMARK_INDICATION= "bookmarkIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render bookmark indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see #EDITOR_BOOKMARK_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String EDITOR_BOOKMARK_INDICATION_COLOR= "bookmarkIndicationColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the editor shows search
-        * indicators in text (squiggly lines).
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_SEARCH_RESULT_INDICATION= "searchResultIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render search indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see #EDITOR_SEARCH_RESULT_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String EDITOR_SEARCH_RESULT_INDICATION_COLOR= "searchResultIndicationColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the editor shows unknown
-        * indicators in text (squiggly lines).
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_UNKNOWN_INDICATION= "othersIndication"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render unknown
-        * indicators.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see #EDITOR_UNKNOWN_INDICATION
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String EDITOR_UNKNOWN_INDICATION_COLOR= "othersIndicationColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the overview ruler shows error
-        * indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER= "errorIndicationInOverviewRuler"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that controls whether the overview ruler shows warning
-        * indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER= "warningIndicationInOverviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the overview ruler shows task
-        * indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER= "taskIndicationInOverviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the overview ruler shows
-        * bookmark indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER= "bookmarkIndicationInOverviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the overview ruler shows
-        * search result indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER= "searchResultIndicationInOverviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the overview ruler shows
-        * unknown indicators.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER= "othersIndicationInOverviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'close strings' feature
-        *  is   enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_CLOSE_STRINGS= "closeStrings"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'wrap strings' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_WRAP_STRINGS= "wrapStrings"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'close brackets' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_CLOSE_BRACKETS= "closeBrackets"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'close braces' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_CLOSE_BRACES= "closeBraces"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'close php docs' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_CLOSE_JAVADOCS= "closeJavaDocs"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'add JavaDoc tags' feature
-        * is enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_ADD_JAVADOC_TAGS= "addJavaDocTags"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'format Javadoc tags'
-        * feature is enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_FORMAT_JAVADOCS= "formatJavaDocs"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'smart paste' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_SMART_PASTE= "smartPaste"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether the 'smart home-end' feature is
-        * enabled.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_SMART_HOME_END= AbstractTextEditor.PREFERENCE_NAVIGATION_SMART_HOME_END;
-
-       /**
-        * A named preference that controls if temporary problems are evaluated and shown in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_EVALUTE_TEMPORARY_PROBLEMS= "handleTemporaryProblems"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the overview ruler is shown in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_OVERVIEW_RULER= "overviewRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the line number ruler is shown in the UI.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_LINE_NUMBER_RULER= "lineNumberRuler"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render line numbers inside the line number ruler.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @see #EDITOR_LINE_NUMBER_RULER
-        */
-       public final static String EDITOR_LINE_NUMBER_RULER_COLOR= "lineNumberColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render linked positions inside code templates.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_LINKED_POSITION_COLOR= "linkedPositionColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used as the text foreground.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_FOREGROUND_COLOR= AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND;
-
-       /**
-        * A named preference that describes if the system default foreground color
-        * is used as the text foreground.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_FOREGROUND_DEFAULT_COLOR= AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT;
-
-       /**
-        * A named preference that holds the color used as the text background.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_BACKGROUND_COLOR= AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND;
-
-       /**
-        * A named preference that describes if the system default background color
-        * is used as the text foreground.
-        * <p>
-        * Value is of type <code>Boolean</code>. 
-        * </p>
-        */
-       public final static String EDITOR_BACKGROUND_DEFAULT_COLOR= AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT;
-
-       /**
-        * Preference key suffix for bold text style preference keys.
-        */
-       public static final String EDITOR_BOLD_SUFFIX= "_bold"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the color used to render multi line comments.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_MULTI_LINE_COMMENT_COLOR= IJavaColorConstants.PHP_MULTI_LINE_COMMENT;
-
-       /**
-        * A named preference that controls whether multi line comments are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>. If <code>true</code> multi line comments are rendered
-        * in bold. If <code>false</code> the are rendered using no font style attribute.
-        * </p>
-        */
-       public final static String EDITOR_MULTI_LINE_COMMENT_BOLD= IJavaColorConstants.PHP_MULTI_LINE_COMMENT + EDITOR_BOLD_SUFFIX; 
-
-       /**
-        * A named preference that holds the color used to render single line comments.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_SINGLE_LINE_COMMENT_COLOR= IJavaColorConstants.PHP_SINGLE_LINE_COMMENT;
-
-       /**
-        * A named preference that controls whether sinle line comments are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>. If <code>true</code> single line comments are rendered
-        * in bold. If <code>false</code> the are rendered using no font style attribute.
-        * </p>
-        */
-       public final static String EDITOR_SINGLE_LINE_COMMENT_BOLD= IJavaColorConstants.PHP_SINGLE_LINE_COMMENT + EDITOR_BOLD_SUFFIX; 
-
-       /**
-        * A named preference that holds the color used to render php keywords.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVA_KEYWORD_COLOR= IJavaColorConstants.PHP_KEYWORD;
-
-       /**
-        * A named preference that controls whether keywords are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVA_KEYWORD_BOLD= IJavaColorConstants.PHP_KEYWORD + EDITOR_BOLD_SUFFIX;
+  public static final String APPEARANCE_OVERRIDE_INDICATOR = "net.sourceforge.phpdt.ui.overrideindicator"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the pattern used for package name compression.
+   * <p>
+   * Value is of type <code>String</code>. For example foe the given package name 'org.eclipse.jdt' pattern
+   * '.' will compress it to '..jdt', '1~' to 'o~.e~.jdt'.
+   * </p>
+   */
+  public static final String APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW = "PackagesView.pkgNamePatternForPackagesView"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if package name compression is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @see #APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW
+   */
+  public static final String APPEARANCE_COMPRESS_PACKAGE_NAMES = "net.sourceforge.phpdt.ui.compresspackagenames"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if empty inner packages are folded in
+   * the hierarchical mode of the package explorer.
+   * <p>
+   * Value is of type <code>Boolean</code>: if <code>true</code> empty
+   * inner packages are folded.
+   * </p>
+   * @since 2.1
+   */
+  public static final String APPEARANCE_FOLD_PACKAGES_IN_PACKAGE_EXPLORER = "net.sourceforge.phpdt.ui.flatPackagesInPackageExplorer"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines how member elements are ordered by the
+   * Java views using the <code>JavaElementSorter</code>.
+   * <p>
+   * Value is of type <code>String</code>: A comma separated list of the
+   * following entries. Each entry must be in the list, no duplication. List
+   * order defines the sort order.
+   * <ul>
+   * <li><b>T</b>: Types</li>
+   * <li><b>C</b>: Constructors</li>
+   * <li><b>I</b>: Initializers</li>
+   * <li><b>M</b>: Methods</li>
+   * <li><b>F</b>: Fields</li>
+   * <li><b>SI</b>: Static Initializers</li>
+   * <li><b>SM</b>: Static Methods</li>
+   * <li><b>SF</b>: Static Fields</li>
+   * </ul>
+   * </p>
+   * @since 2.1
+   */
+  public static final String APPEARANCE_MEMBER_SORT_ORDER = "outlinesortoption"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if prefix removal during setter/getter generation is turned on or off. 
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String CODEGEN_USE_GETTERSETTER_PREFIX = "net.sourceforge.phpdt.ui.gettersetter.prefix.enable"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds a list of prefixes to be removed from a local variable to compute setter 
+   * and gettter names.
+   * <p>
+   * Value is of type <code>String</code>: comma separated list of prefixed
+   * </p>
+   * 
+   * @see #CODEGEN_USE_GETTERSETTER_PREFIX
+   */
+  public static final String CODEGEN_GETTERSETTER_PREFIX = "net.sourceforge.phpdt.ui.gettersetter.prefix.list"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if suffix removal during setter/getter generation is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String CODEGEN_USE_GETTERSETTER_SUFFIX = "net.sourceforge.phpdt.ui.gettersetter.suffix.enable"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds a list of suffixes to be removed from a local variable to compute setter 
+   * and getter names.
+   * <p>
+   * Value is of type <code>String</code>: comma separated list of suffixes
+   * </p>
+   * 
+   * @see #CODEGEN_USE_GETTERSETTER_SUFFIX
+   */
+  public static final String CODEGEN_GETTERSETTER_SUFFIX = "net.sourceforge.phpdt.ui.gettersetter.suffix.list"; //$NON-NLS-1$
+
+  /**
+   * A name preference that controls if a JavaDoc stub gets added to newly created types and methods.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String CODEGEN__JAVADOC_STUBS = "net.sourceforge.phpdt.ui.phpdoc"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if a non-phpdoc comment gets added to methods generated via the 
+   * "Override Methods" operation.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String CODEGEN__NON_JAVADOC_COMMENTS = "net.sourceforge.phpdt.ui.seecomments"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if a file comment gets added to newly created files.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String CODEGEN__FILE_COMMENTS = "net.sourceforge.phpdt.ui.filecomments"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds a list of comma separated package names. The list specifies the import order used by
+   * the "Organize Imports" opeation.
+   * <p>
+   * Value is of type <code>String</code>: semicolon separated list of package
+   * names
+   * </p>
+   */
+  public static final String ORGIMPORTS_IMPORTORDER = "net.sourceforge.phpdt.ui.importorder"; //$NON-NLS-1$
+
+  /**
+   * A named preference that specifies the number of imports added before a star-import declaration is used.
+   * <p>
+   * Value is of type <code>Int</code>: positive value specifing the number of non star-import is used
+   * </p>
+   */
+  public static final String ORGIMPORTS_ONDEMANDTHRESHOLD = "net.sourceforge.phpdt.ui.ondemandthreshold"; //$NON-NLS-1$
+
+  /**
+   * A named preferences that controls if types that start with a lower case letters get added by the
+   * "Organize Import" operation.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String ORGIMPORTS_IGNORELOWERCASE = "net.sourceforge.phpdt.ui.ignorelowercasenames"; //$NON-NLS-1$
+
+  /**
+   * A named preference that speficies whether children of a compilation unit are shown in the package explorer.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String SHOW_CU_CHILDREN = "net.sourceforge.phpdt.ui.packages.cuchildren"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the package explorer's selection is linked to the active editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String LINK_PACKAGES_TO_EDITOR = "net.sourceforge.phpdt.ui.packages.linktoeditor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the hierarchy view's selection is linked to the active editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String LINK_TYPEHIERARCHY_TO_EDITOR = "net.sourceforge.phpdt.ui.packages.linktypehierarchytoeditor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the browsing view's selection is
+   * linked to the active editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public static final String LINK_BROWSING_VIEW_TO_EDITOR = "net.sourceforge.phpdt.ui.browsing.linktoeditor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether new projects are generated using source and output folder.
+   * <p>
+   * Value is of type <code>Boolean</code>. if <code>true</code> new projects are created with a source and
+   * output folder. If <code>false</code> source and output folder equals to the project.
+   * </p>
+   */
+  public static final String SRCBIN_FOLDERS_IN_NEWPROJ = "net.sourceforge.phpdt.ui.wizards.srcBinFoldersInNewProjects"; //$NON-NLS-1$
+
+  /**
+   * A named preference that specifies the source folder name used when creating a new Java project. Value is inactive
+   * if <code>SRCBIN_FOLDERS_IN_NEWPROJ</code> is set to <code>false</code>.
+   * <p>
+   * Value is of type <code>String</code>. 
+   * </p>
+   * 
+   * @see #SRCBIN_FOLDERS_IN_NEWPROJ
+   */
+  public static final String SRCBIN_SRCNAME = "net.sourceforge.phpdt.ui.wizards.srcBinFoldersSrcName"; //$NON-NLS-1$
+
+  /**
+   * A named preference that specifies the output folder name used when creating a new Java project. Value is inactive
+   * if <code>SRCBIN_FOLDERS_IN_NEWPROJ</code> is set to <code>false</code>.
+   * <p>
+   * Value is of type <code>String</code>. 
+   * </p>
+   * 
+   * @see #SRCBIN_FOLDERS_IN_NEWPROJ
+   */
+  public static final String SRCBIN_BINNAME = "net.sourceforge.phpdt.ui.wizards.srcBinFoldersBinName"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds a list of possible JRE libraries used by the New Java Project wizard. An library 
+   * consists of a description and an arbitrary number of <code>IClasspathEntry</code>s, that will represent the 
+   * JRE on the new project's classpath. 
+   * <p>
+   * Value is of type <code>String</code>: a semicolon separated list of encoded JRE libraries. 
+   * <code>NEWPROJECT_JRELIBRARY_INDEX</code> defines the currently used library. Clients
+   * should use the method <code>encodeJRELibrary</code> to encode a JRE library into a string
+   * and the methods <code>decodeJRELibraryDescription(String)</code> and <code>
+   * decodeJRELibraryClasspathEntries(String)</code> to decode the description and the array
+   * of classpath entries from an encoded string.
+   * </p>
+   * 
+   * @see #NEWPROJECT_JRELIBRARY_INDEX
+   * @see #encodeJRELibrary(String, IClasspathEntry[])
+   * @see #decodeJRELibraryDescription(String)
+   * @see #decodeJRELibraryClasspathEntries(String)
+   */
+  public static final String NEWPROJECT_JRELIBRARY_LIST = "net.sourceforge.phpdt.ui.wizards.jre.list"; //$NON-NLS-1$
+
+  /**
+   * A named preferences that specifies the current active JRE library.
+   * <p>
+   * Value is of type <code>Int</code>: an index into the list of possible JRE libraries.
+   * </p>
+   * 
+   * @see #NEWPROJECT_JRELIBRARY_LIST
+   */
+  public static final String NEWPROJECT_JRELIBRARY_INDEX = "net.sourceforge.phpdt.ui.wizards.jre.index"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if a new type hierarchy gets opened in a 
+   * new type hierarchy perspective or inside the type hierarchy view part.
+   * <p>
+   * Value is of type <code>String</code>: possible values are <code>
+   * OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE</code> or <code>
+   * OPEN_TYPE_HIERARCHY_IN_VIEW_PART</code>.
+   * </p>
+   * 
+   * @see #OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE
+   * @see #OPEN_TYPE_HIERARCHY_IN_VIEW_PART
+   */
+  public static final String OPEN_TYPE_HIERARCHY = "net.sourceforge.phpdt.ui.openTypeHierarchy"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>OPEN_TYPE_HIERARCHY</code>.
+   * 
+   * @see #OPEN_TYPE_HIERARCHY
+   */
+  public static final String OPEN_TYPE_HIERARCHY_IN_PERSPECTIVE = "perspective"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>OPEN_TYPE_HIERARCHY</code>.
+   * 
+   * @see #OPEN_TYPE_HIERARCHY
+   */
+  public static final String OPEN_TYPE_HIERARCHY_IN_VIEW_PART = "viewPart"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the behaviour when double clicking on a container in the packages view. 
+   * <p>
+   * Value is of type <code>String</code>: possible values are <code>
+   * DOUBLE_CLICK_GOES_INTO</code> or <code>
+   * DOUBLE_CLICK_EXPANDS</code>.
+   * </p>
+   * 
+   * @see #DOUBLE_CLICK_EXPANDS
+   * @see #DOUBLE_CLICK_GOES_INTO
+   */
+  public static final String DOUBLE_CLICK = "packageview.doubleclick"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>DOUBLE_CLICK</code>.
+   * 
+   * @see #DOUBLE_CLICK
+   */
+  public static final String DOUBLE_CLICK_GOES_INTO = "packageview.gointo"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>DOUBLE_CLICK</code>.
+   * 
+   * @see #DOUBLE_CLICK
+   */
+  public static final String DOUBLE_CLICK_EXPANDS = "packageview.doubleclick.expands"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether Java views update their presentation while editing or when saving the
+   * content of an editor. 
+   * <p>
+   * Value is of type <code>String</code>: possible values are <code>
+   * UPDATE_ON_SAVE</code> or <code>
+   * UPDATE_WHILE_EDITING</code>.
+   * </p>
+   * 
+   * @see #UPDATE_ON_SAVE
+   * @see #UPDATE_WHILE_EDITING
+   */
+  public static final String UPDATE_JAVA_VIEWS = "JavaUI.update"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>UPDATE_JAVA_VIEWS</code>
+   * 
+   * @see #UPDATE_JAVA_VIEWS
+   */
+  public static final String UPDATE_ON_SAVE = "JavaUI.update.onSave"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>UPDATE_JAVA_VIEWS</code>
+   * 
+   * @see #UPDATE_JAVA_VIEWS
+   */
+  public static final String UPDATE_WHILE_EDITING = "JavaUI.update.whileEditing"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the path of the Javadoc command used by the Javadoc creation wizard.
+   * <p>
+   * Value is of type <code>String</code>.
+   * </p>
+   */
+  public static final String JAVADOC_COMMAND = "command"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether bracket matching highlighting is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_MATCHING_BRACKETS = "matchingBrackets"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to highlight matching brackets.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string 
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_MATCHING_BRACKETS_COLOR = "matchingBracketsColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the current line highlighting is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_CURRENT_LINE = "currentLine"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to highlight the current line.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_CURRENT_LINE_COLOR = "currentLineColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the print margin is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_PRINT_MARGIN = "printMargin"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render the print margin.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_PRINT_MARGIN_COLOR = "printMarginColor"; //$NON-NLS-1$
+
+  /**
+   * Print margin column. Int value.
+   */
+  public final static String EDITOR_PRINT_MARGIN_COLUMN = "printMarginColumn"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used for the find/replace scope.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_FIND_SCOPE_COLOR = AbstractTextEditor.PREFERENCE_COLOR_FIND_SCOPE;
+
+  /**
+   * A named preference that specifies if the editor uses spaces for tabs.
+   * <p>
+   * Value is of type <code>Boolean</code>. If <code>true</code>spaces instead of tabs are used
+   * in the editor. If <code>false</code> the editor inserts a tab character when pressing the tab
+   * key.
+   * </p>
+   */
+  public final static String EDITOR_SPACES_FOR_TABS = "spacesForTabs"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the number of spaces used per tab in the editor.
+   * <p>
+   * Value is of type <code>Int</code>: positive int value specifying the number of
+   * spaces per tab.
+   * </p>
+   */
+  public final static String EDITOR_TAB_WIDTH = "net.sourceforge.phpdt.ui.editor.tab.width"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the outline view selection
+   * should stay in sync with with the element at the current cursor position.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE = "JavaEditor.SyncOutlineOnCursorMove"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if correction indicators are shown in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_CORRECTION_INDICATION = "JavaEditor.ShowTemporaryProblem"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the editor shows problem indicators in text (squiggly lines). 
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_PROBLEM_INDICATION = "problemIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render problem indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see #EDITOR_PROBLEM_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_PROBLEM_INDICATION_COLOR = "problemIndicationColor"; //$NON-NLS-1$
+
+  /**PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR;
+   * A named preference that controls whether the editor shows warning indicators in text (squiggly lines). 
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_WARNING_INDICATION = "warningIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render warning indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see #EDITOR_WARNING_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_WARNING_INDICATION_COLOR = "warningIndicationColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the editor shows task indicators in text (squiggly lines). 
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_TASK_INDICATION = "taskIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render task indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see #EDITOR_TASK_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_TASK_INDICATION_COLOR = "taskIndicationColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the editor shows bookmark
+   * indicators in text (squiggly lines).
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_BOOKMARK_INDICATION = "bookmarkIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render bookmark indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see #EDITOR_BOOKMARK_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String EDITOR_BOOKMARK_INDICATION_COLOR = "bookmarkIndicationColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the editor shows search
+   * indicators in text (squiggly lines).
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_SEARCH_RESULT_INDICATION = "searchResultIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render search indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see #EDITOR_SEARCH_RESULT_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String EDITOR_SEARCH_RESULT_INDICATION_COLOR = "searchResultIndicationColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the editor shows unknown
+   * indicators in text (squiggly lines).
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_UNKNOWN_INDICATION = "othersIndication"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render unknown
+   * indicators.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see #EDITOR_UNKNOWN_INDICATION
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String EDITOR_UNKNOWN_INDICATION_COLOR = "othersIndicationColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows error
+   * indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER = "errorIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows warning
+   * indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER = "warningIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows task
+   * indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER = "taskIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows
+   * bookmark indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER = "bookmarkIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows
+   * search result indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER = "searchResultIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the overview ruler shows
+   * unknown indicators.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER = "othersIndicationInOverviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close strings' feature
+   *  is   enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_CLOSE_STRINGS = "closeStrings"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'wrap strings' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_WRAP_STRINGS = "wrapStrings"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close brackets' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_CLOSE_BRACKETS = "closeBrackets"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close braces' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_CLOSE_BRACES = "closeBraces"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close php docs' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_CLOSE_JAVADOCS = "closeJavaDocs"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'add JavaDoc tags' feature
+   * is enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_ADD_JAVADOC_TAGS = "addJavaDocTags"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'format Javadoc tags'
+   * feature is enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_FORMAT_JAVADOCS = "formatJavaDocs"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'smart paste' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_SMART_PASTE = "smartPaste"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'smart home-end' feature is
+   * enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String EDITOR_SMART_HOME_END = AbstractTextEditor.PREFERENCE_NAVIGATION_SMART_HOME_END;
+
+  /**
+   * A named preference that controls if temporary problems are evaluated and shown in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_EVALUTE_TEMPORARY_PROBLEMS = "handleTemporaryProblems"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the overview ruler is shown in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_OVERVIEW_RULER = "overviewRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the line number ruler is shown in the UI.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_LINE_NUMBER_RULER = "lineNumberRuler"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render line numbers inside the line number ruler.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @see #EDITOR_LINE_NUMBER_RULER
+   */
+  public final static String EDITOR_LINE_NUMBER_RULER_COLOR = "lineNumberColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render linked positions inside code templates.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_LINKED_POSITION_COLOR = "linkedPositionColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used as the text foreground.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_FOREGROUND_COLOR = AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND;
+
+  /**
+   * A named preference that describes if the system default foreground color
+   * is used as the text foreground.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_FOREGROUND_DEFAULT_COLOR = AbstractTextEditor.PREFERENCE_COLOR_FOREGROUND_SYSTEM_DEFAULT;
+
+  /**
+   * A named preference that holds the color used as the text background.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_BACKGROUND_COLOR = AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND;
+
+  /**
+   * A named preference that describes if the system default background color
+   * is used as the text foreground.
+   * <p>
+   * Value is of type <code>Boolean</code>. 
+   * </p>
+   */
+  public final static String EDITOR_BACKGROUND_DEFAULT_COLOR = AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT;
+
+  /**
+   * Preference key suffix for bold text style preference keys.
+   */
+  public static final String EDITOR_BOLD_SUFFIX = "_bold"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the color used to render multi line comments.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_MULTI_LINE_COMMENT_COLOR = IJavaColorConstants.PHP_MULTI_LINE_COMMENT;
+
+  /**
+   * A named preference that controls whether multi line comments are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>. If <code>true</code> multi line comments are rendered
+   * in bold. If <code>false</code> the are rendered using no font style attribute.
+   * </p>
+   */
+  public final static String EDITOR_MULTI_LINE_COMMENT_BOLD = IJavaColorConstants.PHP_MULTI_LINE_COMMENT + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render single line comments.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_SINGLE_LINE_COMMENT_COLOR = IJavaColorConstants.PHP_SINGLE_LINE_COMMENT;
+
+  /**
+   * A named preference that controls whether sinle line comments are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>. If <code>true</code> single line comments are rendered
+   * in bold. If <code>false</code> the are rendered using no font style attribute.
+   * </p>
+   */
+  public final static String EDITOR_SINGLE_LINE_COMMENT_BOLD = IJavaColorConstants.PHP_SINGLE_LINE_COMMENT + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render php keywords.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVA_KEYWORD_COLOR = IJavaColorConstants.PHP_KEYWORD;
+
+  /**
+   * A named preference that controls whether keywords are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVA_KEYWORD_BOLD = IJavaColorConstants.PHP_KEYWORD + EDITOR_BOLD_SUFFIX;
 
   /**
    * A named preference that holds the color used to render predefined php
@@ -956,7 +956,7 @@ public class PreferenceConstants {
    * @see org.eclipse.jface.resource.StringConverter
    * @see org.eclipse.jface.preference.PreferenceConverter
    */
-  public final static String EDITOR_PHP_FUNCTIONNAME_COLOR= IJavaColorConstants.PHP_FUNCTIONNAME;
+  public final static String EDITOR_PHP_FUNCTIONNAME_COLOR = IJavaColorConstants.PHP_FUNCTIONNAME;
 
   /**
    * A named preference that controls whether function names are rendered in
@@ -965,7 +965,7 @@ public class PreferenceConstants {
    * Value is of type <code>Boolean</code>.
    * </p>
    */
-  public final static String EDITOR_PHP_FUNCTIONNAME_BOLD= IJavaColorConstants.PHP_FUNCTIONNAME + EDITOR_BOLD_SUFFIX;
+  public final static String EDITOR_PHP_FUNCTIONNAME_BOLD = IJavaColorConstants.PHP_FUNCTIONNAME + EDITOR_BOLD_SUFFIX;
 
   /**
    * A named preference that holds the color used to render php
@@ -978,7 +978,7 @@ public class PreferenceConstants {
    * @see org.eclipse.jface.resource.StringConverter
    * @see org.eclipse.jface.preference.PreferenceConverter
    */
-  public final static String EDITOR_PHP_VARIABLE_COLOR= IJavaColorConstants.PHP_VARIABLE;
+  public final static String EDITOR_PHP_VARIABLE_COLOR = IJavaColorConstants.PHP_VARIABLE;
 
   /**
    * A named preference that controls whether variables are rendered in bold.
@@ -986,7 +986,7 @@ public class PreferenceConstants {
    * Value is of type <code>Boolean</code>.
    * </p>
    */
-  public final static String EDITOR_PHP_VARIABLE_BOLD= IJavaColorConstants.PHP_VARIABLE + EDITOR_BOLD_SUFFIX;
+  public final static String EDITOR_PHP_VARIABLE_BOLD = IJavaColorConstants.PHP_VARIABLE + EDITOR_BOLD_SUFFIX;
 
   /**
    * A named preference that holds the color used to render php constants.
@@ -998,7 +998,7 @@ public class PreferenceConstants {
    * @see org.eclipse.jface.resource.StringConverter
    * @see org.eclipse.jface.preference.PreferenceConverter
    */
-  public final static String EDITOR_PHP_CONSTANT_COLOR= IJavaColorConstants.PHP_CONSTANT;
+  public final static String EDITOR_PHP_CONSTANT_COLOR = IJavaColorConstants.PHP_CONSTANT;
 
   /**
    * A named preference that controls whether constants are rendered in bold.
@@ -1006,7 +1006,7 @@ public class PreferenceConstants {
    * Value is of type <code>Boolean</code>.
    * </p>
    */
-  public final static String EDITOR_PHP_CONSTANT_BOLD= IJavaColorConstants.PHP_CONSTANT + EDITOR_BOLD_SUFFIX;
+  public final static String EDITOR_PHP_CONSTANT_BOLD = IJavaColorConstants.PHP_CONSTANT + EDITOR_BOLD_SUFFIX;
 
   /**
    * A named preference that holds the color used to render php types.
@@ -1018,7 +1018,7 @@ public class PreferenceConstants {
    * @see org.eclipse.jface.resource.StringConverter
    * @see org.eclipse.jface.preference.PreferenceConverter
    */
-  public final static String EDITOR_PHP_TYPE_COLOR= IJavaColorConstants.PHP_TYPE;
+  public final static String EDITOR_PHP_TYPE_COLOR = IJavaColorConstants.PHP_TYPE;
 
   /**
    * A named preference that controls whether types are rendered in bold.
@@ -1026,836 +1026,846 @@ public class PreferenceConstants {
    * Value is of type <code>Boolean</code>.
    * </p>
    */
-  public final static String EDITOR_PHP_TYPE_BOLD= IJavaColorConstants.PHP_TYPE + EDITOR_BOLD_SUFFIX;
-
-
-       /**
-        * A named preference that holds the color used to render string constants.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_STRING_COLOR= IJavaColorConstants.PHP_STRING;
-
-       /**
-        * A named preference that controls whether string constants are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_STRING_BOLD= IJavaColorConstants.PHP_STRING + EDITOR_BOLD_SUFFIX;
-
-       /**
-        * A named preference that holds the color used to render php default text.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVA_DEFAULT_COLOR= IJavaColorConstants.PHP_DEFAULT;
-
-       /**
-        * A named preference that controls whether Java default text is rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVA_DEFAULT_BOLD= IJavaColorConstants.PHP_DEFAULT + EDITOR_BOLD_SUFFIX;
-
-       /**
-        * A named preference that holds the color used to render phpdoc keywords.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVADOC_KEYWORD_COLOR= IJavaColorConstants.PHPDOC_KEYWORD;
-
-       /**
-        * A named preference that controls whether phpdoc keywords are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVADOC_KEYWORD_BOLD= IJavaColorConstants.PHPDOC_KEYWORD + EDITOR_BOLD_SUFFIX;
-
-       /**
-        * A named preference that holds the color used to render phpdoc tags.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVADOC_TAG_COLOR= IJavaColorConstants.PHPDOC_TAG;
-
-       /**
-        * A named preference that controls whether phpdoc tags are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVADOC_TAG_BOLD= IJavaColorConstants.PHPDOC_TAG + EDITOR_BOLD_SUFFIX;
-
-       /**
-        * A named preference that holds the color used to render phpdoc links.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVADOC_LINKS_COLOR= IJavaColorConstants.PHPDOC_LINK;
-
-       /**
-        * A named preference that controls whether phpdoc links are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVADOC_LINKS_BOLD= IJavaColorConstants.PHPDOC_LINK + EDITOR_BOLD_SUFFIX;
-               
-       /**
-        * A named preference that holds the color used to render phpdoc default text.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String EDITOR_JAVADOC_DEFAULT_COLOR= IJavaColorConstants.PHPDOC_DEFAULT;
-
-       /**
-        * A named preference that controls whether phpdoc default text is rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String EDITOR_JAVADOC_DEFAULT_BOLD= IJavaColorConstants.PHPDOC_DEFAULT + EDITOR_BOLD_SUFFIX;
-
-       /**
-        * A named preference that holds the color used for 'linked-mode' underline.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String EDITOR_LINK_COLOR= "linkColor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls whether hover tooltips in the editor are turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String EDITOR_SHOW_HOVER= "net.sourceforge.phpdt.ui.editor.showHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when no control key is
-        * pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a hover
-        * contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI
-        * @since 2.1
-        */
-       public static final String EDITOR_NONE_HOVER= "noneHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>CTRL</code> modifier key is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI
-        * @since 2.1
-        */
-       public static final String EDITOR_CTRL_HOVER= "ctrlHover"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>SHIFT</code> modifier key is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI ID_*_HOVER
-        * @since 2.1
-        */
-       public static final String EDITOR_SHIFT_HOVER= "shiftHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>CTRL + ALT</code> modifier keys is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI ID_*_HOVER
-        * @since 2.1
-        */
-       public static final String EDITOR_CTRL_ALT_HOVER= "ctrlAltHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>CTRL + ALT + SHIFT</code> modifier keys is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI ID_*_HOVER
-        * @since 2.1
-        */
-       public static final String EDITOR_CTRL_ALT_SHIFT_HOVER= "ctrlAltShiftHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>CTRL + SHIFT</code> modifier keys is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI ID_*_HOVER
-        * @since 2.1
-        */
-       public static final String EDITOR_CTRL_SHIFT_HOVER= "ctrlShiftHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover shown when the
-        * <code>ALT</code> modifier key is pressed.
-        * <p>Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code>,
-        * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code>  or the hover id of a
-        * hover contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        * @see #EDITOR_NO_HOVER_CONFIGURED_ID
-        * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
-        * @see JavaUI ID_*_HOVER
-        * @since 2.1
-        */
-       public static final String EDITOR_ALT_SHIFT_HOVER= "altShiftHover"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preferences for hover configuration to
-        * descibe that no hover should be shown for the given key modifiers.
-        * @since 2.1
-        */
-       public static final String EDITOR_NO_HOVER_CONFIGURED_ID= "noHoverConfiguredId"; //$NON-NLS-1$
-       
-       /**
-        * A string value used by the named preferences for hover configuration to
-        * descibe that the default hover should be shown for the given key
-        * modifiers. The default hover is described by the
-        * <code>EDITOR_DEFAULT_HOVER</code> property.
-        * @since 2.1
-        */
-       public static final String EDITOR_DEFAULT_HOVER_CONFIGURED_ID= "defaultHoverConfiguredId"; //$NON-NLS-1$
-
-       /**
-        * A named preference that defines the hover named the 'default hover'.
-        * Value is of type <code>String</code>: possible values are <code>
-        * EDITOR_NO_HOVER_CONFIGURED_ID</code> or <code> the hover id of a hover
-        * contributed as <code>phpEditorTextHovers</code>.
-        * </p>
-        *@since 2.1
-        */
-       public static final String EDITOR_DEFAULT_HOVER= "defaultHover"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if segmented view (show selected element only) is turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String EDITOR_SHOW_SEGMENTS= "net.sourceforge.phpdt.ui.editor.showSegments"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the Java code assist gets auto activated.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String CODEASSIST_AUTOACTIVATION= "content_assist_autoactivation"; //$NON-NLS-1$
-
-       /**
-        * A name preference that holds the auto activation delay time in milli seconds.
-        * <p>
-        * Value is of type <code>Int</code>.
-        * </p>
-        */
-       public final static String CODEASSIST_AUTOACTIVATION_DELAY= "content_assist_autoactivation_delay"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if code assist contains only visible proposals.
-        * <p>
-        * Value is of type <code>Boolean</code>. if <code>true<code> code assist only contains visible members. If 
-        * <code>false</code> all members are included.
-        * </p>
-        */
-       public final static String CODEASSIST_SHOW_VISIBLE_PROPOSALS= "content_assist_show_visible_proposals"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the Java code assist inserts a
-        * proposal automatically if only one proposal is available.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String CODEASSIST_AUTOINSERT= "content_assist_autoinsert"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the Java code assist adds import
-        * statements.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String CODEASSIST_ADDIMPORT= "content_assist_add_import"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that controls if the Java code assist only inserts
-        * completions. If set to false the proposals can also _replace_ code.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String CODEASSIST_INSERT_COMPLETION= "content_assist_insert_completion"; //$NON-NLS-1$      
-
-       /**
-        * A named preference that controls whether code assist proposals filtering is case sensitive or not.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String CODEASSIST_CASE_SENSITIVITY= "content_assist_case_sensitivity"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that defines if code assist proposals are sorted in alphabetical order.
-        * <p>
-        * Value is of type <code>Boolean</code>. If <code>true</code> that are sorted in alphabetical 
-        * order. If <code>false</code> that are unsorted.
-        * </p>
-        */
-       public final static String CODEASSIST_ORDER_PROPOSALS= "content_assist_order_proposals"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if argument names are filled in when a method is selected from as list
-        * of code assist proposal.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public final static String CODEASSIST_FILL_ARGUMENT_NAMES= "content_assist_fill_method_arguments"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if method arguments are guessed when a
-        * method is selected from as list of code assist proposal.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String CODEASSIST_GUESS_METHOD_ARGUMENTS= "content_assist_guess_method_arguments"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the characters that auto activate code assist in Java code.
-        * <p>
-        * Value is of type <code>Sring</code>. All characters that trigger auto code assist in Java code.
-        * </p>
-        */
-       public final static String CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA= "content_assist_autoactivation_triggers_php"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the characters that auto activate code assist in Javadoc.
-        * <p>
-        * Value is of type <code>Sring</code>. All characters that trigger auto code assist in Javadoc.
-        * </p>
-        */
-       public final static String CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC= "content_assist_autoactivation_triggers_phpdoc"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the background color used in the code assist selection dialog.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String CODEASSIST_PROPOSALS_BACKGROUND= "content_assist_proposals_background"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the foreground color used in the code assist selection dialog.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String CODEASSIST_PROPOSALS_FOREGROUND= "content_assist_proposals_foreground"; //$NON-NLS-1$
-       
-       /**
-        * A named preference that holds the background color used for parameter hints.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String CODEASSIST_PARAMETERS_BACKGROUND= "content_assist_parameters_background"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the foreground color used in the code assist selection dialog
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        * 
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        */
-       public final static String CODEASSIST_PARAMETERS_FOREGROUND= "content_assist_parameters_foreground"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the background color used in the code
-        * assist selection dialog to mark replaced code.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String CODEASSIST_REPLACEMENT_BACKGROUND= "content_assist_completion_replacement_background"; //$NON-NLS-1$
-
-       /**
-        * A named preference that holds the foreground color used in the code
-        * assist selection dialog to mark replaced code.
-        * <p>
-        * Value is of type <code>String</code>. A RGB color value encoded as a string
-        * using class <code>PreferenceConverter</code>
-        * </p>
-        *
-        * @see org.eclipse.jface.resource.StringConverter
-        * @see org.eclipse.jface.preference.PreferenceConverter
-        * @since 2.1
-        */
-       public final static String CODEASSIST_REPLACEMENT_FOREGROUND= "content_assist_completion_replacement_foreground"; //$NON-NLS-1$
-
-
-       /**
-        * A named preference that controls the behaviour of the refactoring wizard for showing the error page. 
-        * <p>
-        * Value is of type <code>String</code>. Valid values are: 
-        * <code>REFACTOR_FATAL_SEVERITY</code>,
-        * <code>REFACTOR_ERROR_SEVERITY</code>,
-        * <code>REFACTOR_WARNING_SEVERITY</code>
-        * <code>REFACTOR_INFO_SEVERITY</code>,
-        * <code>REFACTOR_OK_SEVERITY</code>.
-        * </p>
-        * 
-        * @see #REFACTOR_FATAL_SEVERITY
-        * @see #REFACTOR_ERROR_SEVERITY
-        * @see #REFACTOR_WARNING_SEVERITY
-        * @see #REFACTOR_INFO_SEVERITY
-        * @see #REFACTOR_OK_SEVERITY
-        */
-       public static final String REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD= "Refactoring.ErrorPage.severityThreshold"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
-        * 
-        * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
-        */
-       public static final String REFACTOR_FATAL_SEVERITY= "4"; //$NON-NLS-1$
-       
-       /**
-        * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
-        * 
-        * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
-        */     
-       public static final String REFACTOR_ERROR_SEVERITY= "3"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
-        * 
-        * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
-        */
-       public static final String REFACTOR_WARNING_SEVERITY= "2"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
-        * 
-        * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
-        */
-       public static final String REFACTOR_INFO_SEVERITY= "1"; //$NON-NLS-1$
-
-       /**
-        * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
-        * 
-        * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
-        */
-       public static final String REFACTOR_OK_SEVERITY= "0"; //$NON-NLS-1$
-
-       /**
-        * A named preference thet controls whether all dirty editors are automatically saved before a refactoring is
-        * executed.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        */
-       public static final String REFACTOR_SAVE_ALL_EDITORS= "Refactoring.savealleditors"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls if the Java Browsing views are linked to the active editor.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * 
-        * @see #LINK_PACKAGES_TO_EDITOR
-        */
-       public static final String BROWSING_LINK_VIEW_TO_EDITOR= "net.sourceforge.phpdt.ui.browsing.linktoeditor"; //$NON-NLS-1$
-
-       /**
-        * A named preference that controls the layout of the Java Browsing views vertically. Boolean value.
-        * <p>
-        * Value is of type <code>Boolean</code>. If <code>true<code> the views are stacked vertical.
-        * If <code>false</code> they are stacked horizontal.
-        * </p>
-        */
-       public static final String BROWSING_STACK_VERTICALLY= "net.sourceforge.phpdt.ui.browsing.stackVertically"; //$NON-NLS-1$
-       
-       
-       /**
-        * A named preference that controls if templates are formatted when applied.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        *
-        * @since 2.1
-        */     
-       public static final String TEMPLATES_USE_CODEFORMATTER= "net.sourceforge.phpdt.ui.template.format"; //$NON-NLS-1$
-
-       
-       
-       public static void initializeDefaultValues(IPreferenceStore store) {
-               store.setDefault(PreferenceConstants.EDITOR_SHOW_SEGMENTS, false);
-
-               // JavaBasePreferencePage
-               store.setDefault(PreferenceConstants.LINK_PACKAGES_TO_EDITOR, true);
-               store.setDefault(PreferenceConstants.LINK_TYPEHIERARCHY_TO_EDITOR, false);
-               store.setDefault(PreferenceConstants.LINK_BROWSING_VIEW_TO_EDITOR, true);
-               store.setDefault(PreferenceConstants.OPEN_TYPE_HIERARCHY, PreferenceConstants.OPEN_TYPE_HIERARCHY_IN_VIEW_PART);
-               store.setDefault(PreferenceConstants.DOUBLE_CLICK, PreferenceConstants.DOUBLE_CLICK_EXPANDS);
-               store.setDefault(PreferenceConstants.UPDATE_JAVA_VIEWS, PreferenceConstants.UPDATE_WHILE_EDITING);      
-               
-               // AppearancePreferencePage
-               store.setDefault(PreferenceConstants.APPEARANCE_COMPRESS_PACKAGE_NAMES, false);
-               store.setDefault(PreferenceConstants.APPEARANCE_METHOD_RETURNTYPE, false);
-               store.setDefault(PreferenceConstants.SHOW_CU_CHILDREN, true);
-               store.setDefault(PreferenceConstants.APPEARANCE_OVERRIDE_INDICATOR, true);
-               store.setDefault(PreferenceConstants.BROWSING_STACK_VERTICALLY, false);
-               store.setDefault(PreferenceConstants.APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW, ""); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.APPEARANCE_FOLD_PACKAGES_IN_PACKAGE_EXPLORER, true);
-
-               // ImportOrganizePreferencePage
-               store.setDefault(PreferenceConstants.ORGIMPORTS_IMPORTORDER, "php;phpx;org;com"); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.ORGIMPORTS_ONDEMANDTHRESHOLD, 99);
-               store.setDefault(PreferenceConstants.ORGIMPORTS_IGNORELOWERCASE, true);
-
-               // ClasspathVariablesPreferencePage
-               // CodeFormatterPreferencePage
-               // CompilerPreferencePage
-               // no initialization needed
-               
-               // RefactoringPreferencePage
-               store.setDefault(PreferenceConstants.REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD, PreferenceConstants.REFACTOR_ERROR_SEVERITY);
-               store.setDefault(PreferenceConstants.REFACTOR_SAVE_ALL_EDITORS, false);
-               store.setDefault("RefactoringUI", "dialog");            
-
-               // TemplatePreferencePage
-               store.setDefault(PreferenceConstants.TEMPLATES_USE_CODEFORMATTER, true);
-               
-               // CodeGenerationPreferencePage
-               store.setDefault(PreferenceConstants.CODEGEN_USE_GETTERSETTER_PREFIX, false);
-               store.setDefault(PreferenceConstants.CODEGEN_USE_GETTERSETTER_SUFFIX, false);
-               store.setDefault(PreferenceConstants.CODEGEN_GETTERSETTER_PREFIX, "fg, f, _$, _, m_"); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.CODEGEN_GETTERSETTER_SUFFIX, "_"); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.CODEGEN__JAVADOC_STUBS, true);
-               store.setDefault(PreferenceConstants.CODEGEN__NON_JAVADOC_COMMENTS, false);
-               store.setDefault(PreferenceConstants.CODEGEN__FILE_COMMENTS, false);            
-
-               // MembersOrderPreferencePage
-               store.setDefault(PreferenceConstants.APPEARANCE_MEMBER_SORT_ORDER, "T,SI,SF,SM,I,F,C,M"); //$NON-NLS-1$
-               // must add here to guarantee that it is the first in the listener list
-       //      store.addPropertyChangeListener(PHPeclipsePlugin.getDefault().getMemberOrderPreferenceCache());
-
-
-               // PHPEditorPreferencePage
-               /*
-                * Ensure that the display is accessed only in the UI thread.
-                * Ensure that there are no side effects of switching the thread.
-                */
-               final RGB[] rgbs= new RGB[3];
-               final Display display= Display.getDefault();
-               display.syncExec(new Runnable() {
-                       public void run() {
-                               Color c= display.getSystemColor(SWT.COLOR_GRAY);
-                               rgbs[0]= c.getRGB();
-                               c= display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-                               rgbs[1]= c.getRGB();
-                               c= display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-                               rgbs[2]= c.getRGB();
-                       }
-               });
-
-               store.setDefault(PreferenceConstants.EDITOR_MATCHING_BRACKETS, true);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR,  rgbs[0]);
-
-               store.setDefault(PreferenceConstants.EDITOR_CURRENT_LINE, true);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_CURRENT_LINE_COLOR, new RGB(225, 235, 224));
-
-               store.setDefault(PreferenceConstants.EDITOR_PRINT_MARGIN, false);
-               store.setDefault(PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 80);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR, new RGB(176, 180 , 185));
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_FIND_SCOPE_COLOR, new RGB(185, 176 , 180));
-
-               store.setDefault(PreferenceConstants.EDITOR_PROBLEM_INDICATION, true);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR, new RGB(255, 0 , 128));
-               store.setDefault(PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_WARNING_INDICATION, true);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR, new RGB(244, 200 , 45));
-               store.setDefault(PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_TASK_INDICATION, false);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_TASK_INDICATION_COLOR, new RGB(0, 128, 255));
-               store.setDefault(PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER, false);
-
-               store.setDefault(PreferenceConstants.EDITOR_BOOKMARK_INDICATION, false);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR, new RGB(34, 164, 99));
-               store.setDefault(PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER, false);
-
-               store.setDefault(PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION, false);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR, new RGB(192, 192, 192));
-               store.setDefault(PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER, false);
-
-               store.setDefault(PreferenceConstants.EDITOR_UNKNOWN_INDICATION, false);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR, new RGB(0, 0, 0));
-               store.setDefault(PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER, false);
-
-               store.setDefault(PreferenceConstants.EDITOR_CORRECTION_INDICATION, true);
-               store.setDefault(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, false);
-
-               store.setDefault(PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_OVERVIEW_RULER, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_LINE_NUMBER_RULER, false);
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR, new RGB(0, 0, 0));
-
-               WorkbenchChainedTextFontFieldEditor.startPropagate(store, JFaceResources.TEXT_FONT);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINKED_POSITION_COLOR, new RGB(0, 200 , 100));
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINK_COLOR, new RGB(0, 0, 255));
-
-               PreferenceConverter.setDefault(store,  PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgbs[1]);
-               store.setDefault(PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR, true);
-
-               PreferenceConverter.setDefault(store,  PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgbs[2]);
-               store.setDefault(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_TAB_WIDTH, 4);
-               store.setDefault(PreferenceConstants.EDITOR_SPACES_FOR_TABS, false);
+  public final static String EDITOR_PHP_TYPE_BOLD = IJavaColorConstants.PHP_TYPE + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render string constants.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_STRING_COLOR = IJavaColorConstants.PHP_STRING;
+
+  /**
+   * A named preference that controls whether string constants are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_STRING_BOLD = IJavaColorConstants.PHP_STRING + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render php default text.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVA_DEFAULT_COLOR = IJavaColorConstants.PHP_DEFAULT;
+
+  /**
+   * A named preference that controls whether Java default text is rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVA_DEFAULT_BOLD = IJavaColorConstants.PHP_DEFAULT + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render phpdoc keywords.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVADOC_KEYWORD_COLOR = IJavaColorConstants.PHPDOC_KEYWORD;
+
+  /**
+   * A named preference that controls whether phpdoc keywords are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVADOC_KEYWORD_BOLD = IJavaColorConstants.PHPDOC_KEYWORD + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render phpdoc tags.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVADOC_TAG_COLOR = IJavaColorConstants.PHPDOC_TAG;
+
+  /**
+   * A named preference that controls whether phpdoc tags are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVADOC_TAG_BOLD = IJavaColorConstants.PHPDOC_TAG + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render phpdoc links.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVADOC_LINKS_COLOR = IJavaColorConstants.PHPDOC_LINK;
+
+  /**
+   * A named preference that controls whether phpdoc links are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVADOC_LINKS_BOLD = IJavaColorConstants.PHPDOC_LINK + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render phpdoc default text.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String EDITOR_JAVADOC_DEFAULT_COLOR = IJavaColorConstants.PHPDOC_DEFAULT;
+
+  /**
+   * A named preference that controls whether phpdoc default text is rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_JAVADOC_DEFAULT_BOLD = IJavaColorConstants.PHPDOC_DEFAULT + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that holds the color used for 'linked-mode' underline.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String EDITOR_LINK_COLOR = "linkColor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether hover tooltips in the editor are turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String EDITOR_SHOW_HOVER = "net.sourceforge.phpdt.ui.editor.showHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when no control key is
+   * pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a hover
+   * contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI
+   * @since 2.1
+   */
+  public static final String EDITOR_NONE_HOVER = "noneHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>CTRL</code> modifier key is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI
+   * @since 2.1
+   */
+  public static final String EDITOR_CTRL_HOVER = "ctrlHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>SHIFT</code> modifier key is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI ID_*_HOVER
+   * @since 2.1
+   */
+  public static final String EDITOR_SHIFT_HOVER = "shiftHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>CTRL + ALT</code> modifier keys is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI ID_*_HOVER
+   * @since 2.1
+   */
+  public static final String EDITOR_CTRL_ALT_HOVER = "ctrlAltHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>CTRL + ALT + SHIFT</code> modifier keys is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI ID_*_HOVER
+   * @since 2.1
+   */
+  public static final String EDITOR_CTRL_ALT_SHIFT_HOVER = "ctrlAltShiftHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>CTRL + SHIFT</code> modifier keys is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code> or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI ID_*_HOVER
+   * @since 2.1
+   */
+  public static final String EDITOR_CTRL_SHIFT_HOVER = "ctrlShiftHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover shown when the
+   * <code>ALT</code> modifier key is pressed.
+   * <p>Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code>,
+   * <code>EDITOR_DEFAULT_HOVER_CONFIGURED_ID</code>  or the hover id of a
+   * hover contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   * @see #EDITOR_NO_HOVER_CONFIGURED_ID
+   * @see #EDITOR_DEFAULT_HOVER_CONFIGURED_ID
+   * @see JavaUI ID_*_HOVER
+   * @since 2.1
+   */
+  public static final String EDITOR_ALT_SHIFT_HOVER = "altShiftHover"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preferences for hover configuration to
+   * descibe that no hover should be shown for the given key modifiers.
+   * @since 2.1
+   */
+  public static final String EDITOR_NO_HOVER_CONFIGURED_ID = "noHoverConfiguredId"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preferences for hover configuration to
+   * descibe that the default hover should be shown for the given key
+   * modifiers. The default hover is described by the
+   * <code>EDITOR_DEFAULT_HOVER</code> property.
+   * @since 2.1
+   */
+  public static final String EDITOR_DEFAULT_HOVER_CONFIGURED_ID = "defaultHoverConfiguredId"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines the hover named the 'default hover'.
+   * Value is of type <code>String</code>: possible values are <code>
+   * EDITOR_NO_HOVER_CONFIGURED_ID</code> or <code> the hover id of a hover
+   * contributed as <code>phpEditorTextHovers</code>.
+   * </p>
+   *@since 2.1
+   */
+  public static final String EDITOR_DEFAULT_HOVER = "defaultHover"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if segmented view (show selected element only) is turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String EDITOR_SHOW_SEGMENTS = "net.sourceforge.phpdt.ui.editor.showSegments"; //$NON-NLS-1$
 
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
-               store.setDefault(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD, false);
+  /**
+   * A named preference that controls if the Java code assist gets auto activated.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String CODEASSIST_AUTOACTIVATION = "content_assist_autoactivation"; //$NON-NLS-1$
 
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
-               store.setDefault(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD, false);
+  /**
+   * A name preference that holds the auto activation delay time in milli seconds.
+   * <p>
+   * Value is of type <code>Int</code>.
+   * </p>
+   */
+  public final static String CODEASSIST_AUTOACTIVATION_DELAY = "content_assist_autoactivation_delay"; //$NON-NLS-1$
 
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR, new RGB(127, 0, 85));
-               store.setDefault(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD, true);
+  /**
+   * A named preference that controls if code assist contains only visible proposals.
+   * <p>
+   * Value is of type <code>Boolean</code>. if <code>true<code> code assist only contains visible members. If 
+   * <code>false</code> all members are included.
+   * </p>
+   */
+  public final static String CODEASSIST_SHOW_VISIBLE_PROPOSALS = "content_assist_show_visible_proposals"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the Java code assist inserts a
+   * proposal automatically if only one proposal is available.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String CODEASSIST_AUTOINSERT = "content_assist_autoinsert"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the Java code assist adds import
+   * statements.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String CODEASSIST_ADDIMPORT = "content_assist_add_import"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the Java code assist only inserts
+   * completions. If set to false the proposals can also _replace_ code.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String CODEASSIST_INSERT_COMPLETION = "content_assist_insert_completion"; //$NON-NLS-1$  
+
+  /**
+   * A named preference that controls whether code assist proposals filtering is case sensitive or not.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String CODEASSIST_CASE_SENSITIVITY = "content_assist_case_sensitivity"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines if code assist proposals are sorted in alphabetical order.
+   * <p>
+   * Value is of type <code>Boolean</code>. If <code>true</code> that are sorted in alphabetical 
+   * order. If <code>false</code> that are unsorted.
+   * </p>
+   */
+  public final static String CODEASSIST_ORDER_PROPOSALS = "content_assist_order_proposals"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if argument names are filled in when a method is selected from as list
+   * of code assist proposal.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String CODEASSIST_FILL_ARGUMENT_NAMES = "content_assist_fill_method_arguments"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if method arguments are guessed when a
+   * method is selected from as list of code assist proposal.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * @since 2.1
+   */
+  public final static String CODEASSIST_GUESS_METHOD_ARGUMENTS = "content_assist_guess_method_arguments"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the characters that auto activate code assist
+   * in PHP code.
+   * <p>
+   * Value is of type <code>Sring</code>. All characters that trigger auto code
+   * assist in PHP code.
+   * </p>
+   */
+  public final static String CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA = "content_assist_autoactivation_triggers_php"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the characters that auto activate code assist
+   * in PHPDoc.
+   * <p>
+   * Value is of type <code>Sring</code>. All characters that trigger auto code
+   * assist in PHPDoc.
+   * </p>
+   */
+  public final static String CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC = "content_assist_autoactivation_triggers_phpdoc"; //$NON-NLS-1$
+
+
+  /**
+   * A named preference that holds the characters that auto activate code assist
+   * in HTML.
+   * <p>
+   * Value is of type <code>Sring</code>. All characters that trigger auto code
+   * assist in HTML.
+   * </p>
+   */
+  public final static String CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML = "content_assist_autoactivation_triggers_html"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the background color used in the code assist selection dialog.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String CODEASSIST_PROPOSALS_BACKGROUND = "content_assist_proposals_background"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the foreground color used in the code assist selection dialog.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String CODEASSIST_PROPOSALS_FOREGROUND = "content_assist_proposals_foreground"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the background color used for parameter hints.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String CODEASSIST_PARAMETERS_BACKGROUND = "content_assist_parameters_background"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the foreground color used in the code assist selection dialog
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   * 
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   */
+  public final static String CODEASSIST_PARAMETERS_FOREGROUND = "content_assist_parameters_foreground"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the background color used in the code
+   * assist selection dialog to mark replaced code.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String CODEASSIST_REPLACEMENT_BACKGROUND = "content_assist_completion_replacement_background"; //$NON-NLS-1$
+
+  /**
+   * A named preference that holds the foreground color used in the code
+   * assist selection dialog to mark replaced code.
+   * <p>
+   * Value is of type <code>String</code>. A RGB color value encoded as a string
+   * using class <code>PreferenceConverter</code>
+   * </p>
+   *
+   * @see org.eclipse.jface.resource.StringConverter
+   * @see org.eclipse.jface.preference.PreferenceConverter
+   * @since 2.1
+   */
+  public final static String CODEASSIST_REPLACEMENT_FOREGROUND = "content_assist_completion_replacement_foreground"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the behaviour of the refactoring wizard for showing the error page. 
+   * <p>
+   * Value is of type <code>String</code>. Valid values are: 
+   * <code>REFACTOR_FATAL_SEVERITY</code>,
+   * <code>REFACTOR_ERROR_SEVERITY</code>,
+   * <code>REFACTOR_WARNING_SEVERITY</code>
+   * <code>REFACTOR_INFO_SEVERITY</code>,
+   * <code>REFACTOR_OK_SEVERITY</code>.
+   * </p>
+   * 
+   * @see #REFACTOR_FATAL_SEVERITY
+   * @see #REFACTOR_ERROR_SEVERITY
+   * @see #REFACTOR_WARNING_SEVERITY
+   * @see #REFACTOR_INFO_SEVERITY
+   * @see #REFACTOR_OK_SEVERITY
+   */
+  public static final String REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD = "Refactoring.ErrorPage.severityThreshold"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
+   * 
+   * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
+   */
+  public static final String REFACTOR_FATAL_SEVERITY = "4"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
+   * 
+   * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
+   */
+  public static final String REFACTOR_ERROR_SEVERITY = "3"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
+   * 
+   * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
+   */
+  public static final String REFACTOR_WARNING_SEVERITY = "2"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
+   * 
+   * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
+   */
+  public static final String REFACTOR_INFO_SEVERITY = "1"; //$NON-NLS-1$
+
+  /**
+   * A string value used by the named preference <code>REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD</code>.
+   * 
+   * @see #REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD
+   */
+  public static final String REFACTOR_OK_SEVERITY = "0"; //$NON-NLS-1$
+
+  /**
+   * A named preference thet controls whether all dirty editors are automatically saved before a refactoring is
+   * executed.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public static final String REFACTOR_SAVE_ALL_EDITORS = "Refactoring.savealleditors"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if the Java Browsing views are linked to the active editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @see #LINK_PACKAGES_TO_EDITOR
+   */
+  public static final String BROWSING_LINK_VIEW_TO_EDITOR = "net.sourceforge.phpdt.ui.browsing.linktoeditor"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the layout of the Java Browsing views vertically. Boolean value.
+   * <p>
+   * Value is of type <code>Boolean</code>. If <code>true<code> the views are stacked vertical.
+   * If <code>false</code> they are stacked horizontal.
+   * </p>
+   */
+  public static final String BROWSING_STACK_VERTICALLY = "net.sourceforge.phpdt.ui.browsing.stackVertically"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if templates are formatted when applied.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   *
+   * @since 2.1
+   */
+  public static final String TEMPLATES_USE_CODEFORMATTER = "net.sourceforge.phpdt.ui.template.format"; //$NON-NLS-1$
+
+  public static void initializeDefaultValues(IPreferenceStore store) {
+    store.setDefault(PreferenceConstants.EDITOR_SHOW_SEGMENTS, false);
+
+    // JavaBasePreferencePage
+    store.setDefault(PreferenceConstants.LINK_PACKAGES_TO_EDITOR, true);
+    store.setDefault(PreferenceConstants.LINK_TYPEHIERARCHY_TO_EDITOR, false);
+    store.setDefault(PreferenceConstants.LINK_BROWSING_VIEW_TO_EDITOR, true);
+    store.setDefault(PreferenceConstants.OPEN_TYPE_HIERARCHY, PreferenceConstants.OPEN_TYPE_HIERARCHY_IN_VIEW_PART);
+    store.setDefault(PreferenceConstants.DOUBLE_CLICK, PreferenceConstants.DOUBLE_CLICK_EXPANDS);
+    store.setDefault(PreferenceConstants.UPDATE_JAVA_VIEWS, PreferenceConstants.UPDATE_WHILE_EDITING);
+
+    // AppearancePreferencePage
+    store.setDefault(PreferenceConstants.APPEARANCE_COMPRESS_PACKAGE_NAMES, false);
+    store.setDefault(PreferenceConstants.APPEARANCE_METHOD_RETURNTYPE, false);
+    store.setDefault(PreferenceConstants.SHOW_CU_CHILDREN, true);
+    store.setDefault(PreferenceConstants.APPEARANCE_OVERRIDE_INDICATOR, true);
+    store.setDefault(PreferenceConstants.BROWSING_STACK_VERTICALLY, false);
+    store.setDefault(PreferenceConstants.APPEARANCE_PKG_NAME_PATTERN_FOR_PKG_VIEW, ""); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.APPEARANCE_FOLD_PACKAGES_IN_PACKAGE_EXPLORER, true);
+
+    // ImportOrganizePreferencePage
+    store.setDefault(PreferenceConstants.ORGIMPORTS_IMPORTORDER, "php;phpx;org;com"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.ORGIMPORTS_ONDEMANDTHRESHOLD, 99);
+    store.setDefault(PreferenceConstants.ORGIMPORTS_IGNORELOWERCASE, true);
+
+    // ClasspathVariablesPreferencePage
+    // CodeFormatterPreferencePage
+    // CompilerPreferencePage
+    // no initialization needed
+
+    // RefactoringPreferencePage
+    store.setDefault(PreferenceConstants.REFACTOR_ERROR_PAGE_SEVERITY_THRESHOLD, PreferenceConstants.REFACTOR_ERROR_SEVERITY);
+    store.setDefault(PreferenceConstants.REFACTOR_SAVE_ALL_EDITORS, false);
+    store.setDefault("RefactoringUI", "dialog");
+
+    // TemplatePreferencePage
+    store.setDefault(PreferenceConstants.TEMPLATES_USE_CODEFORMATTER, true);
+
+    // CodeGenerationPreferencePage
+    store.setDefault(PreferenceConstants.CODEGEN_USE_GETTERSETTER_PREFIX, false);
+    store.setDefault(PreferenceConstants.CODEGEN_USE_GETTERSETTER_SUFFIX, false);
+    store.setDefault(PreferenceConstants.CODEGEN_GETTERSETTER_PREFIX, "fg, f, _$, _, m_"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.CODEGEN_GETTERSETTER_SUFFIX, "_"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.CODEGEN__JAVADOC_STUBS, true);
+    store.setDefault(PreferenceConstants.CODEGEN__NON_JAVADOC_COMMENTS, false);
+    store.setDefault(PreferenceConstants.CODEGEN__FILE_COMMENTS, false);
+
+    // MembersOrderPreferencePage
+    store.setDefault(PreferenceConstants.APPEARANCE_MEMBER_SORT_ORDER, "T,SI,SF,SM,I,F,C,M"); //$NON-NLS-1$
+    // must add here to guarantee that it is the first in the listener list
+    // store.addPropertyChangeListener(PHPeclipsePlugin.getDefault().getMemberOrderPreferenceCache());
+
+    // PHPEditorPreferencePage
+    /*
+     * Ensure that the display is accessed only in the UI thread.
+     * Ensure that there are no side effects of switching the thread.
+     */
+    final RGB[] rgbs = new RGB[3];
+    final Display display = Display.getDefault();
+    display.syncExec(new Runnable() {
+      public void run() {
+        Color c = display.getSystemColor(SWT.COLOR_GRAY);
+        rgbs[0] = c.getRGB();
+        c = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
+        rgbs[1] = c.getRGB();
+        c = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
+        rgbs[2] = c.getRGB();
+      }
+    });
+
+    store.setDefault(PreferenceConstants.EDITOR_MATCHING_BRACKETS, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR, rgbs[0]);
+
+    store.setDefault(PreferenceConstants.EDITOR_CURRENT_LINE, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_CURRENT_LINE_COLOR, new RGB(225, 235, 224));
+
+    store.setDefault(PreferenceConstants.EDITOR_PRINT_MARGIN, false);
+    store.setDefault(PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 80);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR, new RGB(176, 180, 185));
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_FIND_SCOPE_COLOR, new RGB(185, 176, 180));
+
+    store.setDefault(PreferenceConstants.EDITOR_PROBLEM_INDICATION, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR, new RGB(255, 0, 128));
+    store.setDefault(PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_WARNING_INDICATION, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR, new RGB(244, 200, 45));
+    store.setDefault(PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_TASK_INDICATION, false);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_TASK_INDICATION_COLOR, new RGB(0, 128, 255));
+    store.setDefault(PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_BOOKMARK_INDICATION, false);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR, new RGB(34, 164, 99));
+    store.setDefault(PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION, false);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR, new RGB(192, 192, 192));
+    store.setDefault(PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_UNKNOWN_INDICATION, false);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR, new RGB(0, 0, 0));
+    store.setDefault(PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_CORRECTION_INDICATION, true);
+    store.setDefault(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_OVERVIEW_RULER, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_LINE_NUMBER_RULER, false);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR, new RGB(0, 0, 0));
+
+    WorkbenchChainedTextFontFieldEditor.startPropagate(store, JFaceResources.TEXT_FONT);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINKED_POSITION_COLOR, new RGB(0, 200, 100));
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_LINK_COLOR, new RGB(0, 0, 255));
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgbs[1]);
+    store.setDefault(PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR, true);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgbs[2]);
+    store.setDefault(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_TAB_WIDTH, 4);
+    store.setDefault(PreferenceConstants.EDITOR_SPACES_FOR_TABS, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
+    store.setDefault(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR, new RGB(63, 127, 95));
+    store.setDefault(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR, new RGB(127, 0, 85));
+    store.setDefault(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD, true);
 
     PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR, new RGB(127, 127, 159));
     store.setDefault(PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD, false);
 
     PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR, new RGB(127, 159, 191));
     store.setDefault(PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD, false);
-    
+
     PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR, new RGB(127, 0, 85));
     store.setDefault(PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD, false);
 
     PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PHP_TYPE_COLOR, new RGB(127, 0, 85));
     store.setDefault(PreferenceConstants.EDITOR_PHP_TYPE_BOLD, false);
-        
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_STRING_COLOR, new RGB(42, 0, 255));
-               store.setDefault(PreferenceConstants.EDITOR_STRING_BOLD, false);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR, new RGB(0, 0, 0));
-               store.setDefault(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD, false);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR, new RGB(127, 159, 191));
-               store.setDefault(PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD, true);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR, new RGB(127, 127, 159));
-               store.setDefault(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD, false);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR, new RGB(63, 63, 191));
-               store.setDefault(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD, false);
-
-               PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR, new RGB(63, 95, 191));
-               store.setDefault(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD, false);
-
-               store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION, true);
-               store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 500);
-
-               store.setDefault(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, new RGB(254, 241, 233));
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, new RGB(0, 0, 0));
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, new RGB(254, 241, 233));
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, new RGB(0, 0, 0));
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, new RGB(255, 255, 0));
-               PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, new RGB(255, 0, 0));
-               store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, "$"); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, "@"); //$NON-NLS-1$
-               store.setDefault(PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, true);
-               store.setDefault(PreferenceConstants.CODEASSIST_CASE_SENSITIVITY, false);
-               store.setDefault(PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, false);
-               store.setDefault(PreferenceConstants.CODEASSIST_ADDIMPORT, true);
-               store.setDefault(PreferenceConstants.CODEASSIST_INSERT_COMPLETION, true);
-               store.setDefault(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, false);
-               store.setDefault(PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, true);
-
-               store.setDefault(PreferenceConstants.EDITOR_SMART_HOME_END, true);
-               store.setDefault(PreferenceConstants.EDITOR_SMART_PASTE, true);
-               store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS, true);
-               store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACKETS, true);
-               store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACES, true);
-               store.setDefault(PreferenceConstants.EDITOR_CLOSE_JAVADOCS, true);
-               store.setDefault(PreferenceConstants.EDITOR_WRAP_STRINGS, true);
-               store.setDefault(PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, true);
-               store.setDefault(PreferenceConstants.EDITOR_FORMAT_JAVADOCS, true);
-
-       //      store.setDefault(PreferenceConstants.EDITOR_DEFAULT_HOVER, JavaPlugin.ID_BESTMATCH_HOVER);
-               store.setDefault(PreferenceConstants.EDITOR_NONE_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-//             store.setDefault(PreferenceConstants.EDITOR_CTRL_HOVER, JavaPlugin.ID_SOURCE_HOVER);
-               store.setDefault(PreferenceConstants.EDITOR_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-               store.setDefault(PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-               store.setDefault(PreferenceConstants.EDITOR_CTRL_ALT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-               store.setDefault(PreferenceConstants.EDITOR_ALT_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-               store.setDefault(PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
-               
-               // do more complicated stuff
-       //      NewJavaProjectPreferencePage.initDefaults(store);       
-       }
-       
-       /**
-        * Returns the JDT-UI preference store.
-        * 
-        * @return the JDT-UI preference store
-        */
-       public static IPreferenceStore getPreferenceStore() {
-               return PHPeclipsePlugin.getDefault().getPreferenceStore();
-       }
-       
-//     /**
-//      * Encodes a JRE library to be used in the named preference <code>NEWPROJECT_JRELIBRARY_LIST</code>. 
-//      * 
-//      * @param description a string value describing the JRE library. The description is used
-//      * to indentify the JDR library in the UI
-//      * @param entries an array of classpath entries to be encoded
-//      * 
-//      * @return the encoded string.
-//     */
-//     public static String encodeJRELibrary(String description, IClasspathEntry[] entries) {
-//             return NewJavaProjectPreferencePage.encodeJRELibrary(description, entries);
-//     }
-//     
-//     /**
-//      * Decodes an encoded JRE library and returns its description string.
-//      * 
-//      * @return the description of an encoded JRE library
-//      * 
-//      * @see #encodeJRELibrary(String, IClasspathEntry[])
-//      */
-//     public static String decodeJRELibraryDescription(String encodedLibrary) {
-//             return NewJavaProjectPreferencePage.decodeJRELibraryDescription(encodedLibrary);
-//     }
-//     
-//     /**
-//      * Decodes an encoded JRE library and returns its classpath entries.
-//      * 
-//      * @return the array of classpath entries of an encoded JRE library.
-//      * 
-//      * @see #encodeJRELibrary(String, IClasspathEntry[])
-//      */
-//     public static IClasspathEntry[] decodeJRELibraryClasspathEntries(String encodedLibrary) {
-//             return NewJavaProjectPreferencePage.decodeJRELibraryClasspathEntries(encodedLibrary);
-//     }
-//     
-//     /**
-//      * Returns the current configuration for the JRE to be used as default in new Java projects.
-//      * This is a convenience method to access the named preference <code>NEWPROJECT_JRELIBRARY_LIST
-//      * </code> with the index defined by <code> NEWPROJECT_JRELIBRARY_INDEX</code>.
-//      *
-//      * @return the current default set of classpath entries
-//      *  
-//      * @see #NEWPROJECT_JRELIBRARY_LIST
-//      * @see #NEWPROJECT_JRELIBRARY_INDEX
-//      */
-//     public static IClasspathEntry[] getDefaultJRELibrary() {
-//             return NewJavaProjectPreferencePage.getDefaultJRELibrary();
-//     }               
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_STRING_COLOR, new RGB(42, 0, 255));
+    store.setDefault(PreferenceConstants.EDITOR_STRING_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR, new RGB(0, 0, 0));
+    store.setDefault(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR, new RGB(127, 159, 191));
+    store.setDefault(PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD, true);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR, new RGB(127, 127, 159));
+    store.setDefault(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR, new RGB(63, 63, 191));
+    store.setDefault(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD, false);
+
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR, new RGB(63, 95, 191));
+    store.setDefault(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD, false);
+
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION, true);
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 500);
+
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, new RGB(254, 241, 233));
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, new RGB(0, 0, 0));
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, new RGB(254, 241, 233));
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, new RGB(0, 0, 0));
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, new RGB(255, 255, 0));
+    PreferenceConverter.setDefault(store, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, new RGB(255, 0, 0));
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, "$"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, "@"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML, "<&#"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, true);
+    store.setDefault(PreferenceConstants.CODEASSIST_CASE_SENSITIVITY, false);
+    store.setDefault(PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, false);
+    store.setDefault(PreferenceConstants.CODEASSIST_ADDIMPORT, true);
+    store.setDefault(PreferenceConstants.CODEASSIST_INSERT_COMPLETION, true);
+    store.setDefault(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, false);
+    store.setDefault(PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, true);
+
+    store.setDefault(PreferenceConstants.EDITOR_SMART_HOME_END, true);
+    store.setDefault(PreferenceConstants.EDITOR_SMART_PASTE, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACKETS, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACES, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_JAVADOCS, true);
+    store.setDefault(PreferenceConstants.EDITOR_WRAP_STRINGS, true);
+    store.setDefault(PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, true);
+    store.setDefault(PreferenceConstants.EDITOR_FORMAT_JAVADOCS, true);
+
+    // store.setDefault(PreferenceConstants.EDITOR_DEFAULT_HOVER, JavaPlugin.ID_BESTMATCH_HOVER);
+    store.setDefault(PreferenceConstants.EDITOR_NONE_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+    //         store.setDefault(PreferenceConstants.EDITOR_CTRL_HOVER, JavaPlugin.ID_SOURCE_HOVER);
+    store.setDefault(PreferenceConstants.EDITOR_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+    store.setDefault(PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+    store.setDefault(PreferenceConstants.EDITOR_CTRL_ALT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+    store.setDefault(PreferenceConstants.EDITOR_ALT_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+    store.setDefault(PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
+
+    // do more complicated stuff
+    // NewJavaProjectPreferencePage.initDefaults(store);       
+  }
+
+  /**
+   * Returns the JDT-UI preference store.
+   * 
+   * @return the JDT-UI preference store
+   */
+  public static IPreferenceStore getPreferenceStore() {
+    return PHPeclipsePlugin.getDefault().getPreferenceStore();
+  }
+
+  //   /**
+  //    * Encodes a JRE library to be used in the named preference <code>NEWPROJECT_JRELIBRARY_LIST</code>. 
+  //    * 
+  //    * @param description a string value describing the JRE library. The description is used
+  //    * to indentify the JDR library in the UI
+  //    * @param entries an array of classpath entries to be encoded
+  //    * 
+  //    * @return the encoded string.
+  //   */
+  //   public static String encodeJRELibrary(String description, IClasspathEntry[] entries) {
+  //           return NewJavaProjectPreferencePage.encodeJRELibrary(description, entries);
+  //   }
+  //   
+  //   /**
+  //    * Decodes an encoded JRE library and returns its description string.
+  //    * 
+  //    * @return the description of an encoded JRE library
+  //    * 
+  //    * @see #encodeJRELibrary(String, IClasspathEntry[])
+  //    */
+  //   public static String decodeJRELibraryDescription(String encodedLibrary) {
+  //           return NewJavaProjectPreferencePage.decodeJRELibraryDescription(encodedLibrary);
+  //   }
+  //   
+  //   /**
+  //    * Decodes an encoded JRE library and returns its classpath entries.
+  //    * 
+  //    * @return the array of classpath entries of an encoded JRE library.
+  //    * 
+  //    * @see #encodeJRELibrary(String, IClasspathEntry[])
+  //    */
+  //   public static IClasspathEntry[] decodeJRELibraryClasspathEntries(String encodedLibrary) {
+  //           return NewJavaProjectPreferencePage.decodeJRELibraryClasspathEntries(encodedLibrary);
+  //   }
+  //   
+  //   /**
+  //    * Returns the current configuration for the JRE to be used as default in new Java projects.
+  //    * This is a convenience method to access the named preference <code>NEWPROJECT_JRELIBRARY_LIST
+  //    * </code> with the index defined by <code> NEWPROJECT_JRELIBRARY_INDEX</code>.
+  //    *
+  //    * @return the current default set of classpath entries
+  //    *  
+  //    * @see #NEWPROJECT_JRELIBRARY_LIST
+  //    * @see #NEWPROJECT_JRELIBRARY_INDEX
+  //    */
+  //   public static IClasspathEntry[] getDefaultJRELibrary() {
+  //           return NewJavaProjectPreferencePage.getDefaultJRELibrary();
+  //   }               
 }
index 3409576..b727794 100644 (file)
@@ -8,6 +8,7 @@ package net.sourceforge.phpdt.ui.text;
 import net.sourceforge.phpdt.internal.ui.text.FastJavaPartitionScanner;
 import net.sourceforge.phpdt.internal.ui.text.JavaColorManager;
 import net.sourceforge.phpdt.internal.ui.text.phpdoc.PHPDocCodeScanner;
+import net.sourceforge.phpeclipse.phpeditor.php.HTMLCodeScanner;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPCodeScanner;
 
 import org.eclipse.jface.preference.IPreferenceStore;
@@ -45,16 +46,18 @@ public class JavaTextTools {
                
        /** The color manager */
        private JavaColorManager fColorManager;
-       /** The Java source code scanner */
+       /** The PHP source code scanner */
        private PHPCodeScanner fCodeScanner;
-       /** The Java multiline comment scanner */
+       /** The PHP multiline comment scanner */
        private SingleTokenPHPScanner fMultilineCommentScanner;
        /** The Java singleline comment scanner */
        private SingleTokenPHPScanner fSinglelineCommentScanner;
        /** The Java string scanner */
        private SingleTokenPHPScanner fStringScanner;
-       /** The JavaDoc scanner */
+       /** The PHPDoc scanner */
        private PHPDocCodeScanner fJavaDocScanner;
+  /** The HTML scanner */
+  private HTMLCodeScanner fHTMLScanner;
        /** The Java partitions scanner */
        private FastJavaPartitionScanner fPartitionScanner;     
        
@@ -85,6 +88,7 @@ public class JavaTextTools {
                fSinglelineCommentScanner= new SingleTokenPHPScanner(fColorManager, store, IJavaColorConstants.PHP_SINGLE_LINE_COMMENT);
                fStringScanner= new SingleTokenPHPScanner(fColorManager, store, IJavaColorConstants.PHP_STRING);
                fJavaDocScanner= new PHPDocCodeScanner(fColorManager, store);
+    fHTMLScanner= new HTMLCodeScanner(fColorManager, store);
                fPartitionScanner= new FastJavaPartitionScanner();
        }
        
@@ -142,6 +146,17 @@ public class JavaTextTools {
                return fMultilineCommentScanner;
        }
 
+  /**
+   * Returns a scanner which is configured to scan HTML code.
+   *
+   * @return a HTML scanner
+   * 
+   * @since 2.0
+   */
+  public RuleBasedScanner getHTMLScanner() {
+    return fHTMLScanner;
+  } 
+  
        /**
         * Returns a scanner which is configured to scan Java singleline comments.
         *
index 7e2ebf9..dda227b 100644 (file)
@@ -129,8 +129,8 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
   private Button UnderlineCheckBox;
   private FileFieldEditor userdefPHPSyntaxFileFFE;
   // private BooleanFieldEditor showLineNumber;
-  private IntegerFieldEditor formatterTabSize;
-  private BooleanFieldEditor spacesForTabs;
+  // private IntegerFieldEditor formatterTabSize;
+  // private BooleanFieldEditor spacesForTabs;
 
   public PHPSyntaxEditorPreferencePage() {
     setDescription(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.description")); //$NON-NLS-1$
@@ -465,8 +465,8 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     PHPeclipsePlugin.getDefault().savePluginPreferences();
     userdefPHPSyntaxFileFFE.store();
    // showLineNumber.store();
-    spacesForTabs.store();
-    formatterTabSize.store();
+   // spacesForTabs.store();
+   // formatterTabSize.store();
     return true;
   }
 
@@ -476,9 +476,9 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     handleSyntaxColorListSelection();
     userdefPHPSyntaxFileFFE.loadDefault();
   //  showLineNumber.loadDefault();
-    spacesForTabs.loadDefault();
+  //  spacesForTabs.loadDefault();
   //  showLineNumber.loadDefault();
-    formatterTabSize.loadDefault();
+  //  formatterTabSize.loadDefault();
     super.performDefaults();
   }
 
index 45ee036..c8e1090 100644 (file)
@@ -29,7 +29,6 @@ import net.sourceforge.phpeclipse.phpeditor.php.PHPCompletionProcessor;
 import net.sourceforge.phpeclipse.phpeditor.php.PHPDoubleClickSelector;
 import net.sourceforge.phpeclipse.phpeditor.util.PHPColorProvider;
 
-import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.text.DefaultAutoIndentStrategy;
 import org.eclipse.jface.text.IAutoIndentStrategy;
@@ -48,6 +47,7 @@ import org.eclipse.jface.text.presentation.PresentationReconciler;
 import org.eclipse.jface.text.rules.BufferedRuleBasedScanner;
 import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
 import org.eclipse.jface.text.rules.DefaultPartitioner;
+import org.eclipse.jface.text.rules.RuleBasedScanner;
 import org.eclipse.jface.text.rules.Token;
 import org.eclipse.jface.text.source.IAnnotationHover;
 import org.eclipse.jface.text.source.ISourceViewer;
@@ -178,12 +178,38 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
     return (IPHPPartitionScannerConstants.PHP.equals(contentType) ? new PHPAutoIndentStrategy() : new DefaultAutoIndentStrategy());
   }
 
+  /**
+   * Returns the PHP source code scanner for this configuration.
+   *
+   * @return the PHP source code scanner
+   */
+  protected RuleBasedScanner getCodeScanner() {
+    return fJavaTextTools.getCodeScanner();
+  }
+  
+  /**
+   * Returns the HTML source code scanner for this configuration.
+   *
+   * @return the HTML source code scanner
+   */
+  protected RuleBasedScanner getHTMLScanner() {
+    return fJavaTextTools.getHTMLScanner();
+  }
+  
+  /**
+   * Returns the PHPDoc source code scanner for this configuration.
+   *
+   * @return the PHPDoc source code scanner
+   */
+  protected RuleBasedScanner getPHPDocScanner() {
+    return fJavaTextTools.getJavaDocScanner();
+  }
+  
   /* (non-Javadoc)
    * Method declared on SourceViewerConfiguration
    */
   public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
     return new String[] {
-      //    IDocument.DEFAULT_CONTENT_TYPE,
       IPHPPartitionScannerConstants.HTML,
         IPHPPartitionScannerConstants.HTML_MULTILINE_COMMENT,
         IPHPPartitionScannerConstants.PHP,
@@ -191,7 +217,8 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
         IPHPPartitionScannerConstants.CSS,
         IPHPPartitionScannerConstants.CSS_MULTILINE_COMMENT,
         IPHPPartitionScannerConstants.JAVASCRIPT,
-        IPHPPartitionScannerConstants.JS_MULTILINE_COMMENT };
+        IPHPPartitionScannerConstants.JS_MULTILINE_COMMENT,
+      IDocument.DEFAULT_CONTENT_TYPE };
   }
 
   /* (non-Javadoc) 
@@ -298,23 +325,23 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
     JavaColorManager provider = PHPEditorEnvironment.getPHPColorProvider();
     PresentationReconciler reconciler = new PresentationReconciler();
 
-    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
     reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
 
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.HTML);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.HTML);
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.CSS);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.CSS);
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.CSS_MULTILINE_COMMENT);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.CSS_MULTILINE_COMMENT);
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.JAVASCRIPT);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.JAVASCRIPT);
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getHTMLCodeScanner());
+    dr = new DefaultDamagerRepairer(getHTMLScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.JS_MULTILINE_COMMENT);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.JS_MULTILINE_COMMENT);
     dr =
@@ -322,11 +349,11 @@ public class PHPSourceViewerConfiguration extends SourceViewerConfiguration {
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.HTML_MULTILINE_COMMENT);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.HTML_MULTILINE_COMMENT);
 
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getPHPCodeScanner());
+    dr = new DefaultDamagerRepairer(getCodeScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.PHP);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.PHP);
 
-    dr = new DefaultDamagerRepairer(PHPEditorEnvironment.getPHPDocCodeScanner());
+    dr = new DefaultDamagerRepairer(getPHPDocScanner());
     reconciler.setDamager(dr, IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT);
     reconciler.setRepairer(dr, IPHPPartitionScannerConstants.PHP_MULTILINE_COMMENT);
 
index 9323dae..1f712a3 100644 (file)
@@ -111,6 +111,7 @@ public class HTMLCompletionProcessor implements IContentAssistProcessor {
 
   protected IContextInformationValidator fValidator = new Validator();
   private TemplateEngine fTemplateEngine;
+  private char[] fProposalAutoActivationSet;
   private PHPCompletionProposalComparator fComparator;
   private int fNumberOfComputedResults = 0;
 
@@ -209,13 +210,32 @@ public class HTMLCompletionProcessor implements IContentAssistProcessor {
     return proposals;
   }
 
-  /* (non-Javadoc)
-   * Method declared on IContentAssistProcessor
+  /**
+   * Tells this processor to order the proposals alphabetically.
+   * 
+   * @param order <code>true</code> if proposals should be ordered.
+   */
+  public void orderProposalsAlphabetically(boolean order) {
+    fComparator.setOrderAlphabetically(order);
+  }
+  
+  /**
+   * @see IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
    */
   public char[] getCompletionProposalAutoActivationCharacters() {
-    return new char[] { '<', '&', '#' };
+    return fProposalAutoActivationSet;
   }
-
+  
+  /**
+   * Sets this processor's set of characters triggering the activation of the
+   * completion proposal computation.
+   * 
+   * @param activationSet the activation set
+   */
+  public void setCompletionProposalAutoActivationCharacters(char[] activationSet) {
+    fProposalAutoActivationSet= activationSet;
+  }
+  
   /* (non-Javadoc)
    * Method declared on IContentAssistProcessor
    */
index 893e0c1..64fcaff 100644 (file)
@@ -251,6 +251,15 @@ public class PHPCompletionProcessor implements IContentAssistProcessor {
   }
   
   /**
+   * Tells this processor to order the proposals alphabetically.
+   * 
+   * @param order <code>true</code> if proposals should be ordered.
+   */
+  public void orderProposalsAlphabetically(boolean order) {
+    fComparator.setOrderAlphabetically(order);
+  }
+  
+  /**
    * Sets this processor's set of characters triggering the activation of the
    * completion proposal computation.
    *