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/java/JavaAutoIndentStrategy.java
case Symbols.TokenLBRACE:
    			closeToken= Symbols.TokenRBRACE;
    			break;
    		default:
    			Assert.isTrue(false);
    			return -1; 
    	}
    	
    	int depth= 1;
    	int p= pos;
    	while (true) {
    		int tok= scanner.nextToken(p, JavaHeuristicScanner.UNBOUND);
    		p= scanner.getPosition();
    		
    		if (tok == openToken) {
    			depth++;
    		} else if (tok == closeToken) {
    			depth--;
    			if (depth == 0)
    				return p + 1;
    		} else if (tok == Symbols.TokenEOF) {
    			return JavaHeuristicScanner.NOT_FOUND;
    		}
    	}
    }
    private boolean isLineDelimiter(IDocument document, String text) {
		String[] delimiters= document.getLegalLineDelimiters();
		if (delimiters != null)
			return TextUtilities.equals(delimiters, text) > -1;
		return false;