use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class PrepareRenameTest method testPrepareRenameFqn_end_null.
@Test
public void testPrepareRenameFqn_end_null() throws Exception {
String model = "package foo.bar {\n" + " type A {\n" + " foo.bar.MyType bar\n" + " }\n" + " type MyType { }\n" + "}\n";
initialize();
String uri = writeFile("my-type-valid.testlang", model);
PrepareRenameParams params = new PrepareRenameParams(new TextDocumentIdentifier(uri), new Position(2, 18));
Assert.assertNull(languageServer.prepareRename(params).get());
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class PrepareRenameTest method testPrepareRenameFqn_before_nok.
@Test
public void testPrepareRenameFqn_before_nok() 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, 11));
Assert.assertNull(languageServer.prepareRename(params).get());
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenameTest2 method testRenameContainer.
@Test
public void testRenameContainer() throws Exception {
String model = "package foo\n" + "\n" + "element Foo {\n" + " element Bar {\n" + " }\n" + " ref foo.Foo.Bar\n" + " ref Foo.Bar\n" + " ref Bar\n" + "}\n";
String file = writeFile("foo/Foo.fileawaretestlanguage", model);
initialize();
TextDocumentIdentifier identifier = new TextDocumentIdentifier(file);
Position position = new Position(2, 9);
Range range = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get().getLeft();
assertEquals("Foo", new Document(0, model).getSubstring(range));
RenameParams params = new RenameParams(identifier, position, "Baz");
WorkspaceEdit workspaceEdit = languageServer.rename(params).get();
String expectation = "changes :\n" + "documentChanges : \n" + " Foo.fileawaretestlanguage <1> : Baz [[2, 8] .. [2, 11]]\n" + " Bar [[5, 5] .. [5, 16]]\n" + " Bar [[6, 5] .. [6, 12]]\n";
assertEquals(expectation.toString(), toExpectation(workspaceEdit));
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenameTest2 method testRenameSelfRef.
@Test
public void testRenameSelfRef() throws Exception {
String model = "package foo\n" + "\n" + "element Foo {\n" + " ref Foo\n" + "}\n";
String file = writeFile("foo/Foo.fileawaretestlanguage", model);
initialize();
TextDocumentIdentifier identifier = new TextDocumentIdentifier(file);
Position position = new Position(2, 9);
Range range = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get().getLeft();
assertEquals("Foo", new Document(0, model).getSubstring(range));
RenameParams params = new RenameParams(identifier, position, "Bar");
WorkspaceEdit workspaceEdit = languageServer.rename(params).get();
String expectation = "changes :\n" + "documentChanges : \n" + " Foo.fileawaretestlanguage <1> : Bar [[2, 8] .. [2, 11]]\n" + " Bar [[3, 5] .. [3, 8]]\n";
assertEquals(expectation.toString(), toExpectation(workspaceEdit));
}
use of org.eclipse.lsp4j.PrepareRenameParams in project xtext-core by eclipse.
the class RenamePositionTest method renameWithSuccess.
protected void renameWithSuccess(String model, Position position) throws Exception {
String modelFile = writeFile("MyType.testlang", model);
initialize((InitializeParams params) -> {
ClientCapabilities clientCapabilities = new ClientCapabilities();
TextDocumentClientCapabilities textDocumentClientCapabilities = new TextDocumentClientCapabilities();
textDocumentClientCapabilities.setRename(new RenameCapabilities(true, false));
clientCapabilities.setTextDocument(textDocumentClientCapabilities);
params.setCapabilities(clientCapabilities);
});
TextDocumentIdentifier identifier = new TextDocumentIdentifier(modelFile);
Range range = languageServer.prepareRename(new PrepareRenameParams(identifier, position)).get().getLeft();
Assert.assertNotNull(range);
assertEquals(new Document(Integer.valueOf(0), model).getSubstring(range), "Test");
RenameParams params = new RenameParams(identifier, position, "Tescht");
WorkspaceEdit workspaceEdit = languageServer.rename(params).get();
String expectation = "changes :\n" + " MyType.testlang : Tescht [[0, 5] .. [0, 9]]\n" + "documentChanges : \n";
assertEquals(expectation.toString(), toExpectation(workspaceEdit));
}
Aggregations