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/actions/IndentAction.java
int minusOne= length == 0 ? 0 : 1;
				nLines= document.getLineOfOffset(offset + length - minusOne) - firstLine + 1;
			} catch (BadLocationException e) {
				
				JavaPlugin.log(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), IStatus.OK, "", e)); 
				return;
			}
			
			Runnable runnable= new Runnable() {
				public void run() {
					IRewriteTarget target= (IRewriteTarget)getTextEditor().getAdapter(IRewriteTarget.class);
					if (target != null) {
						target.beginCompoundChange();
						target.setRedraw(false);
					}
					
					try {
						JavaHeuristicScanner scanner= new JavaHeuristicScanner(document);
						JavaIndenter indenter= new JavaIndenter(document, scanner);
						boolean hasChanged= false;
						for (int i= 0; i < nLines; i++) {
							hasChanged |= indentLine(document, firstLine + i, offset, indenter, scanner);
						}
						
						
						
						int newOffset, newLength;
						if (fIsTabAction) {
							newOffset= fCaretOffset;