[clang-tools-extra] 573348a - [clangd] Retire the cross-file-rename command-line flag.

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 11 11:29:08 PST 2021


Author: Haojian Wu
Date: 2021-02-11T20:28:50+01:00
New Revision: 573348ab9b281221e0e78376c233d1898ed0bf68

URL: https://github.com/llvm/llvm-project/commit/573348ab9b281221e0e78376c233d1898ed0bf68
DIFF: https://github.com/llvm/llvm-project/commit/573348ab9b281221e0e78376c233d1898ed0bf68.diff

LOG: [clangd] Retire the cross-file-rename command-line flag.

This patch only focuses on the flag. Removing actual single-file mode
(and the flag in RenameOption) will come in a follow-up.

Differential Revision: https://reviews.llvm.org/D96495

Added: 
    

Modified: 
    clang-tools-extra/clangd/refactor/Rename.h
    clang-tools-extra/clangd/tool/ClangdMain.cpp
    clang-tools-extra/clangd/unittests/RenameTests.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/refactor/Rename.h b/clang-tools-extra/clangd/refactor/Rename.h
index ff23a67cfc46..dbaf9dd2e284 100644
--- a/clang-tools-extra/clangd/refactor/Rename.h
+++ b/clang-tools-extra/clangd/refactor/Rename.h
@@ -29,7 +29,7 @@ using DirtyBufferGetter =
 struct RenameOptions {
   /// If true, enable cross-file rename; otherwise, only allows to rename a
   /// symbol that's only used in the current file.
-  bool AllowCrossFile = false;
+  bool AllowCrossFile = true;
   /// The maximum number of affected files (0 means no limit), only meaningful
   /// when AllowCrossFile = true.
   /// If the actual number exceeds the limit, rename is forbidden.

diff  --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp
index 6a61f0db5294..595cbcf80d51 100644
--- a/clang-tools-extra/clangd/tool/ClangdMain.cpp
+++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp
@@ -286,6 +286,7 @@ RetiredFlag<bool> RecoveryAST("recovery-ast");
 RetiredFlag<bool> RecoveryASTType("recovery-ast-type");
 RetiredFlag<bool> AsyncPreamble("async-preamble");
 RetiredFlag<bool> CollectMainFileRefs("collect-main-file-refs");
+RetiredFlag<bool> CrossFileRename("cross-file-rename");
 
 opt<int> LimitResults{
     "limit-results",
@@ -295,7 +296,6 @@ opt<int> LimitResults{
     init(100),
 };
 
-
 list<std::string> TweakList{
     "tweaks",
     cat(Features),
@@ -304,13 +304,6 @@ list<std::string> TweakList{
     CommaSeparated,
 };
 
-opt<bool> CrossFileRename{
-    "cross-file-rename",
-    cat(Features),
-    desc("Enable cross-file rename feature."),
-    init(true),
-};
-
 opt<bool> FoldingRanges{
     "folding-ranges",
     cat(Features),
@@ -852,9 +845,6 @@ clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment var
   if (ForceOffsetEncoding != OffsetEncoding::UnsupportedEncoding)
     Opts.Encoding = ForceOffsetEncoding;
 
-  // Shall we allow to customize the file limit?
-  Opts.Rename.AllowCrossFile = CrossFileRename;
-
   if (CheckFile.getNumOccurrences()) {
     llvm::SmallString<256> Path;
     llvm::sys::fs::real_path(CheckFile, Path, /*expand_tilde=*/true);

diff  --git a/clang-tools-extra/clangd/unittests/RenameTests.cpp b/clang-tools-extra/clangd/unittests/RenameTests.cpp
index b1cd8bc3dc49..2a746a06b286 100644
--- a/clang-tools-extra/clangd/unittests/RenameTests.cpp
+++ b/clang-tools-extra/clangd/unittests/RenameTests.cpp
@@ -832,8 +832,12 @@ TEST(RenameTest, WithinFileRename) {
     TU.ExtraArgs.push_back("-xobjective-c++");
     auto AST = TU.build();
     for (const auto &RenamePos : Code.points()) {
-      auto RenameResult =
-          rename({RenamePos, NewName, AST, testPath(TU.Filename)});
+      auto RenameResult = rename({RenamePos,
+                                  NewName,
+                                  AST,
+                                  testPath(TU.Filename),
+                                  /*Index*/ nullptr,
+                                  {/*CrossFile*/ false}});
       ASSERT_TRUE(bool(RenameResult)) << RenameResult.takeError();
       ASSERT_EQ(1u, RenameResult->GlobalChanges.size());
       EXPECT_EQ(
@@ -1133,8 +1137,12 @@ TEST(RenameTest, Renameable) {
     }
     auto AST = TU.build();
     llvm::StringRef NewName = Case.NewName;
-    auto Results =
-        rename({T.point(), NewName, AST, testPath(TU.Filename), Case.Index});
+    auto Results = rename({T.point(),
+                           NewName,
+                           AST,
+                           testPath(TU.Filename),
+                           Case.Index,
+                           {/*CrossFile=*/false}});
     bool WantRename = true;
     if (T.ranges().empty())
       WantRename = false;


        


More information about the cfe-commits mailing list