commit aacea06b4085448e4548c5740be6c436c5111b3c
parent 4b04feb633a9d9dd0b1e769341db2f8335a0177e
Author: Tooru Fujisawa <arai_a@mac.com>
Date: Fri, 28 Nov 2025 23:39:39 +0000
Bug 2002475 - Emit nestingRange for var decl with 10+ lines. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D274404
Diffstat:
1 file changed, 23 insertions(+), 0 deletions(-)
diff --git a/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp b/build/clang-plugin/mozsearch-plugin/MozsearchIndexer.cpp
@@ -443,6 +443,25 @@ private:
return result;
}
+ bool needsNestingRangeForVarDecl(SourceRange& Range) {
+ std::pair<FileID, unsigned> Begin = SM.getDecomposedExpansionLoc(Range.getBegin());
+ std::pair<FileID, unsigned> End = SM.getDecomposedExpansionLoc(Range.getEnd());
+
+ bool IsInvalid;
+ unsigned Line1 = SM.getLineNumber(Begin.first, Begin.second, &IsInvalid);
+ if (IsInvalid) {
+ return false;
+ }
+ unsigned Line2 = SM.getLineNumber(End.first, End.second, &IsInvalid);
+ if (IsInvalid) {
+ return false;
+ }
+
+ static constexpr unsigned MinVarDeclNestingRangeLines = 10;
+
+ return Line2 > Line1 + MinVarDeclNestingRangeLines;
+ }
+
// Convert SourceRange to "line:column-line:column".
// In the resulting string rep, line is 1-based, column is 0-based.
std::string fullRangeToString(SourceRange Range) {
@@ -2185,6 +2204,10 @@ public:
? "decl"
: "def";
PrettyKind = "variable";
+
+ if (needsNestingRangeForVarDecl(PeekRange)) {
+ NestingRange = PeekRange;
+ }
} else if (isa<NamespaceDecl>(D) || isa<NamespaceAliasDecl>(D)) {
Kind = "def";
PrettyKind = "namespace";