| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959 |
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // dxcisense.h //
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- // This file is distributed under the University of Illinois Open Source //
- // License. See LICENSE.TXT for details. //
- // //
- // Provides declarations for the DirectX Compiler IntelliSense component. //
- // //
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef __DXC_ISENSE__
- #define __DXC_ISENSE__
- #include "dxcapi.h"
- #ifndef _WIN32
- #include "WinAdapter.h"
- #endif
- typedef enum DxcGlobalOptions {
- DxcGlobalOpt_None = 0x0,
- DxcGlobalOpt_ThreadBackgroundPriorityForIndexing = 0x1,
- DxcGlobalOpt_ThreadBackgroundPriorityForEditing = 0x2,
- DxcGlobalOpt_ThreadBackgroundPriorityForAll =
- DxcGlobalOpt_ThreadBackgroundPriorityForIndexing |
- DxcGlobalOpt_ThreadBackgroundPriorityForEditing
- } DxcGlobalOptions;
- typedef enum DxcTokenKind {
- DxcTokenKind_Punctuation =
- 0, // A token that contains some kind of punctuation.
- DxcTokenKind_Keyword = 1, // A language keyword.
- DxcTokenKind_Identifier = 2, // An identifier (that is not a keyword).
- DxcTokenKind_Literal = 3, // A numeric, string, or character literal.
- DxcTokenKind_Comment = 4, // A comment.
- DxcTokenKind_Unknown =
- 5, // An unknown token (possibly known to a future version).
- DxcTokenKind_BuiltInType = 6, // A built-in type like int, void or float3.
- } DxcTokenKind;
- typedef enum DxcTypeKind {
- DxcTypeKind_Invalid =
- 0, // Reprents an invalid type (e.g., where no type is available).
- DxcTypeKind_Unexposed =
- 1, // A type whose specific kind is not exposed via this interface.
- // Builtin types
- DxcTypeKind_Void = 2,
- DxcTypeKind_Bool = 3,
- DxcTypeKind_Char_U = 4,
- DxcTypeKind_UChar = 5,
- DxcTypeKind_Char16 = 6,
- DxcTypeKind_Char32 = 7,
- DxcTypeKind_UShort = 8,
- DxcTypeKind_UInt = 9,
- DxcTypeKind_ULong = 10,
- DxcTypeKind_ULongLong = 11,
- DxcTypeKind_UInt128 = 12,
- DxcTypeKind_Char_S = 13,
- DxcTypeKind_SChar = 14,
- DxcTypeKind_WChar = 15,
- DxcTypeKind_Short = 16,
- DxcTypeKind_Int = 17,
- DxcTypeKind_Long = 18,
- DxcTypeKind_LongLong = 19,
- DxcTypeKind_Int128 = 20,
- DxcTypeKind_Float = 21,
- DxcTypeKind_Double = 22,
- DxcTypeKind_LongDouble = 23,
- DxcTypeKind_NullPtr = 24,
- DxcTypeKind_Overload = 25,
- DxcTypeKind_Dependent = 26,
- DxcTypeKind_ObjCId = 27,
- DxcTypeKind_ObjCClass = 28,
- DxcTypeKind_ObjCSel = 29,
- DxcTypeKind_FirstBuiltin = DxcTypeKind_Void,
- DxcTypeKind_LastBuiltin = DxcTypeKind_ObjCSel,
- DxcTypeKind_Complex = 100,
- DxcTypeKind_Pointer = 101,
- DxcTypeKind_BlockPointer = 102,
- DxcTypeKind_LValueReference = 103,
- DxcTypeKind_RValueReference = 104,
- DxcTypeKind_Record = 105,
- DxcTypeKind_Enum = 106,
- DxcTypeKind_Typedef = 107,
- DxcTypeKind_ObjCInterface = 108,
- DxcTypeKind_ObjCObjectPointer = 109,
- DxcTypeKind_FunctionNoProto = 110,
- DxcTypeKind_FunctionProto = 111,
- DxcTypeKind_ConstantArray = 112,
- DxcTypeKind_Vector = 113,
- DxcTypeKind_IncompleteArray = 114,
- DxcTypeKind_VariableArray = 115,
- DxcTypeKind_DependentSizedArray = 116,
- DxcTypeKind_MemberPointer = 117
- } DxcTypeKind;
- // Describes the severity of a particular diagnostic.
- typedef enum DxcDiagnosticSeverity {
- // A diagnostic that has been suppressed, e.g., by a command-line option.
- DxcDiagnostic_Ignored = 0,
- // This diagnostic is a note that should be attached to the previous
- // (non-note) diagnostic.
- DxcDiagnostic_Note = 1,
- // This diagnostic indicates suspicious code that may not be wrong.
- DxcDiagnostic_Warning = 2,
- // This diagnostic indicates that the code is ill-formed.
- DxcDiagnostic_Error = 3,
- // This diagnostic indicates that the code is ill-formed such that future
- // parser rec unlikely to produce useful results.
- DxcDiagnostic_Fatal = 4
- } DxcDiagnosticSeverity;
- // Options to control the display of diagnostics.
- typedef enum DxcDiagnosticDisplayOptions {
- // Display the source-location information where the diagnostic was located.
- DxcDiagnostic_DisplaySourceLocation = 0x01,
- // If displaying the source-location information of the diagnostic,
- // also include the column number.
- DxcDiagnostic_DisplayColumn = 0x02,
- // If displaying the source-location information of the diagnostic,
- // also include information about source ranges in a machine-parsable format.
- DxcDiagnostic_DisplaySourceRanges = 0x04,
- // Display the option name associated with this diagnostic, if any.
- DxcDiagnostic_DisplayOption = 0x08,
- // Display the category number associated with this diagnostic, if any.
- DxcDiagnostic_DisplayCategoryId = 0x10,
- // Display the category name associated with this diagnostic, if any.
- DxcDiagnostic_DisplayCategoryName = 0x20,
- // Display the severity of the diagnostic message.
- DxcDiagnostic_DisplaySeverity = 0x200
- } DxcDiagnosticDisplayOptions;
- typedef enum DxcTranslationUnitFlags {
- // Used to indicate that no special translation-unit options are needed.
- DxcTranslationUnitFlags_None = 0x0,
- // Used to indicate that the parser should construct a "detailed"
- // preprocessing record, including all macro definitions and instantiations.
- DxcTranslationUnitFlags_DetailedPreprocessingRecord = 0x01,
- // Used to indicate that the translation unit is incomplete.
- DxcTranslationUnitFlags_Incomplete = 0x02,
- // Used to indicate that the translation unit should be built with an
- // implicit precompiled header for the preamble.
- DxcTranslationUnitFlags_PrecompiledPreamble = 0x04,
- // Used to indicate that the translation unit should cache some
- // code-completion results with each reparse of the source file.
- DxcTranslationUnitFlags_CacheCompletionResults = 0x08,
- // Used to indicate that the translation unit will be serialized with
- // SaveTranslationUnit.
- DxcTranslationUnitFlags_ForSerialization = 0x10,
- // DEPRECATED
- DxcTranslationUnitFlags_CXXChainedPCH = 0x20,
- // Used to indicate that function/method bodies should be skipped while
- // parsing.
- DxcTranslationUnitFlags_SkipFunctionBodies = 0x40,
- // Used to indicate that brief documentation comments should be
- // included into the set of code completions returned from this translation
- // unit.
- DxcTranslationUnitFlags_IncludeBriefCommentsInCodeCompletion = 0x80,
- // Used to indicate that compilation should occur on the caller's thread.
- DxcTranslationUnitFlags_UseCallerThread = 0x800
- } DxcTranslationUnitFlags;
- typedef enum DxcCursorFormatting {
- DxcCursorFormatting_Default =
- 0x0, // Default rules, language-insensitive formatting.
- DxcCursorFormatting_UseLanguageOptions =
- 0x1, // Language-sensitive formatting.
- DxcCursorFormatting_SuppressSpecifiers = 0x2, // Supresses type specifiers.
- DxcCursorFormatting_SuppressTagKeyword =
- 0x4, // Suppressed tag keyword (eg, 'class').
- DxcCursorFormatting_IncludeNamespaceKeyword =
- 0x8, // Include namespace keyword.
- } DxcCursorFormatting;
- enum DxcCursorKind {
- /* Declarations */
- DxcCursor_UnexposedDecl =
- 1, // A declaration whose specific kind is not exposed via this interface.
- DxcCursor_StructDecl = 2, // A C or C++ struct.
- DxcCursor_UnionDecl = 3, // A C or C++ union.
- DxcCursor_ClassDecl = 4, // A C++ class.
- DxcCursor_EnumDecl = 5, // An enumeration.
- DxcCursor_FieldDecl = 6, // A field (in C) or non-static data member (in C++)
- // in a struct, union, or C++ class.
- DxcCursor_EnumConstantDecl = 7, // An enumerator constant.
- DxcCursor_FunctionDecl = 8, // A function.
- DxcCursor_VarDecl = 9, // A variable.
- DxcCursor_ParmDecl = 10, // A function or method parameter.
- DxcCursor_ObjCInterfaceDecl = 11, // An Objective-C interface.
- DxcCursor_ObjCCategoryDecl = 12, // An Objective-C interface for a category.
- DxcCursor_ObjCProtocolDecl = 13, // An Objective-C protocol declaration.
- DxcCursor_ObjCPropertyDecl = 14, // An Objective-C property declaration.
- DxcCursor_ObjCIvarDecl = 15, // An Objective-C instance variable.
- DxcCursor_ObjCInstanceMethodDecl = 16, // An Objective-C instance method.
- DxcCursor_ObjCClassMethodDecl = 17, // An Objective-C class method.
- DxcCursor_ObjCImplementationDecl = 18, // An Objective-C \@implementation.
- DxcCursor_ObjCCategoryImplDecl =
- 19, // An Objective-C \@implementation for a category.
- DxcCursor_TypedefDecl = 20, // A typedef
- DxcCursor_CXXMethod = 21, // A C++ class method.
- DxcCursor_Namespace = 22, // A C++ namespace.
- DxcCursor_LinkageSpec = 23, // A linkage specification, e.g. 'extern "C"'.
- DxcCursor_Constructor = 24, // A C++ constructor.
- DxcCursor_Destructor = 25, // A C++ destructor.
- DxcCursor_ConversionFunction = 26, // A C++ conversion function.
- DxcCursor_TemplateTypeParameter = 27, // A C++ template type parameter.
- DxcCursor_NonTypeTemplateParameter = 28, // A C++ non-type template parameter.
- DxcCursor_TemplateTemplateParameter =
- 29, // A C++ template template parameter.
- DxcCursor_FunctionTemplate = 30, // A C++ function template.
- DxcCursor_ClassTemplate = 31, // A C++ class template.
- DxcCursor_ClassTemplatePartialSpecialization =
- 32, // A C++ class template partial specialization.
- DxcCursor_NamespaceAlias = 33, // A C++ namespace alias declaration.
- DxcCursor_UsingDirective = 34, // A C++ using directive.
- DxcCursor_UsingDeclaration = 35, // A C++ using declaration.
- DxcCursor_TypeAliasDecl = 36, // A C++ alias declaration
- DxcCursor_ObjCSynthesizeDecl = 37, // An Objective-C \@synthesize definition.
- DxcCursor_ObjCDynamicDecl = 38, // An Objective-C \@dynamic definition.
- DxcCursor_CXXAccessSpecifier = 39, // An access specifier.
- DxcCursor_FirstDecl = DxcCursor_UnexposedDecl,
- DxcCursor_LastDecl = DxcCursor_CXXAccessSpecifier,
- /* References */
- DxcCursor_FirstRef = 40, /* Decl references */
- DxcCursor_ObjCSuperClassRef = 40,
- DxcCursor_ObjCProtocolRef = 41,
- DxcCursor_ObjCClassRef = 42,
- /**
- * \brief A reference to a type declaration.
- *
- * A type reference occurs anywhere where a type is named but not
- * declared. For example, given:
- *
- * \code
- * typedef unsigned size_type;
- * size_type size;
- * \endcode
- *
- * The typedef is a declaration of size_type (DxcCursor_TypedefDecl),
- * while the type of the variable "size" is referenced. The cursor
- * referenced by the type of size is the typedef for size_type.
- */
- DxcCursor_TypeRef = 43, // A reference to a type declaration.
- DxcCursor_CXXBaseSpecifier = 44,
- DxcCursor_TemplateRef =
- 45, // A reference to a class template, function template, template
- // template parameter, or class template partial specialization.
- DxcCursor_NamespaceRef = 46, // A reference to a namespace or namespace alias.
- DxcCursor_MemberRef =
- 47, // A reference to a member of a struct, union, or class that occurs in
- // some non-expression context, e.g., a designated initializer.
- /**
- * \brief A reference to a labeled statement.
- *
- * This cursor kind is used to describe the jump to "start_over" in the
- * goto statement in the following example:
- *
- * \code
- * start_over:
- * ++counter;
- *
- * goto start_over;
- * \endcode
- *
- * A label reference cursor refers to a label statement.
- */
- DxcCursor_LabelRef = 48, // A reference to a labeled statement.
- // A reference to a set of overloaded functions or function templates
- // that has not yet been resolved to a specific function or function template.
- //
- // An overloaded declaration reference cursor occurs in C++ templates where
- // a dependent name refers to a function.
- DxcCursor_OverloadedDeclRef = 49,
- DxcCursor_VariableRef =
- 50, // A reference to a variable that occurs in some non-expression
- // context, e.g., a C++ lambda capture list.
- DxcCursor_LastRef = DxcCursor_VariableRef,
- /* Error conditions */
- DxcCursor_FirstInvalid = 70,
- DxcCursor_InvalidFile = 70,
- DxcCursor_NoDeclFound = 71,
- DxcCursor_NotImplemented = 72,
- DxcCursor_InvalidCode = 73,
- DxcCursor_LastInvalid = DxcCursor_InvalidCode,
- /* Expressions */
- DxcCursor_FirstExpr = 100,
- /**
- * \brief An expression whose specific kind is not exposed via this
- * interface.
- *
- * Unexposed expressions have the same operations as any other kind
- * of expression; one can extract their location information,
- * spelling, children, etc. However, the specific kind of the
- * expression is not reported.
- */
- DxcCursor_UnexposedExpr = 100, // An expression whose specific kind is not
- // exposed via this interface.
- DxcCursor_DeclRefExpr =
- 101, // An expression that refers to some value declaration, such as a
- // function, varible, or enumerator.
- DxcCursor_MemberRefExpr =
- 102, // An expression that refers to a member of a struct, union, class,
- // Objective-C class, etc.
- DxcCursor_CallExpr = 103, // An expression that calls a function.
- DxcCursor_ObjCMessageExpr = 104, // An expression that sends a message to an
- // Objective-C object or class.
- DxcCursor_BlockExpr = 105, // An expression that represents a block literal.
- DxcCursor_IntegerLiteral = 106, // An integer literal.
- DxcCursor_FloatingLiteral = 107, // A floating point number literal.
- DxcCursor_ImaginaryLiteral = 108, // An imaginary number literal.
- DxcCursor_StringLiteral = 109, // A string literal.
- DxcCursor_CharacterLiteral = 110, // A character literal.
- DxcCursor_ParenExpr =
- 111, // A parenthesized expression, e.g. "(1)". This AST node is only
- // formed if full location information is requested.
- DxcCursor_UnaryOperator = 112, // This represents the unary-expression's
- // (except sizeof and alignof).
- DxcCursor_ArraySubscriptExpr = 113, // [C99 6.5.2.1] Array Subscripting.
- DxcCursor_BinaryOperator =
- 114, // A builtin binary operation expression such as "x + y" or "x <= y".
- DxcCursor_CompoundAssignOperator = 115, // Compound assignment such as "+=".
- DxcCursor_ConditionalOperator = 116, // The ?: ternary operator.
- DxcCursor_CStyleCastExpr =
- 117, // An explicit cast in C (C99 6.5.4) or a C-style cast in C++ (C++
- // [expr.cast]), which uses the syntax (Type)expr, eg: (int)f.
- DxcCursor_CompoundLiteralExpr = 118, // [C99 6.5.2.5]
- DxcCursor_InitListExpr = 119, // Describes an C or C++ initializer list.
- DxcCursor_AddrLabelExpr =
- 120, // The GNU address of label extension, representing &&label.
- DxcCursor_StmtExpr =
- 121, // This is the GNU Statement Expression extension: ({int X=4; X;})
- DxcCursor_GenericSelectionExpr = 122, // Represents a C11 generic selection.
- /** \brief Implements the GNU __null extension, which is a name for a null
- * pointer constant that has integral type (e.g., int or long) and is the same
- * size and alignment as a pointer.
- *
- * The __null extension is typically only used by system headers, which define
- * NULL as __null in C++ rather than using 0 (which is an integer that may not
- * match the size of a pointer).
- */
- DxcCursor_GNUNullExpr = 123,
- DxcCursor_CXXStaticCastExpr = 124, // C++'s static_cast<> expression.
- DxcCursor_CXXDynamicCastExpr = 125, // C++'s dynamic_cast<> expression.
- DxcCursor_CXXReinterpretCastExpr =
- 126, // C++'s reinterpret_cast<> expression.
- DxcCursor_CXXConstCastExpr = 127, // C++'s const_cast<> expression.
- /** \brief Represents an explicit C++ type conversion that uses "functional"
- * notion (C++ [expr.type.conv]).
- *
- * Example:
- * \code
- * x = int(0.5);
- * \endcode
- */
- DxcCursor_CXXFunctionalCastExpr = 128,
- DxcCursor_CXXTypeidExpr = 129, // A C++ typeid expression (C++ [expr.typeid]).
- DxcCursor_CXXBoolLiteralExpr = 130, // [C++ 2.13.5] C++ Boolean Literal.
- DxcCursor_CXXNullPtrLiteralExpr = 131, // [C++0x 2.14.7] C++ Pointer Literal.
- DxcCursor_CXXThisExpr = 132, // Represents the "this" expression in C++
- DxcCursor_CXXThrowExpr = 133, // [C++ 15] C++ Throw Expression, both 'throw'
- // and 'throw' assignment-expression.
- DxcCursor_CXXNewExpr = 134, // A new expression for memory allocation and
- // constructor calls, e.g: "new CXXNewExpr(foo)".
- DxcCursor_CXXDeleteExpr =
- 135, // A delete expression for memory deallocation and destructor calls,
- // e.g. "delete[] pArray".
- DxcCursor_UnaryExpr = 136, // A unary expression.
- DxcCursor_ObjCStringLiteral =
- 137, // An Objective-C string literal i.e. @"foo".
- DxcCursor_ObjCEncodeExpr = 138, // An Objective-C \@encode expression.
- DxcCursor_ObjCSelectorExpr = 139, // An Objective-C \@selector expression.
- DxcCursor_ObjCProtocolExpr = 140, // An Objective-C \@protocol expression.
- /** \brief An Objective-C "bridged" cast expression, which casts between
- * Objective-C pointers and C pointers, transferring ownership in the process.
- *
- * \code
- * NSString *str = (__bridge_transfer NSString *)CFCreateString();
- * \endcode
- */
- DxcCursor_ObjCBridgedCastExpr = 141,
- /** \brief Represents a C++0x pack expansion that produces a sequence of
- * expressions.
- *
- * A pack expansion expression contains a pattern (which itself is an
- * expression) followed by an ellipsis. For example:
- *
- * \code
- * template<typename F, typename ...Types>
- * void forward(F f, Types &&...args) {
- * f(static_cast<Types&&>(args)...);
- * }
- * \endcode
- */
- DxcCursor_PackExpansionExpr = 142,
- /** \brief Represents an expression that computes the length of a parameter
- * pack.
- *
- * \code
- * template<typename ...Types>
- * struct count {
- * static const unsigned value = sizeof...(Types);
- * };
- * \endcode
- */
- DxcCursor_SizeOfPackExpr = 143,
- /* \brief Represents a C++ lambda expression that produces a local function
- * object.
- *
- * \code
- * void abssort(float *x, unsigned N) {
- * std::sort(x, x + N,
- * [](float a, float b) {
- * return std::abs(a) < std::abs(b);
- * });
- * }
- * \endcode
- */
- DxcCursor_LambdaExpr = 144,
- DxcCursor_ObjCBoolLiteralExpr = 145, // Objective-c Boolean Literal.
- DxcCursor_ObjCSelfExpr =
- 146, // Represents the "self" expression in a ObjC method.
- DxcCursor_LastExpr = DxcCursor_ObjCSelfExpr,
- /* Statements */
- DxcCursor_FirstStmt = 200,
- /**
- * \brief A statement whose specific kind is not exposed via this
- * interface.
- *
- * Unexposed statements have the same operations as any other kind of
- * statement; one can extract their location information, spelling,
- * children, etc. However, the specific kind of the statement is not
- * reported.
- */
- DxcCursor_UnexposedStmt = 200,
- /** \brief A labelled statement in a function.
- *
- * This cursor kind is used to describe the "start_over:" label statement in
- * the following example:
- *
- * \code
- * start_over:
- * ++counter;
- * \endcode
- *
- */
- DxcCursor_LabelStmt = 201,
- DxcCursor_CompoundStmt =
- 202, // A group of statements like { stmt stmt }. This cursor kind is used
- // to describe compound statements, e.g. function bodies.
- DxcCursor_CaseStmt = 203, // A case statement.
- DxcCursor_DefaultStmt = 204, // A default statement.
- DxcCursor_IfStmt = 205, // An if statement
- DxcCursor_SwitchStmt = 206, // A switch statement.
- DxcCursor_WhileStmt = 207, // A while statement.
- DxcCursor_DoStmt = 208, // A do statement.
- DxcCursor_ForStmt = 209, // A for statement.
- DxcCursor_GotoStmt = 210, // A goto statement.
- DxcCursor_IndirectGotoStmt = 211, // An indirect goto statement.
- DxcCursor_ContinueStmt = 212, // A continue statement.
- DxcCursor_BreakStmt = 213, // A break statement.
- DxcCursor_ReturnStmt = 214, // A return statement.
- DxcCursor_GCCAsmStmt = 215, // A GCC inline assembly statement extension.
- DxcCursor_AsmStmt = DxcCursor_GCCAsmStmt,
- DxcCursor_ObjCAtTryStmt =
- 216, // Objective-C's overall \@try-\@catch-\@finally statement.
- DxcCursor_ObjCAtCatchStmt = 217, // Objective-C's \@catch statement.
- DxcCursor_ObjCAtFinallyStmt = 218, // Objective-C's \@finally statement.
- DxcCursor_ObjCAtThrowStmt = 219, // Objective-C's \@throw statement.
- DxcCursor_ObjCAtSynchronizedStmt =
- 220, // Objective-C's \@synchronized statement.
- DxcCursor_ObjCAutoreleasePoolStmt =
- 221, // Objective-C's autorelease pool statement.
- DxcCursor_ObjCForCollectionStmt = 222, // Objective-C's collection statement.
- DxcCursor_CXXCatchStmt = 223, // C++'s catch statement.
- DxcCursor_CXXTryStmt = 224, // C++'s try statement.
- DxcCursor_CXXForRangeStmt = 225, // C++'s for (* : *) statement.
- DxcCursor_SEHTryStmt =
- 226, // Windows Structured Exception Handling's try statement.
- DxcCursor_SEHExceptStmt =
- 227, // Windows Structured Exception Handling's except statement.
- DxcCursor_SEHFinallyStmt =
- 228, // Windows Structured Exception Handling's finally statement.
- DxcCursor_MSAsmStmt = 229, // A MS inline assembly statement extension.
- DxcCursor_NullStmt = 230, // The null satement ";": C99 6.8.3p3.
- DxcCursor_DeclStmt = 231, // Adaptor class for mixing declarations with
- // statements and expressions.
- DxcCursor_OMPParallelDirective = 232, // OpenMP parallel directive.
- DxcCursor_OMPSimdDirective = 233, // OpenMP SIMD directive.
- DxcCursor_OMPForDirective = 234, // OpenMP for directive.
- DxcCursor_OMPSectionsDirective = 235, // OpenMP sections directive.
- DxcCursor_OMPSectionDirective = 236, // OpenMP section directive.
- DxcCursor_OMPSingleDirective = 237, // OpenMP single directive.
- DxcCursor_OMPParallelForDirective = 238, // OpenMP parallel for directive.
- DxcCursor_OMPParallelSectionsDirective =
- 239, // OpenMP parallel sections directive.
- DxcCursor_OMPTaskDirective = 240, // OpenMP task directive.
- DxcCursor_OMPMasterDirective = 241, // OpenMP master directive.
- DxcCursor_OMPCriticalDirective = 242, // OpenMP critical directive.
- DxcCursor_OMPTaskyieldDirective = 243, // OpenMP taskyield directive.
- DxcCursor_OMPBarrierDirective = 244, // OpenMP barrier directive.
- DxcCursor_OMPTaskwaitDirective = 245, // OpenMP taskwait directive.
- DxcCursor_OMPFlushDirective = 246, // OpenMP flush directive.
- DxcCursor_SEHLeaveStmt =
- 247, // Windows Structured Exception Handling's leave statement.
- DxcCursor_OMPOrderedDirective = 248, // OpenMP ordered directive.
- DxcCursor_OMPAtomicDirective = 249, // OpenMP atomic directive.
- DxcCursor_OMPForSimdDirective = 250, // OpenMP for SIMD directive.
- DxcCursor_OMPParallelForSimdDirective =
- 251, // OpenMP parallel for SIMD directive.
- DxcCursor_OMPTargetDirective = 252, // OpenMP target directive.
- DxcCursor_OMPTeamsDirective = 253, // OpenMP teams directive.
- DxcCursor_OMPTaskgroupDirective = 254, // OpenMP taskgroup directive.
- DxcCursor_OMPCancellationPointDirective =
- 255, // OpenMP cancellation point directive.
- DxcCursor_OMPCancelDirective = 256, // OpenMP cancel directive.
- DxcCursor_LastStmt = DxcCursor_OMPCancelDirective,
- DxcCursor_TranslationUnit =
- 300, // Cursor that represents the translation unit itself.
- /* Attributes */
- DxcCursor_FirstAttr = 400,
- /**
- * \brief An attribute whose specific kind is not exposed via this
- * interface.
- */
- DxcCursor_UnexposedAttr = 400,
- DxcCursor_IBActionAttr = 401,
- DxcCursor_IBOutletAttr = 402,
- DxcCursor_IBOutletCollectionAttr = 403,
- DxcCursor_CXXFinalAttr = 404,
- DxcCursor_CXXOverrideAttr = 405,
- DxcCursor_AnnotateAttr = 406,
- DxcCursor_AsmLabelAttr = 407,
- DxcCursor_PackedAttr = 408,
- DxcCursor_PureAttr = 409,
- DxcCursor_ConstAttr = 410,
- DxcCursor_NoDuplicateAttr = 411,
- DxcCursor_CUDAConstantAttr = 412,
- DxcCursor_CUDADeviceAttr = 413,
- DxcCursor_CUDAGlobalAttr = 414,
- DxcCursor_CUDAHostAttr = 415,
- DxcCursor_CUDASharedAttr = 416,
- DxcCursor_LastAttr = DxcCursor_CUDASharedAttr,
- /* Preprocessing */
- DxcCursor_PreprocessingDirective = 500,
- DxcCursor_MacroDefinition = 501,
- DxcCursor_MacroExpansion = 502,
- DxcCursor_MacroInstantiation = DxcCursor_MacroExpansion,
- DxcCursor_InclusionDirective = 503,
- DxcCursor_FirstPreprocessing = DxcCursor_PreprocessingDirective,
- DxcCursor_LastPreprocessing = DxcCursor_InclusionDirective,
- /* Extra Declarations */
- /**
- * \brief A module import declaration.
- */
- DxcCursor_ModuleImportDecl = 600,
- DxcCursor_FirstExtraDecl = DxcCursor_ModuleImportDecl,
- DxcCursor_LastExtraDecl = DxcCursor_ModuleImportDecl
- };
- enum DxcCursorKindFlags {
- DxcCursorKind_None = 0,
- DxcCursorKind_Declaration = 0x1,
- DxcCursorKind_Reference = 0x2,
- DxcCursorKind_Expression = 0x4,
- DxcCursorKind_Statement = 0x8,
- DxcCursorKind_Attribute = 0x10,
- DxcCursorKind_Invalid = 0x20,
- DxcCursorKind_TranslationUnit = 0x40,
- DxcCursorKind_Preprocessing = 0x80,
- DxcCursorKind_Unexposed = 0x100,
- };
- enum DxcCodeCompleteFlags {
- DxcCodeCompleteFlags_None = 0,
- DxcCodeCompleteFlags_IncludeMacros = 0x1,
- DxcCodeCompleteFlags_IncludeCodePatterns = 0x2,
- DxcCodeCompleteFlags_IncludeBriefComments = 0x4,
- };
- enum DxcCompletionChunkKind {
- DxcCompletionChunk_Optional = 0,
- DxcCompletionChunk_TypedText = 1,
- DxcCompletionChunk_Text = 2,
- DxcCompletionChunk_Placeholder = 3,
- DxcCompletionChunk_Informative = 4,
- DxcCompletionChunk_CurrentParameter = 5,
- DxcCompletionChunk_LeftParen = 6,
- DxcCompletionChunk_RightParen = 7,
- DxcCompletionChunk_LeftBracket = 8,
- DxcCompletionChunk_RightBracket = 9,
- DxcCompletionChunk_LeftBrace = 10,
- DxcCompletionChunk_RightBrace = 11,
- DxcCompletionChunk_LeftAngle = 12,
- DxcCompletionChunk_RightAngle = 13,
- DxcCompletionChunk_Comma = 14,
- DxcCompletionChunk_ResultType = 15,
- DxcCompletionChunk_Colon = 16,
- DxcCompletionChunk_SemiColon = 17,
- DxcCompletionChunk_Equal = 18,
- DxcCompletionChunk_HorizontalSpace = 19,
- DxcCompletionChunk_VerticalSpace = 20,
- };
- struct IDxcCursor;
- struct IDxcDiagnostic;
- struct IDxcFile;
- struct IDxcInclusion;
- struct IDxcIntelliSense;
- struct IDxcIndex;
- struct IDxcSourceLocation;
- struct IDxcSourceRange;
- struct IDxcToken;
- struct IDxcTranslationUnit;
- struct IDxcType;
- struct IDxcUnsavedFile;
- struct IDxcCodeCompleteResults;
- struct IDxcCompletionResult;
- struct IDxcCompletionString;
- CROSS_PLATFORM_UUIDOF(IDxcCursor, "1467b985-288d-4d2a-80c1-ef89c42c40bc")
- struct IDxcCursor : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetExtent(_Outptr_result_nullonfailure_ IDxcSourceRange **pRange) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetLocation(_Outptr_result_nullonfailure_ IDxcSourceLocation **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetKind(_Out_ DxcCursorKind *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetKindFlags(_Out_ DxcCursorKindFlags *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetSemanticParent(_Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetLexicalParent(_Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetCursorType(_Outptr_result_nullonfailure_ IDxcType **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetNumArguments(_Out_ int *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetArgumentAt(
- int index, _Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetReferencedCursor(_Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- /// <summary>For a cursor that is either a reference to or a declaration of
- /// some entity, retrieve a cursor that describes the definition of that
- /// entity.</summary> <remarks>Some entities can be declared multiple times
- /// within a translation unit, but only one of those declarations can also be
- /// a definition.</remarks> <returns>A cursor to the definition of this
- /// entity; nullptr if there is no definition in this translation
- /// unit.</returns>
- virtual HRESULT STDMETHODCALLTYPE
- GetDefinitionCursor(_Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- FindReferencesInFile(_In_ IDxcFile *file, unsigned skip, unsigned top,
- _Out_ unsigned *pResultLength,
- _Outptr_result_buffer_maybenull_(*pResultLength)
- IDxcCursor ***pResult) = 0;
- /// <summary>Gets the name for the entity references by the cursor, e.g. foo
- /// for an 'int foo' variable.</summary>
- virtual HRESULT STDMETHODCALLTYPE
- GetSpelling(_Outptr_result_maybenull_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE IsEqualTo(_In_ IDxcCursor *other,
- _Out_ BOOL *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE IsNull(_Out_ BOOL *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE IsDefinition(_Out_ BOOL *pResult) = 0;
- /// <summary>Gets the display name for the cursor, including e.g. parameter
- /// types for a function.</summary>
- virtual HRESULT STDMETHODCALLTYPE GetDisplayName(_Out_ BSTR *pResult) = 0;
- /// <summary>Gets the qualified name for the symbol the cursor refers
- /// to.</summary>
- virtual HRESULT STDMETHODCALLTYPE GetQualifiedName(
- BOOL includeTemplateArgs, _Outptr_result_maybenull_ BSTR *pResult) = 0;
- /// <summary>Gets a name for the cursor, applying the specified formatting
- /// flags.</summary>
- virtual HRESULT STDMETHODCALLTYPE
- GetFormattedName(DxcCursorFormatting formatting,
- _Outptr_result_maybenull_ BSTR *pResult) = 0;
- /// <summary>Gets children in pResult up to top elements.</summary>
- virtual HRESULT STDMETHODCALLTYPE
- GetChildren(unsigned skip, unsigned top, _Out_ unsigned *pResultLength,
- _Outptr_result_buffer_maybenull_(*pResultLength)
- IDxcCursor ***pResult) = 0;
- /// <summary>Gets the cursor following a location within a compound
- /// cursor.</summary>
- virtual HRESULT STDMETHODCALLTYPE
- GetSnappedChild(_In_ IDxcSourceLocation *location,
- _Outptr_result_maybenull_ IDxcCursor **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcDiagnostic, "4f76b234-3659-4d33-99b0-3b0db994b564")
- struct IDxcDiagnostic : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- FormatDiagnostic(DxcDiagnosticDisplayOptions options,
- _Outptr_result_maybenull_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetSeverity(_Out_ DxcDiagnosticSeverity *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetLocation(_Outptr_result_nullonfailure_ IDxcSourceLocation **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetSpelling(_Outptr_result_maybenull_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetCategoryText(_Outptr_result_maybenull_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetNumRanges(_Out_ unsigned *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetRangeAt(unsigned index,
- _Outptr_result_nullonfailure_ IDxcSourceRange **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetNumFixIts(_Out_ unsigned *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetFixItAt(unsigned index,
- _Outptr_result_nullonfailure_ IDxcSourceRange **pReplacementRange,
- _Outptr_result_maybenull_ LPSTR *pText) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcFile, "bb2fca9e-1478-47ba-b08c-2c502ada4895")
- struct IDxcFile : public IUnknown {
- /// <summary>Gets the file name for this file.</summary>
- virtual HRESULT STDMETHODCALLTYPE
- GetName(_Outptr_result_maybenull_ LPSTR *pResult) = 0;
- /// <summary>Checks whether this file is equal to the other specified
- /// file.</summary>
- virtual HRESULT STDMETHODCALLTYPE IsEqualTo(_In_ IDxcFile *other,
- _Out_ BOOL *pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcInclusion, "0c364d65-df44-4412-888e-4e552fc5e3d6")
- struct IDxcInclusion : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetIncludedFile(_Outptr_result_nullonfailure_ IDxcFile **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetStackLength(_Out_ unsigned *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetStackItem(unsigned index,
- _Outptr_result_nullonfailure_ IDxcSourceLocation **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcIntelliSense, "b1f99513-46d6-4112-8169-dd0d6053f17d")
- struct IDxcIntelliSense : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- CreateIndex(_Outptr_result_nullonfailure_ IDxcIndex **index) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetNullLocation(
- _Outptr_result_nullonfailure_ IDxcSourceLocation **location) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetNullRange(_Outptr_result_nullonfailure_ IDxcSourceRange **location) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetRange(_In_ IDxcSourceLocation *start, _In_ IDxcSourceLocation *end,
- _Outptr_result_nullonfailure_ IDxcSourceRange **location) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetDefaultDiagnosticDisplayOptions(
- _Out_ DxcDiagnosticDisplayOptions *pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetDefaultEditingTUOptions(_Out_ DxcTranslationUnitFlags *pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE CreateUnsavedFile(
- _In_ LPCSTR fileName, _In_ LPCSTR contents, unsigned contentLength,
- _Outptr_result_nullonfailure_ IDxcUnsavedFile **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcIndex, "937824a0-7f5a-4815-9ba7-7fc0424f4173")
- struct IDxcIndex : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- SetGlobalOptions(DxcGlobalOptions options) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetGlobalOptions(_Out_ DxcGlobalOptions *options) = 0;
- virtual HRESULT STDMETHODCALLTYPE ParseTranslationUnit(
- _In_z_ const char *source_filename,
- _In_count_(num_command_line_args) const char *const *command_line_args,
- int num_command_line_args,
- _In_count_(num_unsaved_files) IDxcUnsavedFile **unsaved_files,
- unsigned num_unsaved_files, DxcTranslationUnitFlags options,
- _Out_ IDxcTranslationUnit **pTranslationUnit) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcSourceLocation,
- "8e7ddf1c-d7d3-4d69-b286-85fccba1e0cf")
- struct IDxcSourceLocation : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE IsEqualTo(_In_ IDxcSourceLocation *other,
- _Out_ BOOL *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetSpellingLocation(
- _Outptr_opt_ IDxcFile **pFile, _Out_opt_ unsigned *pLine,
- _Out_opt_ unsigned *pCol, _Out_opt_ unsigned *pOffset) = 0;
- virtual HRESULT STDMETHODCALLTYPE IsNull(_Out_ BOOL *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetPresumedLocation(_Outptr_opt_ LPSTR *pFilename, _Out_opt_ unsigned *pLine,
- _Out_opt_ unsigned *pCol) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcSourceRange, "f1359b36-a53f-4e81-b514-b6b84122a13f")
- struct IDxcSourceRange : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE IsNull(_Out_ BOOL *pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetStart(_Out_ IDxcSourceLocation **pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetEnd(_Out_ IDxcSourceLocation **pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetOffsets(_Out_ unsigned *startOffset,
- _Out_ unsigned *endOffset) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcToken, "7f90b9ff-a275-4932-97d8-3cfd234482a2")
- struct IDxcToken : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE GetKind(_Out_ DxcTokenKind *pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetLocation(_Out_ IDxcSourceLocation **pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetExtent(_Out_ IDxcSourceRange **pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetSpelling(_Out_ LPSTR *pValue) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcTranslationUnit,
- "9677dee0-c0e5-46a1-8b40-3db3168be63d")
- struct IDxcTranslationUnit : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE GetCursor(_Out_ IDxcCursor **pCursor) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- Tokenize(_In_ IDxcSourceRange *range,
- _Outptr_result_buffer_maybenull_(*pTokenCount) IDxcToken ***pTokens,
- _Out_ unsigned *pTokenCount) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetLocation(_In_ IDxcFile *file, unsigned line, unsigned column,
- _Outptr_result_nullonfailure_ IDxcSourceLocation **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetNumDiagnostics(_Out_ unsigned *pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetDiagnostic(unsigned index,
- _Outptr_result_nullonfailure_ IDxcDiagnostic **pValue) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetFile(_In_ const char *name,
- _Outptr_result_nullonfailure_ IDxcFile **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetFileName(_Outptr_result_maybenull_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE Reparse(_In_count_(num_unsaved_files)
- IDxcUnsavedFile **unsaved_files,
- unsigned num_unsaved_files) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetCursorForLocation(_In_ IDxcSourceLocation *location,
- _Outptr_result_nullonfailure_ IDxcCursor **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetLocationForOffset(
- _In_ IDxcFile *file, unsigned offset,
- _Outptr_result_nullonfailure_ IDxcSourceLocation **pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetSkippedRanges(
- _In_ IDxcFile *file, _Out_ unsigned *pResultCount,
- _Outptr_result_buffer_(*pResultCount) IDxcSourceRange ***pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetDiagnosticDetails(unsigned index, DxcDiagnosticDisplayOptions options,
- _Out_ unsigned *errorCode, _Out_ unsigned *errorLine,
- _Out_ unsigned *errorColumn, _Out_ BSTR *errorFile,
- _Out_ unsigned *errorOffset, _Out_ unsigned *errorLength,
- _Out_ BSTR *errorMessage) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetInclusionList(
- _Out_ unsigned *pResultCount,
- _Outptr_result_buffer_(*pResultCount) IDxcInclusion ***pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE CodeCompleteAt(
- _In_ const char *fileName, unsigned line, unsigned column,
- _In_ IDxcUnsavedFile **pUnsavedFiles, unsigned numUnsavedFiles,
- _In_ DxcCodeCompleteFlags options,
- _Outptr_result_nullonfailure_ IDxcCodeCompleteResults **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcType, "2ec912fd-b144-4a15-ad0d-1c5439c81e46")
- struct IDxcType : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetSpelling(_Outptr_result_z_ LPSTR *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE IsEqualTo(_In_ IDxcType *other,
- _Out_ BOOL *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetKind(_Out_ DxcTypeKind *pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcUnsavedFile, "8ec00f98-07d0-4e60-9d7c-5a50b5b0017f")
- struct IDxcUnsavedFile : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetFileName(_Outptr_result_z_ LPSTR *pFileName) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetContents(_Outptr_result_z_ LPSTR *pContents) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetLength(_Out_ unsigned *pLength) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcCodeCompleteResults,
- "1E06466A-FD8B-45F3-A78F-8A3F76EBB552")
- struct IDxcCodeCompleteResults : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE GetNumResults(_Out_ unsigned *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetResultAt(unsigned index,
- _Outptr_result_nullonfailure_ IDxcCompletionResult **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcCompletionResult,
- "943C0588-22D0-4784-86FC-701F802AC2B6")
- struct IDxcCompletionResult : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetCursorKind(_Out_ DxcCursorKind *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetCompletionString(
- _Outptr_result_nullonfailure_ IDxcCompletionString **pResult) = 0;
- };
- CROSS_PLATFORM_UUIDOF(IDxcCompletionString,
- "06B51E0F-A605-4C69-A110-CD6E14B58EEC")
- struct IDxcCompletionString : public IUnknown {
- virtual HRESULT STDMETHODCALLTYPE
- GetNumCompletionChunks(_Out_ unsigned *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE GetCompletionChunkKind(
- unsigned chunkNumber, _Out_ DxcCompletionChunkKind *pResult) = 0;
- virtual HRESULT STDMETHODCALLTYPE
- GetCompletionChunkText(unsigned chunkNumber, _Out_ LPSTR *pResult) = 0;
- };
- // Fun fact: 'extern' is required because const is by default static in C++, so
- // CLSID_DxcIntelliSense is not visible externally (this is OK in C, since const
- // is not by default static in C)
- #ifdef _MSC_VER
- #define CLSID_SCOPE __declspec(selectany) extern
- #else
- #define CLSID_SCOPE
- #endif
- CLSID_SCOPE const CLSID
- CLSID_DxcIntelliSense = {/* 3047833c-d1c0-4b8e-9d40-102878605985 */
- 0x3047833c,
- 0xd1c0,
- 0x4b8e,
- {0x9d, 0x40, 0x10, 0x28, 0x78, 0x60, 0x59, 0x85}};
- #endif
|