Skip to content

Commit 755655a

Browse files
committed
[Refactoring] Move FindRenameRangesAnnotatingConsumer to its own file
1 parent cf71a10 commit 755655a

File tree

3 files changed

+76
-59
lines changed

3 files changed

+76
-59
lines changed

lib/Refactoring/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ add_swift_host_library(swiftRefactoring STATIC
2727
ExtractRepeatedExpr.cpp
2828
ExtractFunction.cpp
2929
FillProtocolStubs.cpp
30+
FindRenameRangesAnnotatingConsumer.cpp
3031
LocalizeString.cpp
3132
LocalRename.cpp
3233
MemberwiseInitLocalRefactoring.cpp
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2014 - 2023 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
#include "RefactoringActions.h"
14+
15+
using namespace swift::refactoring;
16+
17+
struct swift::ide::FindRenameRangesAnnotatingConsumer::Implementation {
18+
std::unique_ptr<SourceEditConsumer> pRewriter;
19+
Implementation(SourceManager &SM, unsigned BufferId, raw_ostream &OS)
20+
: pRewriter(new SourceEditOutputConsumer(SM, BufferId, OS)) {}
21+
static StringRef tag(RefactoringRangeKind Kind) {
22+
switch (Kind) {
23+
case RefactoringRangeKind::BaseName:
24+
return "base";
25+
case RefactoringRangeKind::KeywordBaseName:
26+
return "keywordBase";
27+
case RefactoringRangeKind::ParameterName:
28+
return "param";
29+
case RefactoringRangeKind::NoncollapsibleParameterName:
30+
return "noncollapsibleparam";
31+
case RefactoringRangeKind::DeclArgumentLabel:
32+
return "arglabel";
33+
case RefactoringRangeKind::CallArgumentLabel:
34+
return "callarg";
35+
case RefactoringRangeKind::CallArgumentColon:
36+
return "callcolon";
37+
case RefactoringRangeKind::CallArgumentCombined:
38+
return "callcombo";
39+
case RefactoringRangeKind::SelectorArgumentLabel:
40+
return "sel";
41+
}
42+
llvm_unreachable("unhandled kind");
43+
}
44+
void accept(SourceManager &SM, const RenameRangeDetail &Range) {
45+
std::string NewText;
46+
llvm::raw_string_ostream OS(NewText);
47+
StringRef Tag = tag(Range.RangeKind);
48+
OS << "<" << Tag;
49+
if (Range.Index.has_value())
50+
OS << " index=" << *Range.Index;
51+
OS << ">" << Range.Range.str() << "</" << Tag << ">";
52+
pRewriter->accept(SM, {/*Path=*/{}, Range.Range, /*BufferName=*/{},
53+
OS.str(), /*RegionsWorthNote=*/{}});
54+
}
55+
};
56+
57+
swift::ide::FindRenameRangesAnnotatingConsumer::
58+
FindRenameRangesAnnotatingConsumer(SourceManager &SM, unsigned BufferId,
59+
raw_ostream &OS)
60+
: Impl(*new Implementation(SM, BufferId, OS)) {}
61+
62+
swift::ide::FindRenameRangesAnnotatingConsumer::
63+
~FindRenameRangesAnnotatingConsumer() {
64+
delete &Impl;
65+
}
66+
67+
void swift::ide::FindRenameRangesAnnotatingConsumer::accept(
68+
SourceManager &SM, RegionType RegionType,
69+
ArrayRef<RenameRangeDetail> Ranges) {
70+
if (RegionType == RegionType::Mismatch || RegionType == RegionType::Unmatched)
71+
return;
72+
for (const auto &Range : Ranges) {
73+
Impl.accept(SM, Range);
74+
}
75+
}

lib/Refactoring/Refactoring.cpp

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -115,65 +115,6 @@ SourceLoc swift::ide::RangeConfig::getEnd(SourceManager &SM) {
115115
return getStart(SM).getAdvancedLoc(Length);
116116
}
117117

118-
struct swift::ide::FindRenameRangesAnnotatingConsumer::Implementation {
119-
std::unique_ptr<SourceEditConsumer> pRewriter;
120-
Implementation(SourceManager &SM, unsigned BufferId, raw_ostream &OS)
121-
: pRewriter(new SourceEditOutputConsumer(SM, BufferId, OS)) {}
122-
static StringRef tag(RefactoringRangeKind Kind) {
123-
switch (Kind) {
124-
case RefactoringRangeKind::BaseName:
125-
return "base";
126-
case RefactoringRangeKind::KeywordBaseName:
127-
return "keywordBase";
128-
case RefactoringRangeKind::ParameterName:
129-
return "param";
130-
case RefactoringRangeKind::NoncollapsibleParameterName:
131-
return "noncollapsibleparam";
132-
case RefactoringRangeKind::DeclArgumentLabel:
133-
return "arglabel";
134-
case RefactoringRangeKind::CallArgumentLabel:
135-
return "callarg";
136-
case RefactoringRangeKind::CallArgumentColon:
137-
return "callcolon";
138-
case RefactoringRangeKind::CallArgumentCombined:
139-
return "callcombo";
140-
case RefactoringRangeKind::SelectorArgumentLabel:
141-
return "sel";
142-
}
143-
llvm_unreachable("unhandled kind");
144-
}
145-
void accept(SourceManager &SM, const RenameRangeDetail &Range) {
146-
std::string NewText;
147-
llvm::raw_string_ostream OS(NewText);
148-
StringRef Tag = tag(Range.RangeKind);
149-
OS << "<" << Tag;
150-
if (Range.Index.has_value())
151-
OS << " index=" << *Range.Index;
152-
OS << ">" << Range.Range.str() << "</" << Tag << ">";
153-
pRewriter->accept(SM, {/*Path=*/{}, Range.Range, /*BufferName=*/{},
154-
OS.str(), /*RegionsWorthNote=*/{}});
155-
}
156-
};
157-
158-
swift::ide::FindRenameRangesAnnotatingConsumer::
159-
FindRenameRangesAnnotatingConsumer(SourceManager &SM, unsigned BufferId,
160-
raw_ostream &OS) :
161-
Impl(*new Implementation(SM, BufferId, OS)) {}
162-
163-
swift::ide::FindRenameRangesAnnotatingConsumer::~FindRenameRangesAnnotatingConsumer() {
164-
delete &Impl;
165-
}
166-
167-
void swift::ide::FindRenameRangesAnnotatingConsumer::
168-
accept(SourceManager &SM, RegionType RegionType,
169-
ArrayRef<RenameRangeDetail> Ranges) {
170-
if (RegionType == RegionType::Mismatch || RegionType == RegionType::Unmatched)
171-
return;
172-
for (const auto &Range : Ranges) {
173-
Impl.accept(SM, Range);
174-
}
175-
}
176-
177118
SmallVector<RefactorAvailabilityInfo, 0>
178119
swift::ide::collectRefactorings(ResolvedCursorInfoPtr CursorInfo,
179120
bool ExcludeRename) {

0 commit comments

Comments
 (0)