diff --git a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/rename/RenameService2.java b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/rename/RenameService2.java index cfa6568f9..4cdffe933 100644 --- a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/rename/RenameService2.java +++ b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/rename/RenameService2.java @@ -125,7 +125,7 @@ public class RenameService2 implements IRenameService2 { issueAcceptor.add(RefactoringIssueAcceptor.Severity.FATAL, "No element found at " + toPositionFragment(position, uri)); } else { - applyModifications(element, workspaceEdit, issueAcceptor, options); + applyModifications(element, workspaceEdit, issueAcceptor, options, context); } } else { issueAcceptor.add(RefactoringIssueAcceptor.Severity.FATAL, @@ -151,21 +151,31 @@ public class RenameService2 implements IRenameService2 { } } - protected void applyModifications(EObject element, WorkspaceEdit workspaceEdit, ServerRefactoringIssueAcceptor issueAcceptor, IRenameService2.Options options) { + /** + *
+ * Performs the actual renaming. Runs within a read transaction on the index and a live-scoped resource set. + *
+ *+ * Override this method to implement custom renaming behavior. + *
+ * + * @since 2.25 + */ + protected void applyModifications(EObject element, WorkspaceEdit workspaceEdit, + ServerRefactoringIssueAcceptor issueAcceptor, IRenameService2.Options options, + ILanguageServerAccess.Context context) { IResourceServiceProvider services = serviceProviderRegistry .getResourceServiceProvider(element.eResource().getURI()); IChangeSerializer changeSerializer = services.get(IChangeSerializer.class); - RenameChange change = new RenameChange(options.getRenameParams().getNewName(), - EcoreUtil.getURI(element)); + RenameChange change = new RenameChange(options.getRenameParams().getNewName(), EcoreUtil.getURI(element)); ResourceSet resourceSet = element.eResource().getResourceSet(); - RenameContext renameContext = new RenameContext(Lists.newArrayList(change), resourceSet, - changeSerializer, issueAcceptor); + RenameContext renameContext = new RenameContext(Lists.newArrayList(change), resourceSet, changeSerializer, + issueAcceptor); IRenameStrategy2 renameStrategy = services.