use of org.eclipse.lsp4j.PrepareRenameResult in project magik-tools by StevenLooman.
the class RenameProviderTest method testPrepareRenameLocal.
@Test
void testPrepareRenameLocal() {
final String code = "" + "_block\n" + " _local var\n" + " show(var)\n" + "_endblock\n";
// On `var`.
final Position position = new Position(1, 12);
final Either<Range, PrepareRenameResult> either = this.getPrepareRename(code, position);
assertThat(either).isNotNull();
final PrepareRenameResult prepareRenameResult = either.getRight();
assertThat(prepareRenameResult.getRange()).isEqualTo(new Range(new Position(1, 11), new Position(1, 14)));
assertThat(prepareRenameResult.getPlaceholder()).isEqualTo("var");
}
use of org.eclipse.lsp4j.PrepareRenameResult in project lxtk by lxtk-org.
the class RenameRefactoring method checkInitialConditions.
@Override
public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException, OperationCanceledException {
setPrepareRenameResult(null, null);
RenameProvider[] renameProviders = getRenameProviders();
if (renameProviders.length == 0)
return RefactoringStatus.createFatalErrorStatus(Messages.RenameRefactoring_No_rename_provider);
RefactoringStatus status = new RefactoringStatus();
SubMonitor subMonitor = SubMonitor.convert(pm, renameProviders.length);
for (int i = 0; i < renameProviders.length; i++) {
RenameProvider renameProvider = renameProviders[i];
if (!Boolean.TRUE.equals(renameProvider.getRegistrationOptions().getPrepareProvider()))
return new RefactoringStatus();
PrepareRenameRequest request = newPrepareRenameRequest();
request.setProvider(renameProvider);
PrepareRenameParams params = new PrepareRenameParams(DocumentUri.toTextDocumentIdentifier(target.getDocumentUri()), getPosition());
request.setParams(params);
request.setProgressMonitor(subMonitor.split(1));
Either<Range, PrepareRenameResult> prepareRenameResult = null;
try {
prepareRenameResult = request.sendAndReceive();
} catch (CompletionException e) {
status.merge(handleError(e.getCause(), request.getErrorMessage()));
}
if (prepareRenameResult != null) {
setPrepareRenameResult(renameProvider, prepareRenameResult);
return new RefactoringStatus();
}
}
// no prepare rename result
if (!status.hasFatalError())
status.addFatalError(Messages.RenameRefactoring_No_prepare_rename_result);
return status;
}
Aggregations