inital plugin from webtools project
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / ui / PreferenceConstants.java
index 3dd481b..98dccbb 100644 (file)
  ******************************************************************************/
 package net.sourceforge.phpdt.ui;
 
+import net.sourceforge.phpdt.core.IClasspathEntry;
+import net.sourceforge.phpdt.internal.ui.text.spelling.SpellCheckEngine;
+import net.sourceforge.phpdt.internal.ui.text.spelling.engine.ISpellCheckPreferenceKeys;
 import net.sourceforge.phpeclipse.IPreferenceConstants;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
 import org.eclipse.ui.texteditor.AbstractTextEditor;
-import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
+
 //
 //import org.phpeclipse.phpdt.internal.ui.JavaPlugin;
 //import org.phpeclipse.phpdt.internal.ui.preferences.NewJavaProjectPreferencePage;
 
 /**
- * Preference constants used in the JDT-UI preference store. Clients should only read the
- * JDT-UI preference store using these values. Clients are not allowed to modify the 
- * preference store programmatically.
+ * Preference constants used in the JDT-UI preference store. Clients should only read the JDT-UI preference store using these
+ * values. Clients are not allowed to modify the preference store programmatically.
  * 
  * @since 2.0
-  */
+ */
 public class PreferenceConstants {
 
   private PreferenceConstants() {
@@ -42,8 +44,7 @@ public class 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
+   * 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$
@@ -51,17 +52,16 @@ public class PreferenceConstants {
   /**
    * 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
+   * 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'.
+   * 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$
@@ -77,40 +77,38 @@ public class PreferenceConstants {
   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.
+   * 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.
+   * 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>.
+   * 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.
+   * 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>
+   * <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. 
+   * 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>
@@ -118,8 +116,7 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -137,8 +134,7 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -148,16 +144,26 @@ public class PreferenceConstants {
   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.
+   * A named preference that controls if comment stubs will be added automatically to newly created types and methods.
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
+   * 
+   * @since 2.1
    */
-  public static final String CODEGEN__JAVADOC_STUBS = "net.sourceforge.phpdt.ui.phpdoc"; //$NON-NLS-1$
+  public static final String CODEGEN_ADD_COMMENTS = "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.
+   * 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>
+   * 
+   * @deprecated Use CODEGEN_ADD_COMMENTS instead (Name is more precise).
+   */
+  //  public static final String CODEGEN__JAVADOC_STUBS = CODEGEN_ADD_COMMENTS; //$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>
@@ -173,11 +179,10 @@ public class PreferenceConstants {
   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.
+   * 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
+   * 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$
@@ -191,8 +196,7 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -224,11 +228,11 @@ public class PreferenceConstants {
   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.
+   * 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$
@@ -236,17 +240,17 @@ public class PreferenceConstants {
   /**
    * 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.
+   * 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>.
+   * 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>. 
+   * Value is of type <code>String</code>.
    * </p>
    * 
    * @see #SRCBIN_FOLDERS_IN_NEWPROJ
@@ -254,10 +258,10 @@ public class PreferenceConstants {
   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>.
+   * 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>. 
+   * Value is of type <code>String</code>.
    * </p>
    * 
    * @see #SRCBIN_FOLDERS_IN_NEWPROJ
@@ -265,16 +269,16 @@ public class PreferenceConstants {
   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. 
+   * 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.
+   * 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
@@ -295,8 +299,8 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -323,7 +327,7 @@ public class PreferenceConstants {
   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. 
+   * 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>
@@ -350,8 +354,8 @@ public class PreferenceConstants {
   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. 
+   * 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>
@@ -384,35 +388,42 @@ public class PreferenceConstants {
    * </p>
    */
   public static final String JAVADOC_COMMAND = "command"; //$NON-NLS-1$
+
+  /**
+   * A named preference that defines whether hint to make hover sticky should be shown.
+   * 
+   * @see JavaUI
+   * @since 3.0
+   */
+  public static final String EDITOR_SHOW_TEXT_HOVER_AFFORDANCE = "PreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE"; //$NON-NLS-1$
+
   /**
-        * A named preference that defines the key for the hover modifiers.
-        *
-        * @see JavaUI
-        * @since 2.1
-        */
+   * A named preference that defines the key for the hover modifiers.
+   * 
+   * @see JavaUI
+   * @since 2.1
+   */
   public static final String EDITOR_TEXT_HOVER_MODIFIERS = "hoverModifiers"; //$NON-NLS-1$
-       /**
-        * The id of the best match hover contributed for extension point
-        * <code>javaEditorTextHovers</code>.
-        *
-        * @since 2.1
-        */
-       public static String ID_BESTMATCH_HOVER= "net.sourceforge.phpdt.ui.BestMatchHover"; //$NON-NLS-1$
-
-       /**
-        * The id of the source code hover contributed for extension point
-        * <code>javaEditorTextHovers</code>.
-        *
-        * @since 2.1
-        */
-       public static String ID_SOURCE_HOVER= "net.sourceforge.phpdt.ui.JavaSourceHover"; //$NON-NLS-1$
-
-  /**
-        * The id of the problem hover contributed for extension point
-        * <code>javaEditorTextHovers</code>.
-        *
-        * @since 2.1
-        */
+
+  /**
+   * The id of the best match hover contributed for extension point <code>javaEditorTextHovers</code>.
+   * 
+   * @since 2.1
+   */
+  public static String ID_BESTMATCH_HOVER = "net.sourceforge.phpdt.ui.BestMatchHover"; //$NON-NLS-1$
+
+  /**
+   * The id of the source code hover contributed for extension point <code>javaEditorTextHovers</code>.
+   * 
+   * @since 2.1
+   */
+  public static String ID_SOURCE_HOVER = "net.sourceforge.phpdt.ui.JavaSourceHover"; //$NON-NLS-1$
+
+  /**
+   * The id of the problem hover contributed for extension point <code>javaEditorTextHovers</code>.
+   * 
+   * @since 2.1
+   */
   public static String ID_PROBLEM_HOVER = "net.sourceforge.phpdt.ui.ProblemHover"; //$NON-NLS-1$
 
   /**
@@ -426,8 +437,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -446,8 +456,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -466,8 +475,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -483,8 +491,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -495,9 +502,8 @@ public class PreferenceConstants {
   /**
    * 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.
+   * 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$
@@ -505,18 +511,18 @@ public class PreferenceConstants {
   /**
    * 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.
+   * 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$
+  public final static String EDITOR_TAB_WIDTH = AbstractDecoratedTextEditorPreferenceConstants.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.
+   * 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$
@@ -530,49 +536,44 @@ public class PreferenceConstants {
   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). 
+   * 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$
-
+  //  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>
+   * 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). 
+  //  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$
-
+  //  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>
+   * 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$
-
+  //  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). 
+   * A named preference that controls whether the editor shows task indicators in text (squiggly lines).
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
@@ -582,8 +583,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -593,11 +593,11 @@ public class PreferenceConstants {
   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).
+   * 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$
@@ -605,10 +605,9 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -617,11 +616,11 @@ public class PreferenceConstants {
   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).
+   * 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$
@@ -629,10 +628,9 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -641,23 +639,21 @@ public class PreferenceConstants {
   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).
+   * 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.
+   * 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>
+   * 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
@@ -666,176 +662,242 @@ public class PreferenceConstants {
   public final static String EDITOR_UNKNOWN_INDICATION_COLOR = "othersIndicationColor"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the overview ruler shows error
-   * indicators.
+   * 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.
+   * 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.
+   * 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.
+   * 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.
+   * 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.
+   * 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 in PHP mode
+   * A named preference that controls whether the 'close strings' feature is enabled in PHP mode
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_CLOSE_STRINGS_DQ_PHP = "closeStringsPHPDQ"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close strings' feature is enabled in PHP mode
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   */
+  public final static String EDITOR_CLOSE_STRINGS_SQ_PHP = "closeStringsPHPSQ"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'close brackets' feature is enabled in PHP mode
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
+   * 
    * @since 2.1
    */
-  public final static String EDITOR_CLOSE_STRINGS_PHP = "closeStringsPHP"; //$NON-NLS-1$
+  public final static String EDITOR_CLOSE_BRACKETS_PHP = "closeBracketsPHP"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the 'wrap strings' feature is
-   * enabled.
+   * A named preference that controls whether the 'wrap words' 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$
+  public final static String EDITOR_WRAP_WORDS = "wrapWords"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the 'close brackets' feature is
-   * enabled in PHP mode
+   * 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_CLOSE_BRACKETS_PHP = "closeBracketsPHP"; //$NON-NLS-1$
+  public final static String EDITOR_WRAP_STRINGS_DQ = "wrapStringsDQ"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'escape strings' feature is enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_ESCAPE_STRINGS_DQ = "escapeStringsDQ"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the 'close braces' feature is
-   * enabled.
+   * 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_SQ = "wrapStringsDQ"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the 'escape strings' feature is enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_ESCAPE_STRINGS_SQ = "escapeStringsSQ"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls if content assist inserts the common prefix of all proposals before presenting choices.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String CODEASSIST_PREFIX_COMPLETION = "content_assist_prefix_completion"; //$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.
+   * 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.
+   * 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.
+   * 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.
+   * 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 'close strings' feature
-   *  is   enabled in HTML mode
+   * A named preference that controls whether the 'close strings' feature is enabled in HTML mode
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
+   * 
    * @since 2.1
    */
   public final static String EDITOR_CLOSE_STRINGS_HTML = "closeStringsHTML"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the 'close brackets' feature is
-   * enabled in HTML mode
+   * A named preference that controls whether the 'close brackets' feature is enabled in HTML mode
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
+   * 
    * @since 2.1
    */
   public final static String EDITOR_CLOSE_BRACKETS_HTML = "closeBracketsHTML"; //$NON-NLS-1$
 
   /**
-   * A named preference that controls whether the 'smart home-end' feature is
-   * enabled.
+   * 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 whether the 'sub-word navigation' feature is enabled.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 2.1
+   */
+  public final static String EDITOR_SUB_WORD_NAVIGATION = "subWordNavigation"; //$NON-NLS-1$
+
+  /**
    * A named preference that controls if temporary problems are evaluated and shown in the UI.
    * <p>
    * Value is of type <code>Boolean</code>.
@@ -862,8 +924,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -875,8 +936,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -887,8 +947,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -897,8 +956,7 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -908,8 +966,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -918,10 +975,9 @@ public class PreferenceConstants {
   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.
+   * 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>. 
+   * Value is of type <code>Boolean</code>.
    * </p>
    */
   public final static String EDITOR_BACKGROUND_DEFAULT_COLOR = AbstractTextEditor.PREFERENCE_COLOR_BACKGROUND_SYSTEM_DEFAULT;
@@ -932,10 +988,14 @@ public class PreferenceConstants {
   public static final String EDITOR_BOLD_SUFFIX = "_bold"; //$NON-NLS-1$
 
   /**
+   * Preference key suffix for bold text style preference keys.
+   */
+  public static final String EDITOR_ITALIC_SUFFIX = "_italic"; //$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>
+   * 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
@@ -944,10 +1004,17 @@ public class PreferenceConstants {
   public final static String EDITOR_MULTI_LINE_COMMENT_COLOR = IPreferenceConstants.PHP_MULTILINE_COMMENT;
 
   /**
+   * The symbolic font name for the Java editor text font (value <code>"org.eclipse.jdt.ui.editors.textfont"</code>).
+   * 
+   * @since 2.1
+   */
+  public final static String EDITOR_TEXT_FONT = "net.sourceforge.phpdt.ui.editors.textfont"; //$NON-NLS-1$
+
+  /**
    * 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.
+   * 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 = IPreferenceConstants.PHP_MULTILINE_COMMENT + EDITOR_BOLD_SUFFIX;
@@ -955,8 +1022,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -967,23 +1033,118 @@ public class PreferenceConstants {
   /**
    * 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.
+   * 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 = IPreferenceConstants.PHP_SINGLELINE_COMMENT + EDITOR_BOLD_SUFFIX;
 
   /**
-        * A named preference that holds the color used to render php start and stop 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_JAVA_TAG_COLOR = IPreferenceConstants.PHP_TAG;
+   * A named preference that holds the color used to render operators and 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
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_OPERATOR_COLOR = IPreferenceConstants.PHP_OPERATOR;
+
+  /**
+   * A named preference that controls whether operators and brackets are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_OPERATOR_BOLD = IPreferenceConstants.PHP_OPERATOR + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that controls whether operators and brackets are rendered in italic.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_OPERATOR_ITALIC = IPreferenceConstants.PHP_OPERATOR + EDITOR_ITALIC_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render operators and 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
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_BRACE_OPERATOR_COLOR = IPreferenceConstants.PHP_BRACE_OPERATOR;
+
+  /**
+   * A named preference that controls whether operators and brackets are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_BRACE_OPERATOR_BOLD = IPreferenceConstants.PHP_BRACE_OPERATOR + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that controls whether operators and brackets are rendered in italic.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_BRACE_OPERATOR_ITALIC = IPreferenceConstants.PHP_BRACE_OPERATOR + EDITOR_ITALIC_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render the 'return' keyword.
+   * <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 3.0
+   */
+  public final static String EDITOR_PHP_KEYWORD_RETURN_COLOR = IPreferenceConstants.PHP_KEYWORD_RETURN;
+
+  /**
+   * A named preference that controls whether 'return' keyword is rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_KEYWORD_RETURN_BOLD = IPreferenceConstants.PHP_KEYWORD_RETURN + EDITOR_BOLD_SUFFIX;
+
+  /**
+   * A named preference that controls whether 'return' keyword is rendered in italic.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String EDITOR_PHP_KEYWORD_RETURN_ITALIC = IPreferenceConstants.PHP_KEYWORD_RETURN + EDITOR_ITALIC_SUFFIX;
+
+  /**
+   * A named preference that holds the color used to render php start and stop 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_PHP_TAG_COLOR = IPreferenceConstants.PHP_TAG;
 
   /**
    * A named preference that controls whether php start and stop tags are rendered in bold.
@@ -991,13 +1152,12 @@ public class PreferenceConstants {
    * Value is of type <code>Boolean</code>.
    * </p>
    */
-  public final static String EDITOR_JAVA_TAG_BOLD = IPreferenceConstants.PHP_TAG + EDITOR_BOLD_SUFFIX;
+  public final static String EDITOR_PHP_TAG_BOLD = IPreferenceConstants.PHP_TAG + 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>
+   * 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
@@ -1014,11 +1174,9 @@ public class PreferenceConstants {
   public final static String EDITOR_JAVA_KEYWORD_BOLD = IPreferenceConstants.PHP_KEYWORD + EDITOR_BOLD_SUFFIX;
 
   /**
-   * A named preference that holds the color used to render predefined php
-   * function names.
+   * A named preference that holds the color used to render predefined php function names.
    * <p>
-   * Value is of type <code>String</code>. A RGB color value encoded as a string
-   * using class <code>PreferenceConverter</code>
+   * 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
@@ -1027,8 +1185,7 @@ public class PreferenceConstants {
   public final static String EDITOR_PHP_FUNCTIONNAME_COLOR = IPreferenceConstants.PHP_FUNCTIONNAME;
 
   /**
-   * A named preference that controls whether function names are rendered in
-   * bold.
+   * A named preference that controls whether function names are rendered in bold.
    * <p>
    * Value is of type <code>Boolean</code>.
    * </p>
@@ -1036,11 +1193,9 @@ public class PreferenceConstants {
   public final static String EDITOR_PHP_FUNCTIONNAME_BOLD = IPreferenceConstants.PHP_FUNCTIONNAME + EDITOR_BOLD_SUFFIX;
 
   /**
-   * A named preference that holds the color used to render php
-   * variables.
+   * A named preference that holds the color used to render php variables.
    * <p>
-   * Value is of type <code>String</code>. A RGB color value encoded as a string
-   * using class <code>PreferenceConverter</code>
+   * 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
@@ -1059,8 +1214,7 @@ public class PreferenceConstants {
   /**
    * A named preference that holds the color used to render php constants.
    * <p>
-   * Value is of type <code>String</code>. A RGB color value encoded as a string
-   * using class <code>PreferenceConverter</code>
+   * 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
@@ -1079,8 +1233,7 @@ public class PreferenceConstants {
   /**
    * A named preference that holds the color used to render php types.
    * <p>
-   * Value is of type <code>String</code>. A RGB color value encoded as a string
-   * using class <code>PreferenceConverter</code>
+   * 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
@@ -1099,8 +1252,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1119,8 +1271,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1137,32 +1288,31 @@ public class PreferenceConstants {
   public final static String EDITOR_JAVA_DEFAULT_BOLD = IPreferenceConstants.PHP_DEFAULT + EDITOR_BOLD_SUFFIX;
 
   /**
-        * A named preference that holds the color used to render task 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
-        * @since 2.1
-        */
-       public final static String EDITOR_TASK_TAG_COLOR= IPreferenceConstants.TASK_TAG;
-
-       /**
-        * A named preference that controls whether task tags are rendered in bold.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * @since 2.1
-        */
-       public final static String EDITOR_TASK_TAG_BOLD= IPreferenceConstants.TASK_TAG + EDITOR_BOLD_SUFFIX;
+   * A named preference that holds the color used to render task 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
+   * @since 2.1
+   */
+  public final static String EDITOR_TASK_TAG_COLOR = IPreferenceConstants.TASK_TAG;
+
+  /**
+   * A named preference that controls whether task tags are rendered in bold.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 2.1
+   */
+  public final static String EDITOR_TASK_TAG_BOLD = IPreferenceConstants.TASK_TAG + 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>
+   * 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
@@ -1181,8 +1331,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1201,8 +1350,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1221,8 +1369,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1241,10 +1388,9 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1260,13 +1406,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1275,13 +1421,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1290,13 +1436,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1305,13 +1451,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1320,13 +1466,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1335,13 +1481,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1350,13 +1496,13 @@ public class PreferenceConstants {
   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>
+   * 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>.
+   * <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
@@ -1365,24 +1511,24 @@ public class PreferenceConstants {
   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.
+   * 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.
+   * 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>
+   * 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>
@@ -1397,14 +1543,15 @@ public class PreferenceConstants {
    * </p>
    */
   public static final String EDITOR_SHOW_SEGMENTS = "net.sourceforge.phpdt.ui.editor.showSegments"; //$NON-NLS-1$
+
   /**
-        * A named preference that controls if browser like links are turned on or off.
-        * <p>
-        * Value is of type <code>Boolean</code>.
-        * </p>
-        * 
-        * @since 2.1
-        */
+   * A named preference that controls if browser like links are turned on or off.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 2.1
+   */
   public static final String EDITOR_BROWSER_LIKE_LINKS = "browserLikeLinks"; //$NON-NLS-1$
 
   /**
@@ -1418,6 +1565,274 @@ public class PreferenceConstants {
   public static final String EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER = "browserLikeLinksKeyModifier"; //$NON-NLS-1$
 
   /**
+   * A named preference that controls whether occurrences are marked in the editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_MARK_OCCURRENCES = "markOccurrences"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether occurrences are sticky in the editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_STICKY_OCCURRENCES = "stickyOccurrences"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls disabling of the overwrite mode.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_DISABLE_OVERWRITE_MODE = "disable_overwrite_mode"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the "smart semicolon" smart typing handler
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_SMART_SEMICOLON = "smart_semicolon"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the smart backspace behavior.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_SMART_BACKSPACE = "smart_backspace"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the "smart opening brace" smart typing handler
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_SMART_OPENING_BRACE = "smart_opening_brace"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the smart tab behaviour.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_SMART_TAB = "smart_tab"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether Java comments should be spell-checked.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_CHECK_SPELLING = ISpellCheckPreferenceKeys.SPELLING_CHECK_SPELLING;
+
+  /**
+   * A named preference that controls whether words containing digits should be skipped during spell-checking.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_IGNORE_DIGITS = ISpellCheckPreferenceKeys.SPELLING_IGNORE_DIGITS;
+
+  /**
+   * A named preference that controls whether mixed case words should be skipped during spell-checking.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_IGNORE_MIXED = ISpellCheckPreferenceKeys.SPELLING_IGNORE_MIXED;
+
+  /**
+   * A named preference that controls whether sentence capitalization should be ignored during spell-checking.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_IGNORE_SENTENCE = ISpellCheckPreferenceKeys.SPELLING_IGNORE_SENTENCE;
+
+  /**
+   * A named preference that controls whether upper case words should be skipped during spell-checking.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_IGNORE_UPPER = ISpellCheckPreferenceKeys.SPELLING_IGNORE_UPPER;
+
+  /**
+   * A named preference that controls whether urls should be ignored during spell-checking.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_IGNORE_URLS = ISpellCheckPreferenceKeys.SPELLING_IGNORE_URLS;
+
+  /**
+   * A named preference that controls the locale used for spell-checking.
+   * <p>
+   * Value is of type <code>String</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_LOCALE = ISpellCheckPreferenceKeys.SPELLING_LOCALE;
+
+  /**
+   * A named preference that controls the number of proposals offered during spell-checking.
+   * <p>
+   * Value is of type <code>Integer</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_PROPOSAL_THRESHOLD = ISpellCheckPreferenceKeys.SPELLING_PROPOSAL_THRESHOLD;
+
+  /**
+   * A named preference that specifies the workspace user dictionary.
+   * <p>
+   * Value is of type <code>Integer</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_USER_DICTIONARY = ISpellCheckPreferenceKeys.SPELLING_USER_DICTIONARY;
+
+  /**
+   * A named preference that specifies whether spelling dictionaries are available to content assist.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String SPELLING_ENABLE_CONTENTASSIST = ISpellCheckPreferenceKeys.SPELLING_ENABLE_CONTENTASSIST;
+
+  /**
+   * A named preference that controls whether code snippets are formatted in Javadoc comments.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_FORMATSOURCE = "comment_format_source_code"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether description of Javadoc parameters are indented.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_INDENTPARAMETERDESCRIPTION = "comment_indent_parameter_description"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether the header comment of a Java source file is formatted.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_FORMATHEADER = "comment_format_header"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether Javadoc root tags are indented.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_INDENTROOTTAGS = "comment_indent_root_tags"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether Javadoc comments are formatted by the content formatter.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_FORMAT = "comment_format_comments"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether a new line is inserted after Javadoc root tag parameters.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_NEWLINEFORPARAMETER = "comment_new_line_for_parameter"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether an empty line is inserted before the Javadoc root tag block.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_SEPARATEROOTTAGS = "comment_separate_root_tags"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether blank lines are cleared during formatting
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_CLEARBLANKLINES = "comment_clear_blank_lines"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls the line length of comments.
+   * <p>
+   * Value is of type <code>Integer</code>. The value must be at least 4 for reasonable formatting.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_LINELENGTH = "comment_line_length"; //$NON-NLS-1$
+
+  /**
+   * A named preference that controls whether html tags are formatted.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public final static String FORMATTER_COMMENT_FORMATHTML = "comment_format_html"; //$NON-NLS-1$
+
+  /**
    * A named preference that controls if the Java code assist gets auto activated.
    * <p>
    * Value is of type <code>Boolean</code>.
@@ -1443,31 +1858,32 @@ public class PreferenceConstants {
   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.
+   * 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.
+   * 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.
+   * 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$  
@@ -1483,15 +1899,15 @@ public class PreferenceConstants {
   /**
    * 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.
+   * 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.
+   * 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>
@@ -1499,41 +1915,36 @@ public class PreferenceConstants {
   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.
+   * 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.
+   * 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.
+   * 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.
+   * 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.
+   * 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.
+   * 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.
+   * 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$
@@ -1541,8 +1952,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1553,8 +1963,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1565,8 +1974,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1577,8 +1985,7 @@ public class PreferenceConstants {
   /**
    * 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>
+   * 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
@@ -1587,13 +1994,11 @@ public class PreferenceConstants {
   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.
+   * 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>
+   * 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
@@ -1601,13 +2006,11 @@ public class PreferenceConstants {
   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.
+   * 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>
+   * 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
@@ -1615,12 +2018,10 @@ public class PreferenceConstants {
   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. 
+   * 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>
+   * 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>
@@ -1669,8 +2070,7 @@ public class PreferenceConstants {
   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.
+   * 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>
@@ -1701,15 +2101,14 @@ public class PreferenceConstants {
    * <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$
 
   /**
-   * A named preference that controls the key modifier mask for browser like links.
-   * The value is only used if the value of <code>EDITOR_BROWSER_LIKE_LINKS</code>
-   * cannot be resolved to valid SWT modifier bits.
+   * A named preference that controls the key modifier mask for browser like links. The value is only used if the value of
+   * <code>EDITOR_BROWSER_LIKE_LINKS</code> cannot be resolved to valid SWT modifier bits.
    * <p>
    * Value is of type <code>String</code>.
    * </p>
@@ -1720,16 +2119,75 @@ public class PreferenceConstants {
   public static final String EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK = "browserLikeLinksKeyModifierMask"; //$NON-NLS-1$
 
   /**
-        * A named preference that defines the key for the hover modifier state masks.
-        * The value is only used if the value of <code>EDITOR_TEXT_HOVER_MODIFIERS</code>
-        * cannot be resolved to valid SWT modifier bits.
-        * 
-        * @see JavaUI
-        * @see #EDITOR_TEXT_HOVER_MODIFIERS
-        * @since 2.1.1
-        */
+   * A named preference that defines the key for the hover modifier state masks. The value is only used if the value of
+   * <code>EDITOR_TEXT_HOVER_MODIFIERS</code> cannot be resolved to valid SWT modifier bits.
+   * 
+   * @see JavaUI
+   * @see #EDITOR_TEXT_HOVER_MODIFIERS
+   * @since 2.1.1
+   */
   public static final String EDITOR_TEXT_HOVER_MODIFIER_MASKS = "hoverModifierMasks"; //$NON-NLS-1$
 
+  /**
+   * A named preference that controls whether folding is enabled in the Java editor.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_ENABLED = "editor_folding_enabled"; //$NON-NLS-1$
+
+  /**
+   * A named preference that stores the configured folding provider.
+   * <p>
+   * Value is of type <code>String</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_PROVIDER = "editor_folding_provider"; //$NON-NLS-1$
+
+  /**
+   * A named preference that stores the value for Javadoc folding for the default folding provider.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_JAVADOC = "editor_folding_default_javadoc"; //$NON-NLS-1$
+
+  /**
+   * A named preference that stores the value for inner type folding for the default folding provider.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_INNERTYPES = "editor_folding_default_innertypes"; //$NON-NLS-1$
+
+  /**
+   * A named preference that stores the value for method folding for the default folding provider.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_METHODS = "editor_folding_default_methods"; //$NON-NLS-1$
+
+  /**
+   * A named preference that stores the value for imports folding for the default folding provider.
+   * <p>
+   * Value is of type <code>Boolean</code>.
+   * </p>
+   * 
+   * @since 3.0
+   */
+  public static final String EDITOR_FOLDING_IMPORTS = "editor_folding_default_imports"; //$NON-NLS-1$
+
   public static void initializeDefaultValues(IPreferenceStore store) {
     store.setDefault(PreferenceConstants.EDITOR_SHOW_SEGMENTS, false);
 
@@ -1773,19 +2231,18 @@ public class PreferenceConstants {
     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_ADD_COMMENTS, 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());
+    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.
+     * 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();
@@ -1812,32 +2269,32 @@ public class PreferenceConstants {
 
     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_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_SYNC_OUTLINE_ON_CURSOR_MOVE, true);
 
     store.setDefault(PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, true);
 
@@ -1846,7 +2303,7 @@ public class PreferenceConstants {
     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);
+    //    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));
@@ -1866,8 +2323,8 @@ public class PreferenceConstants {
     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_TAG_COLOR, new RGB(255, 0, 128));
-    store.setDefault(PreferenceConstants.EDITOR_JAVA_TAG_BOLD, true);
+    PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_PHP_TAG_COLOR, new RGB(255, 0, 128));
+    store.setDefault(PreferenceConstants.EDITOR_PHP_TAG_BOLD, true);
 
     PreferenceConverter.setDefault(store, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR, new RGB(127, 0, 85));
     store.setDefault(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD, true);
@@ -1922,16 +2379,24 @@ public class PreferenceConstants {
     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.CODEASSIST_PREFIX_COMPLETION, false);
 
     store.setDefault(PreferenceConstants.EDITOR_SMART_HOME_END, true);
+    store.setDefault(PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION, true);
     store.setDefault(PreferenceConstants.EDITOR_SMART_PASTE, true);
-    store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS_PHP, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS_DQ_PHP, true);
+    store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS_SQ_PHP, true);
     store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP, 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_WRAP_WORDS, false);
+    store.setDefault(PreferenceConstants.EDITOR_WRAP_STRINGS_DQ, true);
+    store.setDefault(PreferenceConstants.EDITOR_ESCAPE_STRINGS_DQ, false);
+    store.setDefault(PreferenceConstants.EDITOR_WRAP_STRINGS_SQ, true);
+    store.setDefault(PreferenceConstants.EDITOR_ESCAPE_STRINGS_SQ, false);
     store.setDefault(PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, true);
     store.setDefault(PreferenceConstants.EDITOR_FORMAT_JAVADOCS, true);
+    store.setDefault(PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE, false);
 
     store.setDefault(PreferenceConstants.EDITOR_CLOSE_STRINGS_HTML, true);
     store.setDefault(PreferenceConstants.EDITOR_CLOSE_BRACKETS_HTML, true);
@@ -1946,15 +2411,40 @@ public class PreferenceConstants {
     store.setDefault(PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER, PreferenceConstants.EDITOR_DEFAULT_HOVER_CONFIGURED_ID);
 
     String ctrl = Action.findModifierString(SWT.CTRL);
-    store.setDefault(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS, "net.sourceforge.phpdt.ui.BestMatchHover;0;net.sourceforge.phpdt.ui.JavaSourceHover;" + ctrl); //$NON-NLS-1$
-    store.setDefault(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS, "net.sourceforge.phpdt.ui.BestMatchHover;0;net.sourceforge.phpdt.ui.JavaSourceHover;" + SWT.CTRL); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS,
+        "net.sourceforge.phpdt.ui.BestMatchHover;0;net.sourceforge.phpdt.ui.JavaSourceHover;" + ctrl); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS,
+        "net.sourceforge.phpdt.ui.BestMatchHover;0;net.sourceforge.phpdt.ui.JavaSourceHover;" + SWT.CTRL); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE, true);
 
     store.setDefault(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS, true);
     store.setDefault(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER, ctrl);
     store.setDefault(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK, SWT.CTRL);
 
+    //  spell checking
+    store.setDefault(PreferenceConstants.SPELLING_CHECK_SPELLING, false);
+    store.setDefault(PreferenceConstants.SPELLING_LOCALE, SpellCheckEngine.getDefaultLocale().toString());
+    store.setDefault(PreferenceConstants.SPELLING_IGNORE_DIGITS, true);
+    store.setDefault(PreferenceConstants.SPELLING_IGNORE_MIXED, true);
+    store.setDefault(PreferenceConstants.SPELLING_IGNORE_SENTENCE, true);
+    store.setDefault(PreferenceConstants.SPELLING_IGNORE_UPPER, true);
+    store.setDefault(PreferenceConstants.SPELLING_IGNORE_URLS, true);
+    store.setDefault(PreferenceConstants.SPELLING_USER_DICTIONARY, ""); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.SPELLING_PROPOSAL_THRESHOLD, 20);
+    store.setDefault(PreferenceConstants.SPELLING_ENABLE_CONTENTASSIST, false);
+
+    // folding
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_ENABLED, true);
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_PROVIDER, "net.sourceforge.phpdt.ui.text.defaultFoldingProvider"); //$NON-NLS-1$
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_JAVADOC, true);
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_INNERTYPES, true);
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_METHODS, false);
+    store.setDefault(PreferenceConstants.EDITOR_FOLDING_IMPORTS, false);
+
+    store.setDefault(PreferenceConstants.EDITOR_SMART_BACKSPACE, true);
+
     // do more complicated stuff
-    // NewJavaProjectPreferencePage.initDefaults(store);       
+    // NewJavaProjectPreferencePage.initDefaults(store);
   }
 
   /**
@@ -1967,12 +2457,12 @@ public class PreferenceConstants {
   }
 
   //   /**
-  //    * Encodes a JRE library to be used in the named preference <code>NEWPROJECT_JRELIBRARY_LIST</code>. 
-  //    * 
+  //    * 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) {
@@ -1981,9 +2471,9 @@ public class PreferenceConstants {
   //   
   //   /**
   //    * 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) {
@@ -1992,9 +2482,9 @@ public class PreferenceConstants {
   //   
   //   /**
   //    * 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) {
@@ -2007,11 +2497,11 @@ public class PreferenceConstants {
   //    * </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();
-  //   }               
-}
+  //   }
+}
\ No newline at end of file