Lines Matching defs:HI

383 void fillFunctionTypeAndParams(HoverInfo &HI, const Decl *D,
386 HI.Parameters.emplace();
388 HI.Parameters->emplace_back(toHoverInfoParam(PVD, PP));
398 HI.ReturnType = printType(FD->getReturnType(), FD->getASTContext(), PP);
402 HI.Type = printType(QT, D->getASTContext(), PP);
615 HoverInfo HI;
618 HI.AccessSpecifier = getAccessSpelling(D->getAccess()).str();
619 HI.NamespaceScope = getNamespaceScope(D);
620 if (!HI.NamespaceScope->empty())
621 HI.NamespaceScope->append("::");
622 HI.LocalScope = getLocalScope(D);
623 if (!HI.LocalScope.empty())
624 HI.LocalScope.append("::");
626 HI.Name = printName(Ctx, *D);
628 HI.Documentation = getDeclComment(Ctx, *CommentD);
629 enhanceFromIndex(HI, *CommentD, Index);
630 if (HI.Documentation.empty())
631 HI.Documentation = synthesizeDocumentation(D);
633 HI.Kind = index::getSymbolInfo(D).Kind;
637 HI.TemplateParameters =
642 HI.TemplateParameters =
650 fillFunctionTypeAndParams(HI, D, FD, PP);
652 HI.Type = printType(VD->getType(), Ctx, PP);
654 HI.Type = TTP->wasDeclaredWithTypename() ? "typename" : "class";
656 HI.Type = printType(TTP, PP);
658 HI.Type = printType(VT->getTemplatedDecl()->getType(), Ctx, PP);
660 HI.Type = printType(TN->getUnderlyingType().getDesugaredType(Ctx), Ctx, PP);
662 HI.Type = printType(TAT->getTemplatedDecl()->getUnderlyingType(), Ctx, PP);
667 HI.Value = printExprValue(Init, Ctx);
671 HI.Value = toString(ECD->getInitVal(), 10);
674 HI.Definition = printDefinition(D, PP, TB);
675 return HI;
682 HoverInfo HI;
683 HI.Name = PE.getIdentKindName();
684 HI.Kind = index::SymbolKind::Variable;
685 HI.Documentation = "Name of the current function (predefined variable)";
687 HI.Value.emplace();
688 llvm::raw_string_ostream OS(*HI.Value);
690 HI.Type = printType(Name->getType(), Ctx, PP);
696 HI.Type = printType(StringType, Ctx, PP);
698 return HI;
734 HoverInfo HI;
737 HI.Value = std::move(ExprResult.PrintedValue);
739 HI.Type = printType(E->getType(), Context, PP);
742 if (!HI.Value && !HI.Type && ExprResult.TheNode)
744 HI.Type = printType(VD->getType(), Context, PP);
746 return HI;
752 HoverInfo HI;
754 HI.Name = std::string(Macro.Name);
755 HI.Kind = index::SymbolKind::Macro;
777 HI.Definition =
798 if (!HI.Definition.empty()) {
799 HI.Definition += "\n\n";
801 HI.Definition += "// Expands to\n";
802 HI.Definition += ExpansionText;
809 HI.Value = std::move(Evaluated.Value);
810 HI.Type = std::move(Evaluated.Type);
812 return HI;
836 HoverInfo HI;
837 HI.Name = "this";
838 HI.Definition = typeAsDefinition(printType(PrettyThisType, ASTCtx, PP));
839 return HI;
847 HoverInfo HI;
849 HI.Name = tok::getTokenName(Tok.kind());
850 HI.Kind = index::SymbolKind::TypeAlias;
853 HI.Definition = "/* not deduced */";
855 HI.Definition = typeAsDefinition(printType(QT, ASTCtx, PP));
859 HI.Documentation = getDeclComment(ASTCtx, *CommentD);
860 enhanceFromIndex(HI, *CommentD, Index);
864 return HI;
869 HoverInfo HI;
871 HI.Name = "string-literal";
872 HI.Size = (SL->getLength() + 1) * SL->getCharByteWidth() * 8;
873 HI.Type = SL->getType().getAsString(PP).c_str();
875 return HI;
900 void maybeAddCalleeArgInfo(const SelectionTree::Node *N, HoverInfo &HI,
909 std::optional<HoverInfo> HI;
913 HI = getStringLiteralContents(SL, PP);
918 maybeAddCalleeArgInfo(N, HI.emplace(), PP);
919 if (HI->CalleeArgInfo) {
923 HI->Name = "literal";
924 return HI;
931 HI = getThisExprHoverContents(CTE, AST.getASTContext(), PP);
933 HI = getPredefinedExprHoverContents(*PE, AST.getASTContext(), PP);
937 HI.emplace();
938 HI->Type = printType(E->getType(), AST.getASTContext(), PP);
939 HI->Value = *Val;
940 HI->Name = std::string(getNameForExpr(E));
943 if (HI)
944 maybeAddCalleeArgInfo(N, *HI, PP);
946 return HI;
951 HoverInfo HI;
952 HI.Name = A->getSpelling();
954 HI.LocalScope = A->getScopeName()->getName().str();
956 llvm::raw_string_ostream OS(HI.Definition);
959 HI.Documentation = Attr::getDocumentation(A->getKind()).str();
960 return HI;
999 void addLayoutInfo(const NamedDecl &ND, HoverInfo &HI) {
1006 HI.Size = Size->getQuantity() * 8;
1008 HI.Align = Ctx.getTypeAlign(RD->getTypeForDecl());
1017 HI.Align = Ctx.getTypeAlign(FD->getType());
1019 HI.Offset = Layout.getFieldOffset(FD->getFieldIndex());
1021 HI.Size = FD->getBitWidthValue();
1023 HI.Size = FD->isZeroSize(Ctx) ? 0 : Size->getQuantity() * 8;
1024 if (HI.Size) {
1025 unsigned EndOfField = *HI.Offset + *HI.Size;
1033 HI.Padding = NextOffset - EndOfField;
1036 HI.Padding = Layout.getSize().getQuantity() * 8 - EndOfField;
1041 HI.Offset.reset();
1056 // If N is passed as argument to a function, fill HI.CalleeArgInfo with
1058 void maybeAddCalleeArgInfo(const SelectionTree::Node *N, HoverInfo &HI,
1098 HI.CalleeArgInfo.emplace(toHoverInfoParam(PVD, PP));
1104 if (!HI.CalleeArgInfo)
1159 HI.CallPassType.emplace(PassType);
1192 void maybeAddSymbolProviders(ParsedAST &AST, HoverInfo &HI,
1220 HI.Provider = std::move(Result);
1232 HI.Provider = include_cleaner::spellHeader(
1254 void maybeAddUsedSymbols(ParsedAST &AST, HoverInfo &HI, const Inclusion &Inc) {
1271 HI.UsedSymbolNames.push_back(getSymbolName(UsedSymbolDecl));
1272 llvm::sort(HI.UsedSymbolNames);
1273 HI.UsedSymbolNames.erase(
1274 std::unique(HI.UsedSymbolNames.begin(), HI.UsedSymbolNames.end()),
1275 HI.UsedSymbolNames.end());
1304 HoverInfo HI;
1305 HI.Name = std::string(llvm::sys::path::filename(Inc.Resolved));
1307 HI.Definition =
1309 HI.DefinitionLanguage = "";
1310 maybeAddUsedSymbols(AST, HI, Inc);
1311 return HI;
1319 std::optional<HoverInfo> HI;
1329 HI = getHoverContents(*M, Tok, AST);
1333 maybeAddSymbolProviders(AST, *HI,
1341 HI = getDeducedTypeHoverContents(*Deduced, Tok, AST.getASTContext(), PP,
1355 if (!HI) {
1367 HI = getHoverContents(DeclToUse, PP, Index, TB);
1370 addLayoutInfo(*DeclToUse, *HI);
1372 if (!HI->Value)
1373 HI->Value = printExprValue(N, AST.getASTContext()).PrintedValue;
1374 maybeAddCalleeArgInfo(N, *HI, PP);
1377 maybeAddSymbolProviders(AST, *HI,
1381 HI = getHoverContents(N, E, AST, PP, Index);
1384 HI = getHoverContents(A, AST);
1391 if (!HI)
1395 if (!HI->Definition.empty()) {
1397 Style, HI->Definition, tooling::Range(0, HI->Definition.size()));
1399 tooling::applyAllReplacements(HI->Definition, Replacements))
1400 HI->Definition = *Formatted;
1403 HI->DefinitionLanguage = getMarkdownLanguage(AST.getASTContext());
1404 HI->SymRange = halfOpenToRange(SM, HighlightRange);
1406 return HI;