Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt the helpers from jdt.core.manipulation to deal with the CU's preferences #1666

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ private static TextEdit createTextEditForOverridableMethods(ICompilationUnit cu,
return null;
}

CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(cu.getResource());
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(cu);
ImportRewriteContext context = new ContextSensitiveImportRewriteContext(astRoot, typeNode.getStartPosition(), importRewrite);
for (IMethodBinding methodBinding : methodBindings) {
MethodDeclaration stub = StubUtility2Core.createImplementationStubCore(cu, astRewrite, importRewrite, context, methodBinding, typeBinding, settings, typeBinding.isInterface(), typeNode, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ private String createNewBody(ImportRewrite importRewrite) throws CoreException {
bindings = new IMethodBinding[0];
}
}
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(fJavaProject.getProject());
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(fCompilationUnit);
IMethodBinding[] methodsToOverride = null;
settings.createComments = false;
List<IMethodBinding> result = new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ public String updateReplacementString(IDocument document, int offset, ImportRewr
methodToOverride= Bindings.findMethodInType(node.getAST().resolveWellKnownType("java.lang.Object"), fMethodName, fParamTypes); //$NON-NLS-1$
}
if (methodToOverride != null) {
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(fJavaProject.getProject());
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(fCompilationUnit);
MethodDeclaration stub = StubUtility2Core.createImplementationStubCore(fCompilationUnit, rewrite, importRewrite,
context, methodToOverride, declaringType, settings, declaringType.isInterface(), node,
snippetStringSupport);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,8 +364,8 @@ public void createEdit() throws JavaModelException {
TextEdit edit= fDelegateRewrite.getASTRewrite().rewriteAST(document, fDelegateRewrite.getCu().getOptions(true));
edit.apply(document, TextEdit.UPDATE_REGIONS);

int tabWidth = CodeFormatterUtil.getTabWidth(fOriginalRewrite.getCu().getJavaProject());
int identWidth = CodeFormatterUtil.getIndentWidth(fOriginalRewrite.getCu().getJavaProject());
int tabWidth = CodeFormatterUtil.getTabWidth(fOriginalRewrite.getCu());
int identWidth = CodeFormatterUtil.getIndentWidth(fOriginalRewrite.getCu());

String newSource= Strings.trimIndentation(document.get(fTrackedPosition.getStartPosition(), fTrackedPosition.getLength()),
tabWidth, identWidth, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ private MethodDeclaration getStub(ASTRewrite rewrite, ASTNode targetTypeDecl) th
}
decl.setBody(body);

CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(getCompilationUnit().getResource());
CodeGenerationSettings settings = PreferenceManager.getCodeGenerationSettings(getCompilationUnit());
if (settings.createComments && !fSenderBinding.isAnonymous()) {
String string = CodeGeneration.getMethodComment(getCompilationUnit(), fSenderBinding.getName(), decl, null,
String.valueOf('\n'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ protected ASTRewrite getRewrite() throws CoreException {

createImportRewrite((CompilationUnit) fTypeNode.getRoot());

CodeGenerationSettings settings= JavaPreferencesSettings.getCodeGenerationSettings(getCompilationUnit().getJavaProject());
CodeGenerationSettings settings= JavaPreferencesSettings.getCodeGenerationSettings(getCompilationUnit());
if (!settings.createComments) {
settings= null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,12 +94,12 @@ private AddJavadocCommentProposal(String name, ICompilationUnit cu, int relevanc
protected void addEdits(IDocument document, TextEdit rootEdit) throws CoreException {
try {
String lineDelimiter= TextUtilities.getDefaultLineDelimiter(document);
final IJavaProject project= getCompilationUnit().getJavaProject();
final ICompilationUnit unit= getCompilationUnit();
IRegion region= document.getLineInformationOfOffset(fInsertPosition);

String lineContent= document.get(region.getOffset(), region.getLength());
String indentString= Strings.getIndentString(lineContent, project);
String str= Strings.changeIndent(fComment, 0, project, indentString, lineDelimiter);
String indentString= Strings.getIndentString(lineContent, unit);
String str= Strings.changeIndent(fComment, 0, unit, indentString, lineDelimiter);
InsertEdit edit= new InsertEdit(fInsertPosition, str);
rootEdit.addChild(edit);
if (fComment.charAt(fComment.length() - 1) != '\n') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
import org.eclipse.jdt.core.dom.IVariableBinding;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
import org.eclipse.jdt.internal.corext.refactoring.RefactoringAvailabilityTesterCore;
import org.eclipse.jdt.internal.corext.refactoring.structure.MoveInnerToTopRefactoring;
import org.eclipse.jdt.internal.corext.refactoring.structure.MoveInstanceMethodProcessor;
Expand Down Expand Up @@ -221,7 +222,7 @@ private static MoveDestinationsResponse getInstanceMethodDestinations(CodeAction
}

IMethod method = (IMethod) methodBinding.getJavaElement();
MoveInstanceMethodProcessor processor = new MoveInstanceMethodProcessor(method, PreferenceManager.getCodeGenerationSettings(method.getJavaProject().getProject()));
MoveInstanceMethodProcessor processor = new MoveInstanceMethodProcessor(method, PreferenceManager.getCodeGenerationSettings(unit));
Refactoring refactoring = new MoveRefactoring(processor);
CheckConditionsOperation check = new CheckConditionsOperation(refactoring, CheckConditionsOperation.INITIAL_CONDITONS);
try {
Expand Down Expand Up @@ -448,7 +449,7 @@ private static RefactorWorkspaceEdit moveInstanceMethod(CodeActionParams params,

SubMonitor subMonitor = SubMonitor.convert(monitor, "Moving instance method...", 100);
IMethod method = (IMethod) methodBinding.getJavaElement();
MoveInstanceMethodProcessor processor = new MoveInstanceMethodProcessor(method, PreferenceManager.getCodeGenerationSettings(method.getJavaProject().getProject()));
MoveInstanceMethodProcessor processor = new MoveInstanceMethodProcessor(method, PreferenceManager.getCodeGenerationSettings(unit));
Refactoring refactoring = new MoveRefactoring(processor);
CheckConditionsOperation check = new CheckConditionsOperation(refactoring, CheckConditionsOperation.INITIAL_CONDITONS);
try {
Expand Down Expand Up @@ -514,7 +515,9 @@ private static RefactorWorkspaceEdit moveStaticMember(IMember[] members, String
return new RefactorWorkspaceEdit("Failed to move static member because no members are selected or no destination is specified.");
}

MoveStaticMembersProcessor processor = new MoveStaticMembersProcessor(members, PreferenceManager.getCodeGenerationSettings(members[0].getJavaProject().getProject()));
CodeGenerationSettings settings = members[0].getTypeRoot() instanceof ICompilationUnit ? PreferenceManager.getCodeGenerationSettings((ICompilationUnit) members[0].getTypeRoot())
: PreferenceManager.getCodeGenerationSettings(members[0].getJavaProject().getProject());
MoveStaticMembersProcessor processor = new MoveStaticMembersProcessor(members, settings);
Refactoring refactoring = new MoveRefactoring(processor);
CheckConditionsOperation check = new CheckConditionsOperation(refactoring, CheckConditionsOperation.INITIAL_CONDITONS);
SubMonitor subMonitor = SubMonitor.convert(monitor, "Moving static members...", 100);
Expand Down Expand Up @@ -558,7 +561,7 @@ private static RefactorWorkspaceEdit moveTypeToNewFile(CodeActionParams params,

SubMonitor subMonitor = SubMonitor.convert(monitor, "Moving type to new file...", 100);
try {
MoveInnerToTopRefactoring refactoring = new MoveInnerToTopRefactoring(type, PreferenceManager.getCodeGenerationSettings(unit.getJavaProject().getProject()));
MoveInnerToTopRefactoring refactoring = new MoveInnerToTopRefactoring(type, PreferenceManager.getCodeGenerationSettings(unit));
CheckConditionsOperation check = new CheckConditionsOperation(refactoring, CheckConditionsOperation.ALL_CONDITIONS);
check.run(subMonitor.split(50));
if (check.getStatus().getSeverity() >= RefactoringStatus.FATAL) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;
Expand Down Expand Up @@ -256,6 +257,15 @@ public static CodeGenerationSettings getCodeGenerationSettings(IResource resourc
return res;
}

public static CodeGenerationSettings getCodeGenerationSettings(ICompilationUnit cu) {
CodeGenerationSettings res = new CodeGenerationSettings();
res.overrideAnnotation = true;
res.createComments = false;
res.tabWidth = CodeFormatterUtil.getTabWidth(cu);
res.indentWidth = CodeFormatterUtil.getIndentWidth(cu);
return res;
}

/**
* Register the given listener for notification of preferences changes. Calling
* this method multiple times with the same listener has no effect. The given
Expand Down