zhangyi1357 updated this revision to Diff 510292. zhangyi1357 added a comment.
Format code modified using clang format. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147395/new/ https://reviews.llvm.org/D147395 Files: clang-tools-extra/clangd/Config.h clang-tools-extra/clangd/ConfigCompile.cpp clang-tools-extra/clangd/ConfigFragment.h clang-tools-extra/clangd/ConfigYAML.cpp clang-tools-extra/clangd/InlayHints.cpp Index: clang-tools-extra/clangd/InlayHints.cpp =================================================================== --- clang-tools-extra/clangd/InlayHints.cpp +++ clang-tools-extra/clangd/InlayHints.cpp @@ -688,7 +688,7 @@ return; std::string TypeName = T.getAsString(Policy); - if (TypeName.length() < TypeNameLimit) + if (TypeName.length() < Cfg.InlayHints.TypeNameLimit) addInlayHint(R, HintSide::Right, InlayHintKind::Type, Prefix, TypeName, /*Suffix=*/""); } @@ -714,8 +714,6 @@ // the policies are initialized for more details.) PrintingPolicy TypeHintPolicy; PrintingPolicy StructuredBindingPolicy; - - static const size_t TypeNameLimit = 32; }; } // namespace Index: clang-tools-extra/clangd/ConfigYAML.cpp =================================================================== --- clang-tools-extra/clangd/ConfigYAML.cpp +++ clang-tools-extra/clangd/ConfigYAML.cpp @@ -254,6 +254,10 @@ if (auto Value = boolValue(N, "Designators")) F.Designators = *Value; }); + Dict.handle("TypeNameLimit", [&](Node &N) { + if (auto Value = scalarValue(N, "TypeNameLimit")) + F.TypeNameLimit = *Value; + }); Dict.parse(N); } Index: clang-tools-extra/clangd/ConfigFragment.h =================================================================== --- clang-tools-extra/clangd/ConfigFragment.h +++ clang-tools-extra/clangd/ConfigFragment.h @@ -322,6 +322,8 @@ std::optional<Located<bool>> DeducedTypes; /// Show designators in aggregate initialization. std::optional<Located<bool>> Designators; + /// Limit the length of type name hints. + std::optional<Located<std::string>> TypeNameLimit; }; InlayHintsBlock InlayHints; }; Index: clang-tools-extra/clangd/ConfigCompile.cpp =================================================================== --- clang-tools-extra/clangd/ConfigCompile.cpp +++ clang-tools-extra/clangd/ConfigCompile.cpp @@ -611,6 +611,11 @@ Out.Apply.push_back([Value(**F.Designators)](const Params &, Config &C) { C.InlayHints.Designators = Value; }); + if (F.TypeNameLimit) + Out.Apply.push_back( + [Value(**F.TypeNameLimit)](const Params &, Config &C) { + C.InlayHints.TypeNameLimit = stoul(Value); + }); } constexpr static llvm::SourceMgr::DiagKind Error = llvm::SourceMgr::DK_Error; Index: clang-tools-extra/clangd/Config.h =================================================================== --- clang-tools-extra/clangd/Config.h +++ clang-tools-extra/clangd/Config.h @@ -147,6 +147,8 @@ bool Parameters = true; bool DeducedTypes = true; bool Designators = true; + // Limit the length of type names in inlay hints. + size_t TypeNameLimit = 32; } InlayHints; };
Index: clang-tools-extra/clangd/InlayHints.cpp =================================================================== --- clang-tools-extra/clangd/InlayHints.cpp +++ clang-tools-extra/clangd/InlayHints.cpp @@ -688,7 +688,7 @@ return; std::string TypeName = T.getAsString(Policy); - if (TypeName.length() < TypeNameLimit) + if (TypeName.length() < Cfg.InlayHints.TypeNameLimit) addInlayHint(R, HintSide::Right, InlayHintKind::Type, Prefix, TypeName, /*Suffix=*/""); } @@ -714,8 +714,6 @@ // the policies are initialized for more details.) PrintingPolicy TypeHintPolicy; PrintingPolicy StructuredBindingPolicy; - - static const size_t TypeNameLimit = 32; }; } // namespace Index: clang-tools-extra/clangd/ConfigYAML.cpp =================================================================== --- clang-tools-extra/clangd/ConfigYAML.cpp +++ clang-tools-extra/clangd/ConfigYAML.cpp @@ -254,6 +254,10 @@ if (auto Value = boolValue(N, "Designators")) F.Designators = *Value; }); + Dict.handle("TypeNameLimit", [&](Node &N) { + if (auto Value = scalarValue(N, "TypeNameLimit")) + F.TypeNameLimit = *Value; + }); Dict.parse(N); } Index: clang-tools-extra/clangd/ConfigFragment.h =================================================================== --- clang-tools-extra/clangd/ConfigFragment.h +++ clang-tools-extra/clangd/ConfigFragment.h @@ -322,6 +322,8 @@ std::optional<Located<bool>> DeducedTypes; /// Show designators in aggregate initialization. std::optional<Located<bool>> Designators; + /// Limit the length of type name hints. + std::optional<Located<std::string>> TypeNameLimit; }; InlayHintsBlock InlayHints; }; Index: clang-tools-extra/clangd/ConfigCompile.cpp =================================================================== --- clang-tools-extra/clangd/ConfigCompile.cpp +++ clang-tools-extra/clangd/ConfigCompile.cpp @@ -611,6 +611,11 @@ Out.Apply.push_back([Value(**F.Designators)](const Params &, Config &C) { C.InlayHints.Designators = Value; }); + if (F.TypeNameLimit) + Out.Apply.push_back( + [Value(**F.TypeNameLimit)](const Params &, Config &C) { + C.InlayHints.TypeNameLimit = stoul(Value); + }); } constexpr static llvm::SourceMgr::DiagKind Error = llvm::SourceMgr::DK_Error; Index: clang-tools-extra/clangd/Config.h =================================================================== --- clang-tools-extra/clangd/Config.h +++ clang-tools-extra/clangd/Config.h @@ -147,6 +147,8 @@ bool Parameters = true; bool DeducedTypes = true; bool Designators = true; + // Limit the length of type names in inlay hints. + size_t TypeNameLimit = 32; } InlayHints; };
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits