Bug 80573 Prepare project specific preference options
I200412081200 From Martin's e-mail: I deprecated some methods that access options that will soon be offered per project as well: CodeFormatterUtil.getTabWidth() -> CodeFormatterUtil.getTabWidth(IJavaProject) CodeFormatterUtil.createIndentString(int) -> CodeFormatterUtil.createIndentString(int, IJavaProject) JavaPreferencesSettings.getCodeGenerationSettings() -> JavaPreferencesSettings.getCodeGenerationSettings(IJavaProject) JavaPreferencesSettings.getImportNumberThreshold(IPreferenceStore) -> JavaPreferencesSettings.getImportNumberThreshold(IJavaProject) JavaPreferencesSettings.getImportOrderPreference(IPreferenceStore) -> JavaPreferencesSettings.getImportOrderPreference(IJavaProject) Also make sure to not directly access to the following preference constants: PreferenceConstants.CODEGEN_* PreferenceConstants.ORGIMPORTS_* PreferenceConstants.FORMATTER_COMMENT_* -> Use PreferenceConstants.getPreference(String key, IJavaProject project) to get a JDT.UI preference value using the given project scope DefaultCodeFormatterConstants.* -> Use javaProject.getOption(key, true) to get a preference value using the given scope I fixed most of the references. What is still open: Refactoring:, fix the accesses to the deprecated methods listed above Java Editor, IndentAction, JavaAutoIndentStrategy, ...: Check all accesses to DefaultCodeFormatterConstants, e.g. FORMATTER_TAB_SIZE, FORMATTER_TAB_CHAR to see if the OverlayPreferenceStore is used
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/JavaIndenter.java
int nonWS= fScanner.findNonWhitespaceForwardInAnyPartition(lineOffset, lineOffset + line.getLength());
			indent.append(fDocument.get(lineOffset, nonWS - lineOffset));
			return indent;
		} catch (BadLocationException e) {
			return indent;
		}
	}
	/**
	 * Reduces indentation in <code>indent</code> by one indentation unit.
	 * 
	 * @param indent the indentation to be modified
	 */
	private void unindent(StringBuffer indent) {
		CharSequence oneIndent= createIndent();
		int i= indent.lastIndexOf(oneIndent.toString()); 
		if (i != -1) {
			indent.delete(i, i + oneIndent.length());
		}			
	}
	/**
	 * Creates an indentation string of the length indent - start, consisting of
	 * the content in <code>fDocument</code> in the range [start, indent),
	 * with every character replaced by a space except for tabs, which are kept
	 * as such.
	 * <p>
	 * If <code>convertSpaceRunsToTabs</code> is <code>true</code>, every
	 * run of the number of spaces that make up a tab are replaced by a tab
	 * character. If it is not set, no conversion takes place, but tabs in the
	 * original range are still copied verbatim.
	 * </p>