@@ -3794,6 +3794,13 @@ public void testRenameDocumentChangesCapabilitiesRenameOp() throws Exception {
37943794 Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
37953795 Set <String > expected = new HashSet <>(Arrays .asList ("Test2.java:[0:27-0:31=>TestNew, 1:4-1:8=>TestNew, 2:11-2:15=>TestNew]" , "Test.java:[0:13-0:17=>TestNew]" , "Test.java=>TestNew.java" ));
37963796 assertEquals (expected , actual );
3797+ },
3798+ cf -> {
3799+ WorkspaceEdit edit = cf .get ();
3800+ assertTrue (edit .getChanges ().isEmpty ());
3801+ Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
3802+ Set <String > expected = new HashSet <>(Arrays .asList ("Test3.java:[3:14-3:22=>arg, 6:36-6:44=>arg, 7:27-7:35=>arg]" ));
3803+ assertEquals (expected , actual );
37973804 });
37983805 }
37993806
@@ -3818,12 +3825,20 @@ public void testRenameDocumentChangesCapabilitiesNoRenameOp() throws Exception {
38183825 Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
38193826 Set <String > expected = new HashSet <>(Arrays .asList ("Test2.java:[0:27-0:31=>TestNew, 1:4-1:8=>TestNew, 2:11-2:15=>TestNew]" , "Test.java:[0:13-0:17=>TestNew]" , "Test.java=>TestNew.java" ));
38203827 assertEquals (expected , actual );
3828+ },
3829+ cf -> {
3830+ WorkspaceEdit edit = cf .get ();
3831+ assertTrue (edit .getChanges ().isEmpty ());
3832+ Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
3833+ Set <String > expected = new HashSet <>(Arrays .asList ("Test3.java:[3:14-3:22=>arg, 6:36-6:44=>arg, 7:27-7:35=>arg]" ));
3834+ assertEquals (expected , actual );
38213835 });
38223836 }
38233837
38243838 private void doTestRename (Consumer <InitializeParams > settings ,
38253839 Validator <CompletableFuture <WorkspaceEdit >> validateFieldRename ,
3826- Validator <CompletableFuture <WorkspaceEdit >> validateClassRename ) throws Exception {
3840+ Validator <CompletableFuture <WorkspaceEdit >> validateClassRename ,
3841+ Validator <CompletableFuture <WorkspaceEdit >> validateArgumentRename ) throws Exception {
38273842 File src = new File (getWorkDir (), "Test.java" );
38283843 src .getParentFile ().mkdirs ();
38293844 try (Writer w = new FileWriter (new File (src .getParentFile (), ".test-project" ))) {}
@@ -3842,6 +3857,20 @@ private void doTestRename(Consumer<InitializeParams> settings,
38423857 try (Writer w = new FileWriter (src2 )) {
38433858 w .write (code2 );
38443859 }
3860+ File src3 = new File (getWorkDir (), "Test3.java" );
3861+ String code3 = "public class Test3 {\n " +
3862+ " /**\n " +
3863+ " * They had an argument\n " +
3864+ " * @param argument\n " +
3865+ " *\n " +
3866+ " */\n " +
3867+ " public static void greet(String argument){\n " +
3868+ " System.out.println(argument);\n " +
3869+ " }\n " +
3870+ "}" ;
3871+ try (Writer w = new FileWriter (src3 )) {
3872+ w .write (code3 );
3873+ }
38453874 List <Diagnostic >[] diags = new List [1 ];
38463875 CountDownLatch indexingComplete = new CountDownLatch (1 );
38473876 Launcher <LanguageServer > serverLauncher = createClientLauncherWithLogging (new LspClient () {
@@ -3899,6 +3928,14 @@ public void logMessage(MessageParams arg0) {
38993928
39003929 validateClassRename .validate (server .getTextDocumentService ().rename (params ));
39013930 }
3931+ server .getTextDocumentService ().didOpen (new DidOpenTextDocumentParams (new TextDocumentItem (toURI (src3 ), "java" , 0 , code3 )));
3932+ {
3933+ RenameParams params = new RenameParams (new TextDocumentIdentifier (src3 .toURI ().toString ()),
3934+ new Position (6 , 37 ),
3935+ "arg" );
3936+
3937+ validateArgumentRename .validate (server .getTextDocumentService ().rename (params ));
3938+ }
39023939 }
39033940
39043941 public void testMoveClass () throws Exception {
0 commit comments