use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenamePositionTest method renameAndFail.
protected void renameAndFail(String model, Position position, String messageFragment) {
String modelFile = writeFile("MyType.testlang", model);
initialize();
try {
TextDocumentIdentifier identifier = new TextDocumentIdentifier(modelFile);
Either<Range, PrepareRenameResult> prepareRenameResult = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get();
Assert.assertNull("expected null result got " + prepareRenameResult + " instead", prepareRenameResult);
RenameParams renameParams = new RenameParams(new TextDocumentIdentifier(modelFile), position, "Tescht");
languageServer.rename(renameParams).get();
Assert.fail("Rename should have failed");
} catch (Exception exc) {
Throwable rootCause = Throwables.getRootCause(exc);
Assert.assertTrue(rootCause instanceof ResponseErrorException);
ResponseError error = ((ResponseErrorException) rootCause).getResponseError();
Assert.assertTrue(error.getData().toString().contains(messageFragment));
}
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenameTest3 method testRenameAutoQuote.
@Test
public void testRenameAutoQuote() throws Exception {
String model = "type Foo {\n" + "}\n" + "";
String file = writeFile("foo/Foo.renametl", model);
initialize();
TextDocumentIdentifier identifier = new TextDocumentIdentifier(file);
Position position = new Position(0, 6);
Range range = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get().getLeft();
assertEquals("Foo", new Document(0, model).getSubstring(range));
RenameParams params = new RenameParams(identifier, position, "type");
WorkspaceEdit workspaceEdit = languageServer.rename(params).get();
String expectation = "changes :\n" + "documentChanges : \n" + " Foo.renametl <1> : ^type [[0, 5] .. [0, 8]]\n" + "";
assertEquals(expectation.toString(), toExpectation(workspaceEdit));
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenameTest3 method testRenameQuotedRef.
@Test
public void testRenameQuotedRef() throws Exception {
String model = "type ^type {\n" + "}\n" + "\n" + "type Bar extends ^type {\n" + "}\n" + "";
String file = writeFile("foo/Foo.renametl", model);
initialize();
TextDocumentIdentifier identifier = new TextDocumentIdentifier(file);
Position position = new Position(3, 19);
Range range = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get().getLeft();
assertEquals("^type", new Document(0, model).getSubstring(range));
RenameParams params = new RenameParams(identifier, position, "Foo");
WorkspaceEdit workspaceEdit = languageServer.rename(params).get();
String expectation = "changes :\n" + "documentChanges : \n" + " Foo.renametl <1> : Foo [[0, 5] .. [0, 10]]\n" + " Foo [[3, 17] .. [3, 22]]\n" + "";
assertEquals(expectation.toString(), toExpectation(workspaceEdit));
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class PrepareRenameTest method testPrepareRenameFqn_missing_file_exception.
@Test
public void testPrepareRenameFqn_missing_file_exception() throws Exception {
String uri = uriExtensions.toUriString(new File("missing." + fileExtension).toURI().normalize());
initialize();
PrepareRenameParams params = new PrepareRenameParams(new TextDocumentIdentifier(uri), new Position(2, 5));
try {
Assert.assertNull(languageServer.prepareRename(params).get());
Assert.fail("Expected an error.");
} catch (Exception e) {
Assert.assertTrue(Throwables.getRootCause(e) instanceof FileNotFoundException);
}
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class PrepareRenameTest method testPrepareRenameFqn_in_ok.
@Test
public void testPrepareRenameFqn_in_ok() throws Exception {
String model = "package foo.bar {\n" + " type A {\n" + " foo.bar.MyType bar\n" + " }\n" + " type MyType { }\n" + "}\n";
initializeWithPrepareSupport();
String uri = writeFile("my-type-valid.testlang", model);
PrepareRenameParams params = new PrepareRenameParams(new TextDocumentIdentifier(uri), new Position(2, 14));
Range range = languageServer.prepareRename(params).get().getLeft();
assertEquals("MyType", new Document(0, model).getSubstring(range));
}
Aggregations