diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/formatting/EclipseXmlFormatPreferences.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/formatting/EclipseXmlFormatPreferences.java | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/formatting/EclipseXmlFormatPreferences.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/formatting/EclipseXmlFormatPreferences.java deleted file mode 100644 index 6c00b8ee2..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/formatting/EclipseXmlFormatPreferences.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Eclipse Public License, Version 1.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.eclipse.org/org/documents/epl-v10.php - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.ide.eclipse.adt.internal.editors.formatting; - -import com.android.annotations.NonNull; -import com.android.annotations.Nullable; -import com.android.annotations.VisibleForTesting; -import com.android.ide.common.xml.XmlFormatPreferences; -import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs; -import com.android.ide.common.xml.XmlAttributeSortOrder; - -import org.eclipse.core.runtime.Preferences; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.ui.internal.editors.text.EditorsPlugin; -import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; -import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion; -import org.eclipse.wst.xml.core.internal.XMLCorePlugin; -import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames; -import org.w3c.dom.Attr; - -import java.util.Comparator; - -/** - * Formatting preferences used by the Android XML formatter. - */ -public class EclipseXmlFormatPreferences extends XmlFormatPreferences { - @VisibleForTesting - protected EclipseXmlFormatPreferences() { - } - - /** - * Creates a new {@link EclipseXmlFormatPreferences} based on the current settings - * in {@link AdtPrefs} - * - * @return an {@link EclipseXmlFormatPreferences} object - */ - @NonNull - public static EclipseXmlFormatPreferences create() { - EclipseXmlFormatPreferences p = new EclipseXmlFormatPreferences(); - AdtPrefs prefs = AdtPrefs.getPrefs(); - - p.useEclipseIndent = prefs.isUseEclipseIndent(); - p.removeEmptyLines = prefs.isRemoveEmptyLines(); - p.oneAttributeOnFirstLine = prefs.isOneAttributeOnFirstLine(); - p.sortAttributes = prefs.getAttributeSort(); - p.spaceBeforeClose = prefs.isSpaceBeforeClose(); - - return p; - } - - @Override - @Nullable - public Comparator<Attr> getAttributeComparator() { - // Can't just skip sorting; the attribute table moves attributes out of order - // due to hashing, so sort by node positions - if (sortAttributes == XmlAttributeSortOrder.NO_SORTING) { - return EXISTING_ORDER_COMPARATOR; - } - return sortAttributes.getAttributeComparator(); - } - - private static final Comparator<Attr> EXISTING_ORDER_COMPARATOR = new Comparator<Attr>() { - @Override - public int compare(Attr attr1, Attr attr2) { - IndexedRegion region1 = (IndexedRegion) attr1; - IndexedRegion region2 = (IndexedRegion) attr2; - - return region1.getStartOffset() - region2.getStartOffset(); - } - }; - - // The XML module settings do not have a public API. We should replace this with JDT - // settings anyway since that's more likely what users have configured and want applied - // to their XML files - - /** - * Returns the string to use to indent one indentation level - * - * @return the string used to indent one indentation level - */ - @Override - @SuppressWarnings({ - "restriction", "deprecation" - }) - public String getOneIndentUnit() { - if (useEclipseIndent) { - // Look up Eclipse indent preferences - // TODO: Use the JDT preferences instead, which make more sense - Preferences preferences = XMLCorePlugin.getDefault().getPluginPreferences(); - int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE); - String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR); - boolean useSpaces = XMLCorePreferenceNames.SPACE.equals(indentCharPref); - - StringBuilder indentString = new StringBuilder(); - for (int j = 0; j < indentationWidth; j++) { - if (useSpaces) { - indentString.append(' '); - } else { - indentString.append('\t'); - } - } - mOneIndentUnit = indentString.toString(); - } - - return mOneIndentUnit; - } - - /** - * Returns the number of spaces used to display a single tab character - * - * @return the number of spaces used to display a single tab character - */ - @Override - @SuppressWarnings("restriction") // Editor settings - public int getTabWidth() { - if (mTabWidth == -1) { - String key = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH; - try { - IPreferenceStore prefs = EditorsPlugin.getDefault().getPreferenceStore(); - mTabWidth = prefs.getInt(key); - } catch (Throwable t) { - // Pass: We'll pick a suitable default instead below - } - if (mTabWidth <= 0) { - mTabWidth = 4; - } - } - - return mTabWidth; - } -} |