@@ -3798,6 +3798,13 @@ public void testRenameDocumentChangesCapabilitiesRenameOp() throws Exception {
37983798 Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
37993799 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" ));
38003800 assertEquals (expected , actual );
3801+ },
3802+ cf -> {
3803+ WorkspaceEdit edit = cf .get ();
3804+ assertTrue (edit .getChanges ().isEmpty ());
3805+ Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
3806+ Set <String > expected = new HashSet <>(Arrays .asList ("Test3.java:[3:14-3:22=>arg, 6:36-6:44=>arg, 7:27-7:35=>arg]" ));
3807+ assertEquals (expected , actual );
38013808 });
38023809 }
38033810
@@ -3822,12 +3829,20 @@ public void testRenameDocumentChangesCapabilitiesNoRenameOp() throws Exception {
38223829 Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
38233830 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" ));
38243831 assertEquals (expected , actual );
3832+ },
3833+ cf -> {
3834+ WorkspaceEdit edit = cf .get ();
3835+ assertTrue (edit .getChanges ().isEmpty ());
3836+ Set <String > actual = edit .getDocumentChanges ().stream ().map (this ::toString ).collect (Collectors .toSet ());
3837+ Set <String > expected = new HashSet <>(Arrays .asList ("Test3.java:[3:14-3:22=>arg, 6:36-6:44=>arg, 7:27-7:35=>arg]" ));
3838+ assertEquals (expected , actual );
38253839 });
38263840 }
38273841
38283842 private void doTestRename (Consumer <InitializeParams > settings ,
38293843 Validator <CompletableFuture <WorkspaceEdit >> validateFieldRename ,
3830- Validator <CompletableFuture <WorkspaceEdit >> validateClassRename ) throws Exception {
3844+ Validator <CompletableFuture <WorkspaceEdit >> validateClassRename ,
3845+ Validator <CompletableFuture <WorkspaceEdit >> validateArgumentRename ) throws Exception {
38313846 File src = new File (getWorkDir (), "Test.java" );
38323847 src .getParentFile ().mkdirs ();
38333848 try (Writer w = new FileWriter (new File (src .getParentFile (), ".test-project" ))) {}
@@ -3846,6 +3861,20 @@ private void doTestRename(Consumer<InitializeParams> settings,
38463861 try (Writer w = new FileWriter (src2 )) {
38473862 w .write (code2 );
38483863 }
3864+ File src3 = new File (getWorkDir (), "Test3.java" );
3865+ String code3 = "public class Test3 {\n " +
3866+ " /**\n " +
3867+ " * They had an argument\n " +
3868+ " * @param argument\n " +
3869+ " *\n " +
3870+ " */\n " +
3871+ " public static void greet(String argument){\n " +
3872+ " System.out.println(argument);\n " +
3873+ " }\n " +
3874+ "}" ;
3875+ try (Writer w = new FileWriter (src3 )) {
3876+ w .write (code3 );
3877+ }
38493878 List <Diagnostic >[] diags = new List [1 ];
38503879 CountDownLatch indexingComplete = new CountDownLatch (1 );
38513880 Launcher <LanguageServer > serverLauncher = createClientLauncherWithLogging (new LspClient () {
@@ -3903,6 +3932,14 @@ public void logMessage(MessageParams arg0) {
39033932
39043933 validateClassRename .validate (server .getTextDocumentService ().rename (params ));
39053934 }
3935+ server .getTextDocumentService ().didOpen (new DidOpenTextDocumentParams (new TextDocumentItem (toURI (src3 ), "java" , 0 , code3 )));
3936+ {
3937+ RenameParams params = new RenameParams (new TextDocumentIdentifier (src3 .toURI ().toString ()),
3938+ new Position (6 , 37 ),
3939+ "arg" );
3940+
3941+ validateArgumentRename .validate (server .getTextDocumentService ().rename (params ));
3942+ }
39063943 }
39073944
39083945 public void testMoveClass () throws Exception {
0 commit comments