@@ -415,12 +415,14 @@ struct Callee {
415415class InlayHintVisitor : public RecursiveASTVisitor <InlayHintVisitor> {
416416public:
417417 InlayHintVisitor (std::vector<InlayHint> &Results, ParsedAST &AST,
418- const Config &Cfg, std::optional<Range> RestrictRange)
418+ const Config &Cfg, std::optional<Range> RestrictRange,
419+ InlayHintOptions HintOptions)
419420 : Results(Results), AST(AST.getASTContext()), Tokens(AST.getTokens()),
420421 Cfg (Cfg), RestrictRange(std::move(RestrictRange)),
421422 MainFileID(AST.getSourceManager().getMainFileID()),
422423 Resolver(AST.getHeuristicResolver()),
423- TypeHintPolicy(this ->AST.getPrintingPolicy()) {
424+ TypeHintPolicy(this ->AST.getPrintingPolicy()),
425+ HintOptions(HintOptions) {
424426 bool Invalid = false ;
425427 llvm::StringRef Buf =
426428 AST.getSourceManager ().getBufferData (MainFileID, &Invalid);
@@ -1127,7 +1129,6 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> {
11271129 // Otherwise, the hint shouldn't be shown.
11281130 std::optional<Range> computeBlockEndHintRange (SourceRange BraceRange,
11291131 StringRef OptionalPunctuation) {
1130- constexpr unsigned HintMinLineLimit = 10 ;
11311132
11321133 auto &SM = AST.getSourceManager ();
11331134 auto [BlockBeginFileId, BlockBeginOffset] =
@@ -1155,7 +1156,7 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> {
11551156 auto RBraceLine = SM.getLineNumber (RBraceFileId, RBraceOffset);
11561157
11571158 // Don't show hint on trivial blocks like `class X {};`
1158- if (BlockBeginLine + HintMinLineLimit - 1 > RBraceLine)
1159+ if (BlockBeginLine + HintOptions. HintMinLineLimit - 1 > RBraceLine)
11591160 return std::nullopt ;
11601161
11611162 // This is what we attach the hint to, usually "}" or "};".
@@ -1185,17 +1186,20 @@ class InlayHintVisitor : public RecursiveASTVisitor<InlayHintVisitor> {
11851186 StringRef MainFileBuf;
11861187 const HeuristicResolver *Resolver;
11871188 PrintingPolicy TypeHintPolicy;
1189+ InlayHintOptions HintOptions;
11881190};
11891191
11901192} // namespace
11911193
11921194std::vector<InlayHint> inlayHints (ParsedAST &AST,
1193- std::optional<Range> RestrictRange) {
1195+ std::optional<Range> RestrictRange,
1196+ InlayHintOptions HintOptions) {
11941197 std::vector<InlayHint> Results;
11951198 const auto &Cfg = Config::current ();
11961199 if (!Cfg.InlayHints .Enabled )
11971200 return Results;
1198- InlayHintVisitor Visitor (Results, AST, Cfg, std::move (RestrictRange));
1201+ InlayHintVisitor Visitor (Results, AST, Cfg, std::move (RestrictRange),
1202+ HintOptions);
11991203 Visitor.TraverseAST (AST.getASTContext ());
12001204
12011205 // De-duplicate hints. Duplicates can sometimes occur due to e.g. explicit
0 commit comments