diff --git a/.gitattributes b/.gitattributes index b67eaaa535..d97944f010 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,5 @@ test-files/**/*.xml binary test-files/golden-tests/** text eol=lf **.sh text eol=lf +docs/mrdocs.rng text eol=lf +docs/mrdocs-dom-schema.json text eol=lf diff --git a/CMakeLists.txt b/CMakeLists.txt index 9afaefb8a3..916459822a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -578,24 +578,37 @@ if (MRDOCS_BUILD_TESTS) $<$:--warn-as-error=true> ) + #------------------------------------------------- + # Schemas + #------------------------------------------------- + # Generate mrdocs.rng and mrdocs-dom-schema.json via --schemas. + add_custom_command( + COMMAND mrdocs --schemas=${CMAKE_CURRENT_BINARY_DIR} + OUTPUT + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs.rng + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs-dom-schema.json + DEPENDS mrdocs + COMMENT "Generating schemas via --schemas") + add_custom_target(mrdocs_schemas ALL DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs.rng + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs-dom-schema.json) + + # Freshness checks: the regenerated schemas must match the + # copies checked in under docs/. + add_test(NAME rng-schema-check + COMMAND ${CMAKE_COMMAND} -E compare_files + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs.rng + ${CMAKE_CURRENT_SOURCE_DIR}/docs/mrdocs.rng) + add_test(NAME dom-schema-check + COMMAND ${CMAKE_COMMAND} -E compare_files + ${CMAKE_CURRENT_BINARY_DIR}/mrdocs-dom-schema.json + ${CMAKE_CURRENT_SOURCE_DIR}/docs/mrdocs-dom-schema.json) + #------------------------------------------------- # XML lint #------------------------------------------------- find_package(LibXml2 ${REQUIRED_IF_STRICT}) if (LibXml2_FOUND) - find_package(Java REQUIRED Runtime) - # FindJava - if (NOT Java_FOUND) - message(FATAL_ERROR "Java is needed to run xml-lint") - endif() - - add_custom_command( - COMMAND ${Java_JAVA_EXECUTABLE} -jar ${CMAKE_CURRENT_SOURCE_DIR}/util/trang.jar - ${CMAKE_CURRENT_SOURCE_DIR}/mrdocs.rnc ${CMAKE_CURRENT_BINARY_DIR}/mrdocs.rng - OUTPUT mrdocs.rng - DEPENDS mrdocs.rnc) - add_custom_target(mrdocs_rng ALL DEPENDS mrdocs.rng) - file(GLOB_RECURSE XML_SOURCES CONFIGURE_DEPENDS test-files/golden-tests/*.xml) add_test(NAME xml-lint COMMAND ${LIBXML2_XMLLINT_EXECUTABLE} --dropdtd --noout diff --git a/docs/antora-playbook.yml b/docs/antora-playbook.yml index 76a346cf4a..72cab12231 100644 --- a/docs/antora-playbook.yml +++ b/docs/antora-playbook.yml @@ -97,3 +97,4 @@ asciidoc: - ./extensions/mrdocs-demos.js - ./extensions/mrdocs-releases.js - ./extensions/config-options-reference.js + - ./extensions/dom-reference.js diff --git a/docs/extensions/dom-reference.js b/docs/extensions/dom-reference.js new file mode 100644 index 0000000000..d2ea744736 --- /dev/null +++ b/docs/extensions/dom-reference.js @@ -0,0 +1,165 @@ +/* + Copyright (c) 2026 Gennaro Prota (gennaro.prota@gmail.com) + + Distributed under the Boost Software License, Version 1.0. (See accompanying + file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + Official repository: https://github.com/cppalliance/mrdocs + + Antora extension that renders the DOM Reference section of the + docs site from mrdocs-dom-schema.json. Drop-in counterpart to + config-options-reference.js for the JSON-Schema describing the + Handlebars DOM. +*/ + +function escapeHtml(str) +{ + return str + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} + +// Convert a CamelCase / PascalCase type name into a kebab-case +// anchor id. Adjacent uppercase letters that look like an acronym +// (e.g. "TParam", "TArg") stay glued together - the existing +// manually-maintained docs use `tparam-fields` and `targ-fields`, +// not `t-param-fields` / `t-arg-fields`, and we preserve that. +function kebabAnchor(name) +{ + return name + .replace(/([a-z0-9])([A-Z])/g, '$1-$2') + .toLowerCase(); +} + +function anchorFor(typeName) +{ + return kebabAnchor(typeName) + '-fields'; +} + +// Strip "#/$defs/X" -> "X". +function refTypeName(ref) +{ + const prefix = '#/$defs/'; + return ref.startsWith(prefix) ? ref.substring(prefix.length) : ref; +} + +// Render the type cell of a property. Returns HTML. +function describeType(prop) +{ + if (prop.$ref) { + const t = refTypeName(prop.$ref); + return `${t}`; + } + if (prop.const !== undefined) { + return `"${escapeHtml(String(prop.const))}"`; + } + if (prop.type === 'array') { + return `array of ${describeType(prop.items)}`; + } + if (prop.type === 'string' && Array.isArray(prop.enum)) { + const values = prop.enum.map(v => + `"${escapeHtml(v)}"`).join(' | '); + return `string (${values})`; + } + if (prop.type === 'object') { + return 'object'; + } + return prop.type || 'any'; +} + +// Render one `$defs` entry: heading + description + members table +// (or a `oneOf` list, for polymorphic unions). +function renderTypeSection(typeName, schema, level, block) +{ + block.lines.push( + `
`); + block.lines.push( + ``); + block.lines.push( + ``); + block.lines.push(escapeHtml(typeName)); + block.lines.push(``); + block.lines.push(`
`); + + if (schema.description) { + block.lines.push( + `

${escapeHtml(schema.description)}

`); + } + + if (Array.isArray(schema.oneOf)) { + // Polymorphic union: list each variant as a link. + block.lines.push(`

One of:

`); + block.lines.push(`
    `); + for (const variant of schema.oneOf) { + const name = refTypeName(variant.$ref); + block.lines.push( + `
  • ${escapeHtml(name)}
  • `); + } + block.lines.push(`
`); + } else if (schema.properties) { + // Object type: render the property table. + const required = new Set(schema.required || []); + block.lines.push( + ``); + block.lines.push(``); + block.lines.push(``); + block.lines.push(``); + block.lines.push(``); + block.lines.push(``); + block.lines.push(``); + block.lines.push( + ``); + block.lines.push( + ``); + block.lines.push( + ``); + block.lines.push(``); + block.lines.push(``); + for (const [name, prop] of Object.entries(schema.properties)) { + block.lines.push(``); + block.lines.push( + ``); + block.lines.push( + ``); + block.lines.push( + ``); + block.lines.push(``); + } + block.lines.push(``); + block.lines.push(`
PropertyTypeDescription
` + + `${escapeHtml(name)}` + + (required.has(name) + ? ` (required)` + : '') + + `${describeType(prop)}` + + (prop.description ? escapeHtml(prop.description) : '') + + `
`); + } + + block.lines.push(`
`); // sectionbody + block.lines.push(`
`); // sect +} + +module.exports = function (registry) { + if (!registry) { + throw new Error('registry must be defined'); + } + registry.block('dom-reference', function () { + const self = this; + self.onContext('example'); + self.process((parent, reader, attrs) => { + const level = parseInt(attrs.level || 3, 10); + const code = reader.getLines().join('\n'); + const schema = JSON.parse(code); + const block = self.$create_pass_block(parent, '', Opal.hash(attrs)); + const defs = schema['$defs'] || {}; + for (const [typeName, def] of Object.entries(defs)) { + renderTypeSection(typeName, def, level, block); + } + return block; + }); + }); +}; diff --git a/docs/modules/ROOT/attachments/mrdocs-dom-schema.json b/docs/modules/ROOT/attachments/mrdocs-dom-schema.json new file mode 120000 index 0000000000..d4f071a56a --- /dev/null +++ b/docs/modules/ROOT/attachments/mrdocs-dom-schema.json @@ -0,0 +1 @@ +../../../mrdocs-dom-schema.json \ No newline at end of file diff --git a/docs/modules/ROOT/attachments/mrdocs.rng b/docs/modules/ROOT/attachments/mrdocs.rng new file mode 120000 index 0000000000..bdc318de2d --- /dev/null +++ b/docs/modules/ROOT/attachments/mrdocs.rng @@ -0,0 +1 @@ +../../../mrdocs.rng \ No newline at end of file diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index a7f35d774c..94ce604813 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -22,6 +22,7 @@ ** xref:generators/html.adoc[HTML] ** xref:generators/adoc.adoc[AsciiDoc] ** xref:generators/xml.adoc[XML] +** xref:schemas.adoc[Output Schemas] * Extensions ** xref:extensions/corpus-extensions.adoc[Corpus Extensions] ** xref:extensions/handlebars-extensions.adoc[Handlebars Extensions] diff --git a/docs/modules/ROOT/pages/extensions/dom-reference.adoc b/docs/modules/ROOT/pages/extensions/dom-reference.adoc index f91799cef5..0ff9718b25 100644 --- a/docs/modules/ROOT/pages/extensions/dom-reference.adoc +++ b/docs/modules/ROOT/pages/extensions/dom-reference.adoc @@ -3,882 +3,7 @@ The Document Object Model (DOM) is a tree structure that represents the symbols extracted from the source code. The DOM is used by the generator to render the documentation. -== Top-Level Fields - -The top-level object in the DOM is the context for a template. The top-level object has the following properties: - -|=== -|Property |Type| Description - -|`symbol` -|`<>` -|The symbol being rendered. - -|`config` -|`<>` -|The configuration object. - -|=== - -[#symbol-fields] -== Symbol - -The `Symbol` object represents a symbol extracted from the source code. The symbol being rendered is available in the `symbol` object in the Handlebars context. The symbol object has the following properties: - -|=== -|Property |Type| Description - -| `id` -| `string` -| A unique identifier for the symbol. - -| `name` -| `string` -| The nonqualified name of the symbol. - -| `kind` -| `string` -| The kind of symbol. (e.g., `class`, `function`, `variable`) - -| `access` -| `string` -| The access level of the symbol. (e.g., `public`, `protected`, `private`) - -| `extraction` -| `string` -| The extraction mode of the symbol according to the specified filters. (e.g., `regular`, `see-below`, `implementation-defined`, `dependency`) - -| `isRegular` -| `bool` -| Whether the symbol extraction mode is `regular`. - -| `isSeeBelow` -| `bool` -| Whether the symbol extraction mode is `see-below`. - -| `isImplementationDefined` -| `bool` -| Whether the symbol extraction mode is `implementation-defined`. - -| `isDependency` -| `bool` -| Whether the symbol extraction mode is `dependency`. - -| `parents` -| `<>` -| The parent contexts (namespaces or records) of the symbol. - -| `parent` -| `<>` -| The parent context (namespace or record) of the symbol. - -| `doc` -| `Any` -| The documentation for the symbol. - -| `attributes` -| `<>` -| The C++ attributes attached to the symbol, for example `[[deprecated]]` or `[[nodiscard]]`. - -|=== - -[#attribute-fields] -=== Attribute - -The `Attribute` object represents a single C++ attribute. Every attribute object has these common fields: - -|=== -|Property |Type| Description - -| `kind` -| `string` -| The recognized standard attribute, identified independently of spelling: one of `deprecated`, `nodiscard`, `maybe-unused`, `no-unique-address`, `noreturn`, `carries-dependency`, `fallthrough`, `likely`, `unlikely`, `assume`, `indeterminate`, or `other` for an unrecognized attribute. - -| `name` -| `string` -| The attribute name. Recognized attributes use the normalized spelling (e.g., `deprecated`, `no_unique_address`); unrecognized ones keep the written spelling, including any scope (e.g., `gnu::custom`). - -| `balancedTokens` -| `string[]` -| The arguments as a balanced-token sequence, one per element (e.g., `["printf", "1", "2"]` for `[[gnu::format(printf, 1, 2)]]`). String-literal arguments keep their quotes. Empty for attributes that take no arguments. - -|=== - -Some attribute kinds add a field for an evaluated argument. Templates should branch on `kind` and read these directly (for example, the deprecation notice prints `message`) rather than parsing `balancedTokens`. - -When the attribute kind is `deprecated`, the attribute object has the following additional property: - -|=== -|Property |Type| Description - -| `message` -| `string` -| The deprecation message, without quotes (e.g., `use bar instead` for `[[deprecated("use bar instead")]]`). Empty when no message was given. -|=== - -When the attribute kind is `nodiscard`, the attribute object has the following additional property: - -|=== -|Property |Type| Description - -| `reason` -| `string` -| The reason the result should not be discarded, without quotes (the C++20 `[[nodiscard("reason")]]` form). Empty otherwise. -|=== - -When the attribute kind is `assume`, the attribute object has the following additional property: - -|=== -|Property |Type| Description - -| `expression` -| `string` -| The assumed expression (the C++23 `[[assume(expression)]]` form). -|=== - -Handlebars generators extend each symbol with the following fields: - -|=== -|Property |Type| Description - -| `url` -| `string` -| The URL of the symbol. If the documentation is a single page, this is the anchor link to the symbol starting with `#`. If the documentation is multipage, this is the path to the symbol starting with `/`. - -| `anchor` -| `string` -| The anchor link to the symbol. This is used for section IDs in the documentation. - -|=== - -The `Symbol` object has additional properties based on the kind of symbol. -The following table lists the additional properties for symbols that contain information about their scope (such as Namespaces and Classes): - -|=== -|Property |Type| Description - -| `members` -| `<>` -| The members of that scope (e.g., member functions, namespace symbols). - -| `overloads` -| `<>` -| Same as `members`, but groups overloaded functions as unique symbols of kind `overload`. -|=== - -Symbol objects that contain information about the location include the following properties: - -|=== -|Property |Type| Description - -| `loc` -| `<>` -| The location of the symbol in the source code. -|=== - -When the symbol kind is `namespace`, the symbol object has the following additional properties: - -|=== -|Property |Type| Description - -| `interface` -| `<>` -| The interface of the namespace. - -| `usingDirectives` -| `<>` -| The using directives of the namespace. -|=== - -When the symbol kind is `record` (e.g., `class`, `struct`, `union`), the symbol object has the following additional properties: - -|=== -|Property |Type| Description - -| `tag` -| `string` -| The type of record (e.g., `class`, `struct`, `union`). - -| `defaultAccess` -| `string` -| The default access level of the record members (e.g., `public`, `private`). - -| `isFinal` -| `bool` -| Whether the record is final. - -| `isTypedef` -| `bool` -| Whether the record is a typedef. - -| `bases` -| `<>` -| The base classes of the record. - -| `interface` -| `<>` -| The interface of the record. - -| `template` -| `<>` -| The template information of the record. -|=== - -When the symbol kind is `enum`, the symbol object has the following additional properties: - -|=== -|Property |Type| Description - -| `type` -| `<>` -| The type information of the enum. - -| `isScoped` -| `bool` -| Whether the enum is scoped. -|=== - -When the symbol kind is `function`, the symbol object has the following additional properties: - -|=== -|Property |Type| Description - -| `isVariadic` -| `bool` -| Whether the function is variadic. - -| `isVirtual` -| `bool` -| Whether the function is virtual. - -| `isVirtualAsWritten` -| `bool` -| Whether the function is virtual as written. - -| `isPure` -| `bool` -| Whether the function is pure. - -| `isDefaulted` -| `bool` -| Whether the function is defaulted. - -| `isExplicitlyDefaulted` -| `bool` -| Whether the function is explicitly defaulted. - -| `isDeleted` -| `bool` -| Whether the function is deleted. - -| `isDeletedAsWritten` -| `bool` -| Whether the function is deleted as written. - -| `hasOverrideAttr` -| `bool` -| Whether the function has the override attribute. - -| `hasTrailingReturn` -| `bool` -| Whether the function has a trailing return type. - -| `isConst` -| `bool` -| Whether the function is const. - -| `isVolatile` -| `bool` -| Whether the function is volatile. - -| `isFinal` -| `bool` -| Whether the function is final. - -| `isExplicitObjectMemberFunction` -| `bool` -| Whether the function is an explicit object member function. - -| `constexprKind` -| `string` -| The constexpr kind of the function (e.g., `consteval`, `constexpr`). - -| `storageClass` -| `string` -| The storage class of the function (e.g., `static`, `extern`). - -| `refQualifier` -| `string` -| The reference qualifier of the function (e.g., `&`, `&&`). - -| `class` -| `string` -| The function class (e.g., `constructor`, `conversion`, `destructor`). - -| `params` -| `<>` -| The parameters of the function. - -| `return` -| `<>` -| The return type of the function. - -| `template` -| `<>` -| The template information of the function. - -| `overloadedOperator` -| `string` -| The overloaded operator of the function. - -| `exceptionSpec` -| `string` -| The exception specification of the function. - -| `explicitSpec` -| `string` -| The explicit specification of the function. - -| `requires` -| `string` -| The `requires` expression of the function. -|=== - -When the symbol kind is `typedef`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `type` -| `<>` -| The type information of the typedef. - -| `template` -| `<>` -| The template information of the typedef. - -| `isUsing` -| `bool` -| Whether the typedef is a `using` declaration. -|=== - -When the symbol kind is `variable`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `type` -| `<>` -| The type information of the variable. - -| `template` -| `<>` -| The template information of the variable. - -| `storageClass` -| `string` -| The storage class of the variable (e.g., `static`, `extern`). - -| `isInline` -| `bool` -| Whether the variable is `inline`. - -| `isConstexpr` -| `bool` -| Whether the variable is `constexpr`. - -| `isConstinit` -| `bool` -| Whether the variable is `constinit`. - -| `isThreadLocal` -| `bool` -| Whether the variable is thread-local. - -| `initializer` -| `string` -| The initializer of the variable. -|=== - -When the symbol kind is `field` (i.e. non-static data members), the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `type` -| `<>` -| The type information of the field. - -| `default` -| `string` -| The default value of the field. - -| `isVariant` -| `bool` -| Whether the field is a variant. - -| `isMutable` -| `bool` -| Whether the field is mutable. - -| `isBitfield` -| `bool` -| Whether the field is a bitfield. - -| `bitfieldWidth` -| `string` -| The width of the bitfield. -|=== - -When the symbol kind is `friend`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `name` -| `string` -| The name of the friend symbol or type. - -| `symbol` -| <> -| The friend symbol. - -| `type` -| <> -| The friend type. -|=== - -When the symbol kind is `namespace-alias`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `aliasedSymbol` -| <> -| The aliased symbol. -|=== - -When the symbol kind is `using`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `class` -| `string` -| The class of the using declaration (e.g., `normal`, `typename`, `enum`). - -| `shadows` -| <> -| The symbols being used. - -| `qualifier` -| `<>` -| The qualifier of the using declaration. -|=== - -When the symbol kind is `enum-constant`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `initializer` -| `string` -| The initializer of the enum-constant. -|=== - -When the symbol kind is `guide`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `params` -| `<>` -| The parameters of the guide. - -| `deduced` -| `<>` -| The deduced type of the guide. - -| `template` -| `<>` -| The template information of the guide. - -| `explicitSpec` -| `string` -| The explicit specification of the guide. -|=== - -When the symbol kind is `concept`, the symbol object has the following additional properties: - -|=== -| Property | Type | Description - -| `template` -| `<>` -| The template information of the concept. - -| `constraint` -| `string` -| The constraint of the concept. -|=== - -[#source-info-fields] -== Source Fields - -The `Source` object represents the location of the symbol in the source code. -The source info object has the following properties: - -|=== -|Property |Type| Description - -| `def` -| <> -| Location where the entity was defined. - -| `decl` -| <> -| Locations where the entity was declared. -|=== - -[#tranche-fields] -== Tranche Object Fields - -The `Tranche` object represents the symbols in a scope (e.g., namespace). -The tranche object has the following properties: - -|=== -|Property |Type| Description - -| (symbol kind in plural form: e.g., `classes`, `functions`, `variables`) -| `<>` -| The symbols of that kind in the scope. - -| `types` -| `<>` -| The types in the scope. - -| `staticfuncs` -| `<>` -| The static functions in the scope. - -| `overloads` -| `<>` -| The overloads in the scope. - -| `staticoverloads` -| `<>` -| The static overloads in the scope. -|=== - -[#interface-fields] -== Interface Object Fields - -The `Interface` object represents the interface of a record (e.g., class, struct, union). -The interface object has the following properties: - -|=== -|Property |Type| Description - -| `public` -| `<>` -| The public interface of the record. - -| `protected` -| `<>` -| The protected interface of the record. - -| `private` -| `<>` -| The private interface of the record. -|=== - -[#base-info-fields] -== Base Info Fields - -The `Base Info` object represents a base class of a record. -The base info object has the following properties: - -|=== -|Property |Type| Description - -| `access` -| `string` -| The access level of the base class. - -| `isVirtual` -| `bool` -| Whether the base class is virtual. - -| `type` -| `<>` -| The type information of the base class. -|=== - -[#template-info-fields] -== Template Fields - -The `Template` object represents the template information of a record, function, or typedef. -The template info object has the following properties: - -|=== -|Property |Type| Description - -| `kind` -| `string` -| The kind of template (e.g., `explicit`, `partial`). - -| `primary` -| `<>` -| The primary template. - -| `params` -| `<>` -| The template parameters. - -| `args` -| `<>` -| The template arguments. - -| `requires` -| `string` -| The `requires` expression of the template. -|=== - -[#type-info-fields] -== Type Fields - -The `Type` object represents the type information of a symbol. -The type info object has the following properties: - -|=== -|Property |Type| Description - -| `kind` -| `string` -| The kind of type (e.g., `named`, `decltype`, `auto`, `pointer`, `reference`, `array`, `function`). - -| `is-pack` -| `bool` -| Whether the type is a pack expansion. - -| `name` -| `string` -| The name of the type. - -| `operand` -| `string` -| The operand of the type. - -| `keyword` -| `string` -| The keyword of the type. - -| `constraint` -| `string` -| The constraint of the type. - -| `cv-qualifiers` -| `string` -| The cv qualifier of the type (e.g., `const`, `volatile`). - -| `parent-type` -| `<>` -| The parent type of the type. - -| `pointee-type` -| `<>` -| The pointee type of the type. - -| `element-type` -| `<>` -| The element type of the type. - -| `bounds-value` -| `string` -| The bounds value of the type. - -| `bounds-expr` -| `string` -| The bounds expression of the type. - -| `return-type` -| `<>` -| The return type of the type. - -| `param-types` -| `<>` -| The parameter types of the type. - -| `exception-spec` -| `string` -| The exception specification of the type. - -| `ref-qualifier` -| `string` -| The reference qualifier of the type. - -| `is-variadic` -| `bool` -| Whether the type is variadic. -|=== - -[#param-fields] -== Param Fields - -The `Param` object represents the parameter of a function. -The param object has the following properties: - -|=== -|Property |Type| Description - -| `name` -| `string` -| The name of the parameter. - -| `type` -| `<>` -| The type information of the parameter. - -| `default` -| `string` -| The default value of the parameter. -|=== - -[#name-info-fields] -== Name Fields - -The `Name` object represents the name of a symbol. -The name info object has the following properties: - -|=== -|Property |Type| Description - -| `name` -| `string` -| The name of the symbol. - -| `symbol` -| `string` -| The unique identifier of the symbol. - -| `args` -| `<>` -| The template arguments of the symbol. - -| `prefix` -| `string` -| The prefix of the symbol. -|=== - -[#location-fields] -== Location Fields - -The `Location` object represents the location of a symbol in the source code. -The location object has the following properties: - -|=== -|Property |Type| Description - -| `fullPath` -| `string` -| The full path of the source file. - -| `shortPath` -| `string` -| The path of the source file relative to the search directories. - -| `sourcePath` -| `string` -| The path of the source file relative to the `source-root`. - -| `line` -| `integer` -| The line number of the symbol at this location. - -| `documented` -| `bool` -| Whether the symbol is documented at this location. -|=== - -[#tparam-fields] -== TParam Fields - -The `TParam` object represents a template parameter of a record, function, or typedef. -The tparam object has the following properties: - -|=== -|Property |Type| Description - -| `kind` -| `string` -| The kind of template parameter (e.g., `type`, `non-type`, `template`). - -| `name` -| `string` -| The name of the template parameter. - -| `is-pack` -| `bool` -| Whether the template parameter is a pack expansion. - -| `default` -| `string` -| The default value of the template parameter. - -| `key` -| `string` -| The key kind of the template parameter. - -| `constraint` -| `string` -| The constraint of the template parameter. - -| `type` -| `<>` -| The type information of the template parameter. - -| `params` -| `<>` -| The template parameters of the template parameter. -|=== - -[#targ-fields] -== Targ Fields - -The `Targ` object represents a template argument of a record, function, or typedef. -The targ object has the following properties: - -|=== -|Property |Type| Description - -| `kind` -| `string` -| The kind of template argument (e.g., `type`, `non-type`, `template`). - -| `is-pack` -| `bool` -| Whether the template argument is a pack expansion. - -| `type` -| `<>` -| The type information of the template argument. - -| `value` -| `string` -| The value of the template argument. - -| `name` -| `string` -| The name of the template argument. - -| `template` -| `<>` -| The template information of the template argument. -|=== - -[#config-fields] -== Config Fields - -The `Config` object represents the configuration object. -It includes all values provided to Mr.Docs in the configuration file or via the command line. -Please refer to the xref:configuration/reference.adoc[configuration options reference] for more information. +[dom-reference,level=2] +==== +include::partial$mrdocs-dom-schema.json[] +==== diff --git a/docs/modules/ROOT/pages/generators/xml.adoc b/docs/modules/ROOT/pages/generators/xml.adoc index 24eee3e809..fa5a94c878 100644 --- a/docs/modules/ROOT/pages/generators/xml.adoc +++ b/docs/modules/ROOT/pages/generators/xml.adoc @@ -21,7 +21,7 @@ The output is a single file (`reference.xml` by default) regardless of the xref: ---- + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> logr namespace @@ -44,10 +44,10 @@ Symbols are emitted flat as siblings of the root; parent/child relationships are The schema is the same model Mr.Docs uses internally, just serialized. The xref:extensions/dom-reference.adoc[DOM reference] documents every field by name, and applies to the XML output element-for-element: a field shown as `Name` in the DOM appears as `` in the XML, `Loc` as ``, and so on. -The canonical https://relaxng.org/[RELAX NG^] schema ships at the URL referenced in the root element: +The canonical https://relaxng.org/[RELAX NG^] schema, `mrdocs.rng`, is generated by the `--schemas` option and ships with the documentation as a downloadable attachment; see xref:schemas.adoc[Output Schemas]. The URL referenced in the root element points at it: [source] ---- -https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc +https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng ---- diff --git a/docs/modules/ROOT/pages/schemas.adoc b/docs/modules/ROOT/pages/schemas.adoc new file mode 100644 index 0000000000..b689d4cf22 --- /dev/null +++ b/docs/modules/ROOT/pages/schemas.adoc @@ -0,0 +1,52 @@ += Output Schemas + +If you build tooling on top of MrDocs's XML output, or you write Handlebars templates against the DOM the HTML and AsciiDoc generators expose, you'll want a machine-readable description of the data. Run + +[source,bash] +---- +mrdocs --schemas +---- + +and MrDocs writes two files to the current directory: + +`mrdocs.rng`:: +A RELAX NG schema (XML syntax) for the documents produced by the XML generator. Each XML output file's `xsi:noNamespaceSchemaLocation` points at this schema. Validate with `xmllint --relaxng`, or with any other RELAX NG tool. + +`mrdocs-dom-schema.json`:: +A JSON Schema (draft 2020-12) for the DOM that Handlebars templates see. Every type a template can encounter is listed in `$defs`, with a short prose description on each field. + +To write somewhere other than the current directory: + +[source,bash] +---- +mrdocs --schemas=path/to/dir +---- + +The target directory is created if it doesn't already exist. + +`--schemas` doesn't read your configuration file or your source tree. It runs the schema generator and exits — you can invoke it on a checkout that has never been pointed at a real codebase. + +The same files ship with this site: + +* xref:attachment$mrdocs.rng[mrdocs.rng] +* xref:attachment$mrdocs-dom-schema.json[mrdocs-dom-schema.json] + +They track the published version of MrDocs. + +== Validating XML output + +[source,bash] +---- +mrdocs --schemas=/tmp +xmllint --noout --relaxng /tmp/mrdocs.rng path/to/output.xml +---- + +The XML generator's own output is well-formed by construction. The more interesting use is validating XML produced by post-processing pipelines, hand-edited fixtures, or external tools that consume and re-emit the corpus. + +== Inspecting the template DOM + +Open `mrdocs-dom-schema.json` and read the `$defs` section. It enumerates every symbol kind, type kind, name kind, doc-comment block, and so on, and explains the shape and meaning of each field. JSON-Schema-aware editors give completion and hover documentation if you point them at the file. + +== Versioning + +Both schemas are generated from the C++ types in the corpus, so they always match the MrDocs binary that produced them. Adding a new field anywhere in the metadata model updates the schema at the next build with no separate maintenance step. If you pin to a particular MrDocs version, regenerate the schema files when you upgrade. diff --git a/docs/modules/ROOT/partials/bootstrap-options.adoc b/docs/modules/ROOT/partials/bootstrap-options.adoc index ef325e4476..9ae8c09c23 100644 --- a/docs/modules/ROOT/partials/bootstrap-options.adoc +++ b/docs/modules/ROOT/partials/bootstrap-options.adoc @@ -71,7 +71,6 @@ --ninja-path
(string)

Path to the Ninja executable. Ninja is the preferred CMake generator because it produces a compile_commands.json automatically; bootstrap discovers it on PATH by default.

--git-path
(string)

Path to Git. Required for cloning recipes and for the compilation-database CMake integration. Bootstrap discovers Git on PATH by default.

--python-path
(string)

Path to the Python interpreter recipes should use for any Python steps. Defaults to the interpreter currently running bootstrap.

---java-path
(string)

Path to a Java runtime. Required for the xml-lint test step when --build-tests is on; ignored otherwise.

++++ diff --git a/docs/modules/ROOT/partials/mrdocs-dom-schema.json b/docs/modules/ROOT/partials/mrdocs-dom-schema.json new file mode 120000 index 0000000000..d4f071a56a --- /dev/null +++ b/docs/modules/ROOT/partials/mrdocs-dom-schema.json @@ -0,0 +1 @@ +../../../mrdocs-dom-schema.json \ No newline at end of file diff --git a/docs/mrdocs-dom-schema.json b/docs/mrdocs-dom-schema.json new file mode 100644 index 0000000000..2f7c3f479d --- /dev/null +++ b/docs/mrdocs-dom-schema.json @@ -0,0 +1,5591 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "MrDocs DOM Schema", + "description": "Schema for the DOM objects available to Handlebars templates in the MrDocs documentation generator.", + "oneOf": [ + { + "$ref": "#/$defs/NamespaceSymbol" + }, + { + "$ref": "#/$defs/RecordSymbol" + }, + { + "$ref": "#/$defs/FunctionSymbol" + }, + { + "$ref": "#/$defs/OverloadsSymbol" + }, + { + "$ref": "#/$defs/EnumSymbol" + }, + { + "$ref": "#/$defs/EnumConstantSymbol" + }, + { + "$ref": "#/$defs/TypedefSymbol" + }, + { + "$ref": "#/$defs/VariableSymbol" + }, + { + "$ref": "#/$defs/GuideSymbol" + }, + { + "$ref": "#/$defs/NamespaceAliasSymbol" + }, + { + "$ref": "#/$defs/UsingSymbol" + }, + { + "$ref": "#/$defs/ConceptSymbol" + } + ], + "$defs": { + "NamespaceSymbol": { + "type": "object", + "description": "A namespace declaration. The implicit global namespace appears as a namespace symbol with an empty name and no parent.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "isInline": { + "type": "boolean", + "description": "True if the namespace is declared `inline`." + }, + "isAnonymous": { + "type": "boolean", + "description": "True if the namespace has no name in source." + }, + "usingDirectives": { + "type": "array", + "items": { + "$ref": "#/$defs/Name" + }, + "description": "List of `using namespace` directives found in this namespace's scope." + }, + "members": { + "$ref": "#/$defs/NamespaceTranche", + "description": "All members of the namespace, grouped into tranches by kind." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "isInline", + "isAnonymous", + "usingDirectives", + "members", + "class" + ] + }, + "RecordSymbol": { + "type": "object", + "description": "A class, struct, or union declaration.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "keyKind": { + "type": "string", + "enum": [ + "struct", + "class", + "union" + ], + "description": "The introducing keyword: `\"class\"`, `\"struct\"`, or `\"union\"`." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Template head if this is a class template; absent for non-templates." + }, + "isTypeDef": { + "type": "boolean", + "description": "True when the record was introduced by an anonymous `typedef struct { ... } Name;` declaration." + }, + "isFinal": { + "type": "boolean", + "description": "True if the class is declared `final`." + }, + "isFinalDestructor": { + "type": "boolean", + "description": "True when the record's destructor is declared `final`." + }, + "bases": { + "type": "array", + "items": { + "$ref": "#/$defs/BaseInfo" + }, + "description": "Direct base classes, in declaration order." + }, + "derived": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of records that derive from this one and appear in the corpus." + }, + "interface": { + "$ref": "#/$defs/RecordInterface", + "description": "Per-access summary of the record's members (public, protected, private, plus aggregated views)." + }, + "friends": { + "type": "array", + "items": { + "$ref": "#/$defs/FriendInfo" + }, + "description": "List of friend declarations attached to the record." + }, + "isListedOnPrimary": { + "type": "boolean", + "description": "True when this is a record-template specialization rendered under its primary template and suppressed from the parent scope's listing." + }, + "specializations": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of the record-template specializations whose primary is this record template." + }, + "deductionGuides": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of the deduction guides for this record template." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "keyKind", + "isTypeDef", + "isFinal", + "isFinalDestructor", + "bases", + "derived", + "interface", + "friends", + "isListedOnPrimary", + "specializations", + "deductionGuides", + "class" + ] + }, + "FunctionSymbol": { + "type": "object", + "description": "A function declaration, including free functions, member functions, constructors, destructors, and user-defined operators.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "returnType": { + "$ref": "#/$defs/Type", + "description": "Return type. Absent for constructors and destructors." + }, + "params": { + "type": "array", + "items": { + "$ref": "#/$defs/Param" + }, + "description": "Function parameter list, in declaration order." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Template head if this is a function template; absent for non-templates." + }, + "funcClass": { + "type": "string", + "enum": [ + "normal", + "constructor", + "conversion", + "destructor" + ], + "description": "Special-function classification (`\"constructor\"`, `\"destructor\"`, `\"conversion\"`, etc.) or empty for ordinary functions." + }, + "noexcept": { + "type": "string", + "description": "Rendered `noexcept` specifier, if any." + }, + "requires": { + "type": "string", + "description": "Trailing `requires`-clause expression as written." + }, + "isVariadic": { + "type": "boolean", + "description": "True when the function accepts a C-style `...` argument list." + }, + "isDefaulted": { + "type": "boolean", + "description": "True when the function is `= default`." + }, + "isExplicitlyDefaulted": { + "type": "boolean", + "description": "True when the function carries an explicit `= default` in source (not just an implicit defaulted special member)." + }, + "isDeleted": { + "type": "boolean", + "description": "True when the function is `= delete` (whether written explicitly or implied by language rules)." + }, + "isDeletedAsWritten": { + "type": "boolean", + "description": "True only when the function is `= delete` as written in source; distinguishes user-deleted from implicitly deleted." + }, + "hasOverrideAttr": { + "type": "boolean", + "description": "True when the function carries the `override` specifier." + }, + "hasTrailingReturn": { + "type": "boolean", + "description": "True when the function uses trailing-return-type syntax (`auto ... -> T`)." + }, + "isExplicitObjectMemberFunction": { + "type": "boolean", + "description": "True when the function declares an explicit object parameter (deducing-this member function)." + }, + "constexpr": { + "type": "string", + "enum": [ + "none", + "constexpr", + "consteval" + ], + "description": "Constexpr level: `\"constexpr\"`, `\"consteval\"`, or empty." + }, + "overloadedOperator": { + "type": "string", + "description": "Overloaded operator name (e.g. `\"operator+\"`) or empty if not an operator." + }, + "storageClass": { + "type": "string", + "enum": [ + "none", + "extern", + "static", + "auto", + "register" + ], + "description": "Storage class: `\"static\"`, `\"extern\"`, etc., or empty." + }, + "isRecordMethod": { + "type": "boolean", + "description": "True when the function is a member of a class, struct, or union." + }, + "isVirtual": { + "type": "boolean", + "description": "True when the function is virtual (whether by `virtual` keyword or by overriding a virtual function)." + }, + "isVirtualAsWritten": { + "type": "boolean", + "description": "True only when the `virtual` keyword appears in source." + }, + "isPure": { + "type": "boolean", + "description": "True when the function is pure virtual (`= 0`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the function is a `const` member function." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the function is a `volatile` member function." + }, + "isFinal": { + "type": "boolean", + "description": "True when the function is declared `final`." + }, + "refQualifier": { + "type": "string", + "description": "Reference qualifier on the implicit object parameter: `\"&\"`, `\"&&\"`, or empty." + }, + "explicit": { + "type": "string", + "description": "Rendered `explicit` specifier (with optional condition) for constructors and conversion functions." + }, + "functionObjectImpl": { + "type": "string", + "description": "Identifier of the function object this function is the call-operator implementation of, when the `auto-function-objects` feature recognized it as such; empty otherwise." + }, + "isListedOnPrimary": { + "type": "boolean", + "description": "True when this is a function-template specialization rendered under its primary template and suppressed from the parent scope's listing." + }, + "specializations": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of the function-template specializations whose primary is this function template." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "returnType", + "params", + "funcClass", + "noexcept", + "isVariadic", + "isDefaulted", + "isExplicitlyDefaulted", + "isDeleted", + "isDeletedAsWritten", + "hasOverrideAttr", + "hasTrailingReturn", + "isExplicitObjectMemberFunction", + "overloadedOperator", + "isRecordMethod", + "isVirtual", + "isVirtualAsWritten", + "isPure", + "isConst", + "isVolatile", + "isFinal", + "explicit", + "isListedOnPrimary", + "specializations", + "class" + ] + }, + "OverloadsSymbol": { + "type": "object", + "description": "An aggregate of overloaded functions sharing a name. Used to group overload sets in the corpus.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "funcClass": { + "type": "string", + "enum": [ + "normal", + "constructor", + "conversion", + "destructor" + ], + "description": "Shared special-function classification of the overload set, when applicable." + }, + "overloadedOperator": { + "type": "string", + "description": "Shared overloaded-operator name when the overload set is for an operator." + }, + "members": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of the function declarations belonging to this overload set." + }, + "returnType": { + "$ref": "#/$defs/Type", + "description": "Common return type when every overload shares it; absent otherwise." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "funcClass", + "overloadedOperator", + "members", + "returnType", + "class" + ] + }, + "EnumSymbol": { + "type": "object", + "description": "An enum declaration (scoped or unscoped).", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "scoped": { + "type": "boolean", + "description": "True for `enum class` / `enum struct`; false for unscoped enums." + }, + "underlyingType": { + "$ref": "#/$defs/Type", + "description": "Underlying integer type, when an explicit one was specified." + }, + "constants": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Identifiers of the enum's constants, in declaration order." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "scoped", + "constants", + "class" + ] + }, + "EnumConstantSymbol": { + "type": "object", + "description": "A single enumerator within an enum declaration.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "initializer": { + "type": "string", + "description": "Initializer expression as written, or empty when the enumerator takes its implicit value." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "class" + ] + }, + "TypedefSymbol": { + "type": "object", + "description": "A type alias declaration (`typedef` or `using`).", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "type": { + "$ref": "#/$defs/Type", + "description": "Aliased type." + }, + "isUsing": { + "type": "boolean", + "description": "True for `using`-style aliases; false for the `typedef` keyword." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Template head if this is an alias template; absent for non-templates." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "type", + "isUsing", + "class" + ] + }, + "VariableSymbol": { + "type": "object", + "description": "A variable declaration: namespace-scope variable, static data member, or non-static data member.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "type": { + "$ref": "#/$defs/Type", + "description": "Declared type of the variable." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Template head if this is a variable template." + }, + "initializer": { + "type": "string", + "description": "Initializer expression as written, or empty when the variable has no initializer." + }, + "storageClass": { + "type": "string", + "enum": [ + "none", + "extern", + "static", + "auto", + "register" + ], + "description": "Storage class: `\"static\"`, `\"extern\"`, `\"thread_local\"`, etc., or empty." + }, + "isInline": { + "type": "boolean", + "description": "True when the variable is declared `inline`." + }, + "isConstexpr": { + "type": "boolean", + "description": "True when the variable is declared `constexpr`." + }, + "isConstinit": { + "type": "boolean", + "description": "True when the variable is declared `constinit`." + }, + "isThreadLocal": { + "type": "boolean", + "description": "True when the variable has thread-storage duration." + }, + "isRecordField": { + "type": "boolean", + "description": "True when the variable is a non-static data member of a class, struct, or union." + }, + "isMutable": { + "type": "boolean", + "description": "True when the data member is declared `mutable`." + }, + "isVariant": { + "type": "boolean", + "description": "True when the data member is part of an anonymous union." + }, + "isBitfield": { + "type": "boolean", + "description": "True when the data member is a bit-field." + }, + "bitfieldWidth": { + "type": "string", + "description": "Bit-field width expression, when the member is a bit-field." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "type", + "isInline", + "isConstexpr", + "isConstinit", + "isThreadLocal", + "isRecordField", + "isMutable", + "isVariant", + "isBitfield", + "class" + ] + }, + "GuideSymbol": { + "type": "object", + "description": "A user-provided class-template deduction guide.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "deduced": { + "$ref": "#/$defs/Type", + "description": "Deduced class-template specialization the guide produces." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Template parameters of the deduction guide." + }, + "params": { + "type": "array", + "items": { + "$ref": "#/$defs/Param" + }, + "description": "Parameter list used for argument deduction." + }, + "explicit": { + "type": "string", + "description": "Rendered `explicit` specifier, if any." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "deduced", + "params", + "explicit", + "class" + ] + }, + "NamespaceAliasSymbol": { + "type": "object", + "description": "A namespace-alias declaration (`namespace alias = target;`).", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "aliasedSymbol": { + "$ref": "#/$defs/IdentifierName", + "description": "Reference to the namespace this alias refers to." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "aliasedSymbol", + "class" + ] + }, + "UsingSymbol": { + "type": "object", + "description": "A `using`-declaration (introduces names from another scope, including using-enum).", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "introducedName": { + "$ref": "#/$defs/Name", + "description": "Name introduced into the current scope, qualified by the source scope." + }, + "shadowDeclarations": { + "type": "array", + "items": { + "type": "string", + "description": "Base64-encoded symbol ID" + }, + "description": "Symbols brought into scope by the using-declaration." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "class", + "introducedName", + "shadowDeclarations", + "class" + ] + }, + "ConceptSymbol": { + "type": "object", + "description": "A concept declaration.", + "properties": { + "name": { + "type": "string", + "description": "Unqualified name of the symbol, as written in the source." + }, + "loc": { + "type": "string", + "description": "Source location information for the symbol's declaration and definition." + }, + "kind": { + "type": "string", + "enum": [ + "namespace", + "record", + "function", + "overloads", + "enum", + "enum-constant", + "typedef", + "variable", + "guide", + "namespace-alias", + "using", + "concept" + ], + "description": "Discriminator selecting the symbol kind (e.g. `\"function\"`, `\"record\"`). Each concrete symbol type constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Stable, base64-encoded identifier used for cross-references between DOM objects." + }, + "access": { + "type": "string", + "enum": [ + "none", + "public", + "protected", + "private" + ], + "description": "Access specifier (`\"public\"`, `\"protected\"`, `\"private\"`); empty for namespace-scope members." + }, + "extraction": { + "type": "string", + "enum": [ + "regular", + "see-below", + "implementation-defined", + "dependency" + ], + "description": "Why the symbol was extracted: `\"regular\"`, `\"see-below\"`, `\"implementation-defined\"`, or `\"dependency\"`." + }, + "isCopyFromInherited": { + "type": "boolean", + "description": "True when the symbol is a synthesized copy of an inherited member (see the `inherit-base-members` configuration option)." + }, + "parent": { + "type": "string", + "description": "Identifier of the enclosing scope, or empty when the symbol lives in the global namespace." + }, + "doc": { + "$ref": "#/$defs/DocComment", + "description": "Parsed documentation comment attached to the symbol, or absent when the symbol is undocumented." + }, + "attributes": { + "type": "array", + "items": { + "$ref": "#/$defs/Attribute" + }, + "description": "C++ attributes attached to the declaration, in source order." + }, + "template": { + "$ref": "#/$defs/TemplateInfo", + "description": "Concept's template parameter list." + }, + "constraint": { + "type": "string", + "description": "Constraint expression that defines the concept." + }, + "class": { + "type": "string", + "const": "symbol", + "description": "Tag set to the literal `\"symbol\"`. Lets templates discriminate symbol DOM objects from auxiliary types (`type`, `name`, etc.) without inspecting `kind`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "loc", + "kind", + "id", + "access", + "extraction", + "isCopyFromInherited", + "parent", + "attributes", + "class" + ] + }, + "NamedType": { + "type": "object", + "description": "A type referred to by name (a class, an enum, a typedef, or a fundamental type like `int`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "name": { + "$ref": "#/$defs/Name", + "description": "The name as written, including any qualifications and template arguments." + }, + "fundamentalType": { + "type": "string", + "description": "Fundamental-type tag (`\"int\"`, `\"double\"`, ...) when the named type is a built-in type; empty otherwise." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "name" + ] + }, + "DecltypeType": { + "type": "object", + "description": "A type expressed as `decltype(expr)`.", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "operand": { + "type": "string", + "description": "The expression inside `decltype(...)`." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints" + ] + }, + "AutoType": { + "type": "object", + "description": "A placeholder type introduced by `auto` or `decltype(auto)`.", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "keyword": { + "type": "string", + "description": "Which placeholder was used: `\"auto\"` or `\"decltype(auto)\"`." + }, + "constraint": { + "$ref": "#/$defs/Name", + "description": "Concept constraint applied to the placeholder, if any." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "keyword" + ] + }, + "LValueReferenceType": { + "type": "object", + "description": "An lvalue-reference type (`T&`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "pointeeType": { + "$ref": "#/$defs/Type", + "description": "The referenced type." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "pointeeType" + ] + }, + "RValueReferenceType": { + "type": "object", + "description": "An rvalue-reference type (`T&&`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "pointeeType": { + "$ref": "#/$defs/Type", + "description": "The referenced type." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "pointeeType" + ] + }, + "PointerType": { + "type": "object", + "description": "A pointer type (`T*`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "pointeeType": { + "$ref": "#/$defs/Type", + "description": "The pointed-to type." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "pointeeType" + ] + }, + "MemberPointerType": { + "type": "object", + "description": "A pointer-to-member type (`T C::*`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "parentType": { + "$ref": "#/$defs/Type", + "description": "The class type the pointer is a member of." + }, + "pointeeType": { + "$ref": "#/$defs/Type", + "description": "The type of the member being pointed to." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "parentType", + "pointeeType" + ] + }, + "ArrayType": { + "type": "object", + "description": "An array type (`T[N]`).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "elementType": { + "$ref": "#/$defs/Type", + "description": "The element type." + }, + "bounds": { + "type": "string", + "description": "Array bound expression as written, or empty for unknown-bound arrays." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "elementType" + ] + }, + "FunctionType": { + "type": "object", + "description": "A function type (used for function pointers, pointers-to-members, etc.).", + "properties": { + "kind": { + "type": "string", + "description": "Discriminator selecting the type kind. Each concrete type constrains this field to a single literal value." + }, + "isPackExpansion": { + "type": "boolean", + "description": "True when the type appears as the pattern of a pack expansion (`T...`)." + }, + "isConst": { + "type": "boolean", + "description": "True when the type carries a top-level `const` qualifier." + }, + "isVolatile": { + "type": "boolean", + "description": "True when the type carries a top-level `volatile` qualifier." + }, + "constraints": { + "type": "array", + "items": { + "type": "string", + "description": "C++ expression as written" + }, + "description": "Constraint expressions associated with the type, such as those discovered by SFINAE detection around `std::enable_if_t<..., T>`." + }, + "returnType": { + "$ref": "#/$defs/Type", + "description": "The return type." + }, + "paramTypes": { + "type": "array", + "items": { + "$ref": "#/$defs/Type" + }, + "description": "Parameter types, in declaration order." + }, + "refQualifier": { + "type": "string", + "description": "Reference qualifier on the implicit object parameter (for member-function types): `\"&\"`, `\"&&\"`, or empty." + }, + "exceptionSpec": { + "type": "string", + "description": "Rendered exception specification, if any." + }, + "isVariadic": { + "type": "boolean", + "description": "True when the function type accepts a C-style `...` argument list." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isPackExpansion", + "isConst", + "isVolatile", + "constraints", + "returnType", + "paramTypes", + "exceptionSpec", + "isVariadic" + ] + }, + "IdentifierName": { + "type": "object", + "description": "A plain (possibly qualified) name without template arguments, e.g. `std::vector` or `MyClass::nested`.", + "properties": { + "kind": { + "type": "string", + "enum": [ + "identifier", + "specialization" + ], + "description": "Discriminator selecting the name kind. Each concrete name constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Identifier of the named symbol when it lives in the corpus; empty when the name refers to something outside it." + }, + "identifier": { + "type": "string", + "description": "Unqualified spelling of the name, as written in the source." + }, + "prefix": { + "$ref": "#/$defs/Name", + "description": "Qualifying prefix (the `A::B::` part of `A::B::Name`); absent when the name is unqualified." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "id" + ] + }, + "SpecializationName": { + "type": "object", + "description": "A template-id: a name applied to template arguments, e.g. `std::vector` or `Outer::Inner`.", + "properties": { + "kind": { + "type": "string", + "enum": [ + "identifier", + "specialization" + ], + "description": "Discriminator selecting the name kind. Each concrete name constrains this field to a single literal value." + }, + "id": { + "type": "string", + "description": "Identifier of the named symbol when it lives in the corpus; empty when the name refers to something outside it." + }, + "identifier": { + "type": "string", + "description": "Unqualified spelling of the name, as written in the source." + }, + "prefix": { + "$ref": "#/$defs/Name", + "description": "Qualifying prefix (the `A::B::` part of `A::B::Name`); absent when the name is unqualified." + }, + "templateArgs": { + "type": "array", + "items": { + "$ref": "#/$defs/TArg" + }, + "description": "Template arguments applied to the name, in declaration order." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "id", + "templateArgs" + ] + }, + "TypeTParam": { + "type": "object", + "description": "A type template parameter (`template ` or `template `).", + "properties": { + "kind": { + "type": "string", + "enum": [ + "type", + "constant", + "template" + ], + "description": "Discriminator selecting the template-parameter kind. Each concrete TParam constrains this field to a single literal value." + }, + "name": { + "type": "string", + "description": "Parameter name as written; empty for unnamed template parameters." + }, + "isParameterPack": { + "type": "boolean", + "description": "True when the template parameter is a parameter pack (`typename... Ts`, `int... Ns`, etc.)." + }, + "default": { + "$ref": "#/$defs/TArg", + "description": "Default argument expression as written; absent when the parameter has no default." + }, + "keyKind": { + "type": "string", + "enum": [ + "class", + "typename" + ], + "description": "Introducing keyword: `\"typename\"` or `\"class\"`." + }, + "constraint": { + "$ref": "#/$defs/Name", + "description": "Concept constraint applied to the parameter, if any." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isParameterPack", + "keyKind" + ] + }, + "ConstantTParam": { + "type": "object", + "description": "A non-type template parameter (`template `, `template `, ...).", + "properties": { + "kind": { + "type": "string", + "enum": [ + "type", + "constant", + "template" + ], + "description": "Discriminator selecting the template-parameter kind. Each concrete TParam constrains this field to a single literal value." + }, + "name": { + "type": "string", + "description": "Parameter name as written; empty for unnamed template parameters." + }, + "isParameterPack": { + "type": "boolean", + "description": "True when the template parameter is a parameter pack (`typename... Ts`, `int... Ns`, etc.)." + }, + "default": { + "$ref": "#/$defs/TArg", + "description": "Default argument expression as written; absent when the parameter has no default." + }, + "type": { + "$ref": "#/$defs/Type", + "description": "Declared type of the parameter." + }, + "$meta": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "bases": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "required": [ + "kind", + "isParameterPack", + "type" + ] + }, + "TemplateTParam": { + "type": "object", + "description": "A template template parameter (`template @@ -204,11 +204,11 @@ - + identifier YrPSaKAbmXgzCAX5WByx4eVoqBM= A - + normal @@ -254,11 +254,25 @@ - + specialization Xw0FzsI74YygQXKG0MGYooG1ALg= SmallVector - + + type + + + identifier + YrPSaKAbmXgzCAX5WByx4eVoqBM= + A + + + + + constant + 3 + + normal @@ -304,11 +318,21 @@ - + specialization WLbdUmKVwrFg6XIcb9E1rmv/6pg= Result - + + type + + + identifier + YrPSaKAbmXgzCAX5WByx4eVoqBM= + A + + + + normal diff --git a/test-files/golden-tests/config/base-url/base-url.xml b/test-files/golden-tests/config/base-url/base-url.xml index 2840f0f84d..bbf19c27e6 100644 --- a/test-files/golden-tests/config/base-url/base-url.xml +++ b/test-files/golden-tests/config/base-url/base-url.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -26,10 +26,10 @@ regular //////////////////////////8= - + identifier void - + normal diff --git a/test-files/golden-tests/config/base-url/out-of-tree-base.xml b/test-files/golden-tests/config/base-url/out-of-tree-base.xml index fa8825b1c5..53779fc1ee 100644 --- a/test-files/golden-tests/config/base-url/out-of-tree-base.xml +++ b/test-files/golden-tests/config/base-url/out-of-tree-base.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -57,12 +57,13 @@ struct - + identifier BmCrcf+XE+ozOs7VIbREWw02pf0= ExternalBase - + + public @@ -87,6 +88,7 @@ function r2FT8w6tN0syeB7bck2xfwAZX28= + public regular 1 yXfQfCJQf6SvVQYn4gaA2krC8tk= @@ -100,10 +102,10 @@ - + identifier void - + normal 1 @@ -121,6 +123,7 @@ function 1DlxDyIhnIUKFbQOs4tQMjoMTgM= + public regular yXfQfCJQf6SvVQYn4gaA2krC8tk= @@ -133,10 +136,10 @@ - + identifier void - + normal 1 diff --git a/test-files/golden-tests/config/extract-all/no-extract-all.xml b/test-files/golden-tests/config/extract-all/no-extract-all.xml index 8d34ff97cb..0bfac13b15 100644 --- a/test-files/golden-tests/config/extract-all/no-extract-all.xml +++ b/test-files/golden-tests/config/extract-all/no-extract-all.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -37,10 +37,10 @@ - + identifier void - + normal @@ -69,10 +69,10 @@ - + identifier void - + normal diff --git a/test-files/golden-tests/config/extract-all/warn-when-undocumented.xml b/test-files/golden-tests/config/extract-all/warn-when-undocumented.xml index f35b24be08..0a53f684ec 100644 --- a/test-files/golden-tests/config/extract-all/warn-when-undocumented.xml +++ b/test-files/golden-tests/config/extract-all/warn-when-undocumented.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -71,10 +71,10 @@ - + identifier void - + normal diff --git a/test-files/golden-tests/config/extract-empty-namespaces/no-extract-empty-namespaces.xml b/test-files/golden-tests/config/extract-empty-namespaces/no-extract-empty-namespaces.xml index 4744addf1e..56a134e471 100644 --- a/test-files/golden-tests/config/extract-empty-namespaces/no-extract-empty-namespaces.xml +++ b/test-files/golden-tests/config/extract-empty-namespaces/no-extract-empty-namespaces.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> diff --git a/test-files/golden-tests/config/extract-friends/extract-friends.xml b/test-files/golden-tests/config/extract-friends/extract-friends.xml index db3644351b..b90251fa6c 100644 --- a/test-files/golden-tests/config/extract-friends/extract-friends.xml +++ b/test-files/golden-tests/config/extract-friends/extract-friends.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -88,11 +88,11 @@ type - + identifier YrPSaKAbmXgzCAX5WByx4eVoqBM= A - + PJd7qch01fTpaC83fxeMwg+clc0= @@ -120,28 +120,30 @@ function oizNQDy8La+BwcGOBpMPC63TA5U= + public regular jTCZUvygQOxo6L+VfFZcAI6KU0Y= - + identifier unsigned long long - + 1 - + identifier YrPSaKAbmXgzCAX5WByx4eVoqBM= A - + rhs normal + noexcept 1 1 @@ -170,16 +172,26 @@ - + specialization jTCZUvygQOxo6L+VfFZcAI6KU0Y= hash - + identifier eIvg7iueGIPcE8p1NVfngsp2ojw= std - - + + + type + + + identifier + YrPSaKAbmXgzCAX5WByx4eVoqBM= + A + + + + jTCZUvygQOxo6L+VfFZcAI6KU0Y= diff --git a/test-files/golden-tests/config/extract-friends/no-extract-friends.xml b/test-files/golden-tests/config/extract-friends/no-extract-friends.xml index 783eb57cb9..9242e01f12 100644 --- a/test-files/golden-tests/config/extract-friends/no-extract-friends.xml +++ b/test-files/golden-tests/config/extract-friends/no-extract-friends.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -88,11 +88,11 @@ type - + identifier YrPSaKAbmXgzCAX5WByx4eVoqBM= A - + PJd7qch01fTpaC83fxeMwg+clc0= @@ -120,28 +120,30 @@ function oizNQDy8La+BwcGOBpMPC63TA5U= + public regular jTCZUvygQOxo6L+VfFZcAI6KU0Y= - + identifier unsigned long long - + 1 - + identifier YrPSaKAbmXgzCAX5WByx4eVoqBM= A - + rhs normal + noexcept 1 1 diff --git a/test-files/golden-tests/config/extract-implicit-specializations/base.xml b/test-files/golden-tests/config/extract-implicit-specializations/base.xml index 1f3c4d72d0..06514d0452 100644 --- a/test-files/golden-tests/config/extract-implicit-specializations/base.xml +++ b/test-files/golden-tests/config/extract-implicit-specializations/base.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -29,12 +29,13 @@ struct - + identifier 3JsK1DO0O+wZhv+0meptQrbs3fY= B - + + public @@ -58,13 +59,14 @@ function TokaYJ9UI6a6x0IfsXTGliIuJ9k= + public regular 3JsK1DO0O+wZhv+0meptQrbs3fY= - + identifier int - + normal 1 @@ -107,13 +109,14 @@ function TokaYJ9UI6a6x0IfsXTGliIuJ9k= + public regular 3JsK1DO0O+wZhv+0meptQrbs3fY= - + identifier int - + normal 1 diff --git a/test-files/golden-tests/config/extract-implicit-specializations/extract-implicit-specializations.xml b/test-files/golden-tests/config/extract-implicit-specializations/extract-implicit-specializations.xml index 85b0d5062a..946ab10646 100644 --- a/test-files/golden-tests/config/extract-implicit-specializations/extract-implicit-specializations.xml +++ b/test-files/golden-tests/config/extract-implicit-specializations/extract-implicit-specializations.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -30,12 +30,22 @@ struct - + specialization Bu/3QcmNOdsc7RSM3OKHnuCxGPU= B - + + type + + + identifier + int + + + + + public @@ -59,15 +69,16 @@ function i2Kh9WfDseks8Lnr/kapVaR9r4g= + public regular 1 YrPSaKAbmXgzCAX5WByx4eVoqBM= - + identifier int - + normal @@ -118,14 +129,15 @@ function yNvFAvs6ngp6sqCFBzu5nPSIyfk= + public regular Bu/3QcmNOdsc7RSM3OKHnuCxGPU= - + identifier T - + normal diff --git a/test-files/golden-tests/config/extract-implicit-specializations/no-extract-implicit-specializations.xml b/test-files/golden-tests/config/extract-implicit-specializations/no-extract-implicit-specializations.xml index af53aa5d12..e137c95e86 100644 --- a/test-files/golden-tests/config/extract-implicit-specializations/no-extract-implicit-specializations.xml +++ b/test-files/golden-tests/config/extract-implicit-specializations/no-extract-implicit-specializations.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -30,12 +30,22 @@ struct - + specialization Bu/3QcmNOdsc7RSM3OKHnuCxGPU= B - + + type + + + identifier + int + + + + + public @@ -59,14 +69,15 @@ function yNvFAvs6ngp6sqCFBzu5nPSIyfk= + public regular Bu/3QcmNOdsc7RSM3OKHnuCxGPU= - + identifier T - + normal @@ -117,14 +128,15 @@ function yNvFAvs6ngp6sqCFBzu5nPSIyfk= + public regular Bu/3QcmNOdsc7RSM3OKHnuCxGPU= - + identifier T - + normal diff --git a/test-files/golden-tests/config/extract-local-classes/extract-local-classes.xml b/test-files/golden-tests/config/extract-local-classes/extract-local-classes.xml index a6f46e5e3f..c256064aaf 100644 --- a/test-files/golden-tests/config/extract-local-classes/extract-local-classes.xml +++ b/test-files/golden-tests/config/extract-local-classes/extract-local-classes.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -76,10 +76,10 @@ regular //////////////////////////8= - + identifier void - + normal diff --git a/test-files/golden-tests/config/extract-local-classes/no-extract-local-classes.xml b/test-files/golden-tests/config/extract-local-classes/no-extract-local-classes.xml index 2cf55f1033..85d29f906b 100644 --- a/test-files/golden-tests/config/extract-local-classes/no-extract-local-classes.xml +++ b/test-files/golden-tests/config/extract-local-classes/no-extract-local-classes.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -26,10 +26,10 @@ regular //////////////////////////8= - + identifier void - + normal diff --git a/test-files/golden-tests/config/extract-private-virtual/extract-private-virtual.xml b/test-files/golden-tests/config/extract-private-virtual/extract-private-virtual.xml index e107e60520..5f6f2baf05 100644 --- a/test-files/golden-tests/config/extract-private-virtual/extract-private-virtual.xml +++ b/test-files/golden-tests/config/extract-private-virtual/extract-private-virtual.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -49,13 +49,14 @@ function hLXvGC+nOrLQRH9lODKkgi/oUas= + public regular YrPSaKAbmXgzCAX5WByx4eVoqBM= - + identifier void - + normal 1 @@ -74,13 +75,14 @@ function IWP5ktgJAZgjufMQ6EE1eb6mm9g= + private regular YrPSaKAbmXgzCAX5WByx4eVoqBM= - + identifier void - + normal 1 diff --git a/test-files/golden-tests/config/extract-private-virtual/no-extract-private-virtual.xml b/test-files/golden-tests/config/extract-private-virtual/no-extract-private-virtual.xml index 0a275370d5..3507adbecc 100644 --- a/test-files/golden-tests/config/extract-private-virtual/no-extract-private-virtual.xml +++ b/test-files/golden-tests/config/extract-private-virtual/no-extract-private-virtual.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -48,13 +48,14 @@ function hLXvGC+nOrLQRH9lODKkgi/oUas= + public regular YrPSaKAbmXgzCAX5WByx4eVoqBM= - + identifier void - + normal 1 diff --git a/test-files/golden-tests/config/include-symbols/global-symbol-excluded.xml b/test-files/golden-tests/config/include-symbols/global-symbol-excluded.xml index c535dd8828..0eb023493f 100644 --- a/test-files/golden-tests/config/include-symbols/global-symbol-excluded.xml +++ b/test-files/golden-tests/config/include-symbols/global-symbol-excluded.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> diff --git a/test-files/golden-tests/config/include-symbols/using-external-base-docs.xml b/test-files/golden-tests/config/include-symbols/using-external-base-docs.xml index b78ea4a91e..96da772e69 100644 --- a/test-files/golden-tests/config/include-symbols/using-external-base-docs.xml +++ b/test-files/golden-tests/config/include-symbols/using-external-base-docs.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> diff --git a/test-files/golden-tests/config/inherit-base-members/base-overload-set.xml b/test-files/golden-tests/config/inherit-base-members/base-overload-set.xml index 44531633fc..0fddfd2c8c 100644 --- a/test-files/golden-tests/config/inherit-base-members/base-overload-set.xml +++ b/test-files/golden-tests/config/inherit-base-members/base-overload-set.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -30,12 +30,13 @@ class - + identifier 2iD5AHuu7qrCVJnAauz4We2QkKU= ConstBase - + + public BrX2oZup9qgy4SfJloKCuUYZshA= @@ -66,6 +67,7 @@ overloads QHJvDmodINf8DNWem4Zc6XU8nvk= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= normal @@ -73,10 +75,10 @@ hbsgojOPl9JVh9Nb8C7b2dZ389k= - + identifier int - + @@ -92,14 +94,15 @@ function pSUoXAwvwzBmhWkB1ABLnXwZdkY= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= - + identifier int - + normal @@ -117,14 +120,15 @@ function hbsgojOPl9JVh9Nb8C7b2dZ389k= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= - + identifier int - + normal @@ -148,12 +152,13 @@ class - + identifier ZIHuevKEF1ZlGviVwUZq1CEFBRc= Base - + + public @@ -183,6 +188,7 @@ overloads QHJvDmodINf8DNWem4Zc6XU8nvk= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= normal @@ -190,10 +196,10 @@ hbsgojOPl9JVh9Nb8C7b2dZ389k= - + identifier int - + @@ -209,14 +215,15 @@ function pSUoXAwvwzBmhWkB1ABLnXwZdkY= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= - + identifier int - + normal @@ -234,14 +241,15 @@ function hbsgojOPl9JVh9Nb8C7b2dZ389k= + public regular ZIHuevKEF1ZlGviVwUZq1CEFBRc= - + identifier int - + normal @@ -286,14 +294,15 @@ function Q5DcZVrEwKvh1JSM5lUHNrOvQlU= + public regular 2iD5AHuu7qrCVJnAauz4We2QkKU= - + identifier int - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml index 0f436fdeba..194db2eef4 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -43,12 +43,13 @@ class - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + + public ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -81,6 +82,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -101,11 +103,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -124,6 +126,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -144,11 +147,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -167,6 +170,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -187,11 +191,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -210,6 +214,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -230,11 +235,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -253,6 +258,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -273,11 +279,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -296,6 +302,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -316,11 +323,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -339,6 +346,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -359,11 +367,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -382,6 +390,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -402,11 +411,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -462,6 +471,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -482,11 +492,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -505,6 +515,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -525,11 +536,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -562,21 +573,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + public - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + public @@ -612,6 +625,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -632,11 +646,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -655,6 +669,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -675,11 +690,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -698,6 +713,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -718,11 +734,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -741,6 +757,7 @@ function MGQhB2O6ghdJWit6wao+PsH30Ew= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -761,11 +778,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -784,6 +801,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -804,11 +822,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -827,6 +845,7 @@ function rTSnS8Pv8GoWusQQE42y0pgN4cw= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -847,11 +866,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -870,6 +889,7 @@ function P1Eq799RJkNMSTci+0jy+ZejsyU= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -884,11 +904,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -907,6 +927,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -927,11 +948,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -950,6 +971,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -970,11 +992,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -993,6 +1015,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1013,11 +1036,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1036,6 +1059,7 @@ function oW3pQYXjjv2wrXIwIceF6Xd8nTA= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1050,11 +1074,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1073,6 +1097,7 @@ function IYnrJp6ur6C+AiuhFl5x1YPnxkM= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1087,11 +1112,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1124,21 +1149,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + private - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + private @@ -1164,6 +1191,7 @@ function 9wqRoOH7cwNhkz5vwpTHLeb01BY= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1184,11 +1212,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1207,6 +1235,7 @@ function NJYWKnKWmizdaSr1ldC7FGh7fD0= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1227,11 +1256,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1264,21 +1293,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + protected - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + protected @@ -1315,6 +1346,7 @@ function oVVGDloOS5F7d4VIcKLc0YpnsiE= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1335,11 +1367,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1358,6 +1390,7 @@ function 4ZJznHda5QNdk/tsMca4Psswlj0= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1378,11 +1411,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1401,6 +1434,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1421,11 +1455,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1444,6 +1478,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1464,11 +1499,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1487,6 +1522,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1507,11 +1543,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1530,6 +1566,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1550,11 +1587,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1573,6 +1610,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1593,11 +1631,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1616,6 +1654,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1636,11 +1675,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1659,6 +1698,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1679,11 +1719,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1702,6 +1742,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1722,11 +1763,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1745,6 +1786,7 @@ function KdkXQxu2xOfAXegJgCMmLcFq8MM= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1759,11 +1801,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1782,6 +1824,7 @@ function UysvazUbtV39Omg33c9Me+Gri/M= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1796,11 +1839,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1819,6 +1862,7 @@ function H8wEIL8+8s3iNqadfPsH1HWRQU4= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1833,11 +1877,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/copy.xml b/test-files/golden-tests/config/inherit-base-members/copy.xml index c14839ab4e..ecd49b62fb 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -43,12 +43,13 @@ class - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + + public ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -81,6 +82,7 @@ function kuwWLj5gwO5grGVaKw+6QPB7t2k= + public regular 1 sk8HTAQHhzXfZej4IJliADonAJQ= @@ -102,11 +104,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -125,6 +127,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -145,11 +148,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -168,6 +171,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -188,11 +192,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -211,6 +215,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -231,11 +236,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -254,6 +259,7 @@ function QFvlG37sjpI5QZrNwpdQ06VrrSM= + public regular 1 sk8HTAQHhzXfZej4IJliADonAJQ= @@ -275,11 +281,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -298,6 +304,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -318,11 +325,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -341,6 +348,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -361,11 +369,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -384,6 +392,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -404,11 +413,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -464,6 +473,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -484,11 +494,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -507,6 +517,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -527,11 +538,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -564,21 +575,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + public - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + public @@ -614,6 +627,7 @@ function Tt5J064ctbXRBv/qZbRJxCebPs0= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -635,11 +649,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -658,6 +672,7 @@ function Ew/9fVRXcBGEFLrWpdrt3lktMto= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -679,11 +694,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -702,6 +717,7 @@ function VrpbGEQk6hRwzmAJBudLSCOZh7Y= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -723,11 +739,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -746,6 +762,7 @@ function MGQhB2O6ghdJWit6wao+PsH30Ew= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -766,11 +783,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -789,6 +806,7 @@ function 3vFJsBKleDdECAQKJp6m7566RQQ= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -810,11 +828,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -833,6 +851,7 @@ function rTSnS8Pv8GoWusQQE42y0pgN4cw= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -853,11 +872,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -876,6 +895,7 @@ function P1Eq799RJkNMSTci+0jy+ZejsyU= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -890,11 +910,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -913,6 +933,7 @@ function J8r4aXb9++EldZDgHmv2rU2GhW0= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -934,11 +955,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -957,6 +978,7 @@ function TeAnpSrYd1HafyFwmcm4jG6bj2w= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -978,11 +1000,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1001,6 +1023,7 @@ function 1BMmFoheKBz9kYkFKzXHyfWZMQg= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1022,11 +1045,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1045,6 +1068,7 @@ function oW3pQYXjjv2wrXIwIceF6Xd8nTA= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1059,11 +1083,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1082,6 +1106,7 @@ function IYnrJp6ur6C+AiuhFl5x1YPnxkM= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1096,11 +1121,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1133,21 +1158,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + private - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + private @@ -1173,6 +1200,7 @@ function 9wqRoOH7cwNhkz5vwpTHLeb01BY= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1193,11 +1221,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1216,6 +1244,7 @@ function NJYWKnKWmizdaSr1ldC7FGh7fD0= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1236,11 +1265,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1273,21 +1302,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + protected - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + protected @@ -1324,6 +1355,7 @@ function oVVGDloOS5F7d4VIcKLc0YpnsiE= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1344,11 +1376,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1367,6 +1399,7 @@ function 4ZJznHda5QNdk/tsMca4Psswlj0= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1387,11 +1420,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1410,6 +1443,7 @@ function fmeE0HcB3oP1daboxYZOH/pxDwU= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1431,11 +1465,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1454,6 +1488,7 @@ function vIj2+WtgSIJo5ner9NMU/5gSQaE= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1475,11 +1510,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1498,6 +1533,7 @@ function 8yYxCHdO5GHsa9EDJUegzWA1gsM= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1519,11 +1555,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1542,6 +1578,7 @@ function 9BTAtv04iyibbbELEv2rF8AH+Uc= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1563,11 +1600,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1586,6 +1623,7 @@ function Jif8i0TqV0aN5cctSlCwsvdid/s= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1607,11 +1645,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1630,6 +1668,7 @@ function 99dMSYjVFm3pIP2+aQ+9NrCmzuI= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1651,11 +1690,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1674,6 +1713,7 @@ function P4XIUNZt183bxiDCnXrNw4kbmkg= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1695,11 +1735,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1718,6 +1758,7 @@ function ZJGKp3yoIaFScOAN2naqfrJMlQQ= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1739,11 +1780,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1762,6 +1803,7 @@ function KdkXQxu2xOfAXegJgCMmLcFq8MM= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1776,11 +1818,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1799,6 +1841,7 @@ function UysvazUbtV39Omg33c9Me+Gri/M= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1813,11 +1856,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1836,6 +1879,7 @@ function H8wEIL8+8s3iNqadfPsH1HWRQU4= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1850,11 +1894,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/impl-defined-base.xml b/test-files/golden-tests/config/inherit-base-members/impl-defined-base.xml index 113d0568fd..b0b456ddac 100644 --- a/test-files/golden-tests/config/inherit-base-members/impl-defined-base.xml +++ b/test-files/golden-tests/config/inherit-base-members/impl-defined-base.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -68,6 +68,7 @@ function 0k4Wdt7n3RgOCeAZcrhJ7PruWP0= + public implementation-defined zJyAW21qgGwkRrS6Ea2uUqKSLhE= @@ -80,10 +81,10 @@ - + identifier void - + normal 1 @@ -105,17 +106,18 @@ struct - + identifier zJyAW21qgGwkRrS6Ea2uUqKSLhE= base_detail - + identifier aMJtdgJFybRcdkRG712j3iC7JeM= detail - - + + + public @@ -141,6 +143,7 @@ function o0JbdzeoEgGm/tWclYdgORU0Qyw= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -154,10 +157,10 @@ - + identifier void - + normal 1 @@ -174,13 +177,14 @@ function LsIEKTwhFIkvPhRlDXC1p7T+GPU= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= - + identifier void - + normal 1 diff --git a/test-files/golden-tests/config/inherit-base-members/never.xml b/test-files/golden-tests/config/inherit-base-members/never.xml index 0f10005a1c..0048830d9d 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.xml +++ b/test-files/golden-tests/config/inherit-base-members/never.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -43,12 +43,13 @@ class - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + + public ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -79,6 +80,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -99,11 +101,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -122,6 +124,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -142,11 +145,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -165,6 +168,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -185,11 +189,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -208,6 +212,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -228,11 +233,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -251,6 +256,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -271,11 +277,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -294,6 +300,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -314,11 +321,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -374,6 +381,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -394,11 +402,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -417,6 +425,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -437,11 +446,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -474,21 +483,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + public - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + public @@ -514,6 +525,7 @@ function MGQhB2O6ghdJWit6wao+PsH30Ew= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -534,11 +546,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -557,6 +569,7 @@ function rTSnS8Pv8GoWusQQE42y0pgN4cw= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -577,11 +590,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -614,21 +627,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + private - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + private @@ -654,6 +669,7 @@ function 9wqRoOH7cwNhkz5vwpTHLeb01BY= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -674,11 +690,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -697,6 +713,7 @@ function NJYWKnKWmizdaSr1ldC7FGh7fD0= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -717,11 +734,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -754,21 +771,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + protected - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + protected @@ -794,6 +813,7 @@ function oVVGDloOS5F7d4VIcKLc0YpnsiE= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -814,11 +834,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -837,6 +857,7 @@ function 4ZJznHda5QNdk/tsMca4Psswlj0= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -857,11 +878,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/reference.xml b/test-files/golden-tests/config/inherit-base-members/reference.xml index 3b2028e52b..0214d7ae78 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.xml +++ b/test-files/golden-tests/config/inherit-base-members/reference.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -43,12 +43,13 @@ class - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + + public ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -81,6 +82,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -101,11 +103,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -124,6 +126,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -144,11 +147,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -167,6 +170,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -187,11 +191,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -210,6 +214,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -230,11 +235,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -253,6 +258,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -273,11 +279,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -296,6 +302,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -316,11 +323,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -339,6 +346,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -359,11 +367,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -382,6 +390,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -402,11 +411,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -462,6 +471,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -482,11 +492,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -505,6 +515,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -525,11 +536,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -562,21 +573,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + public - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + public @@ -609,6 +622,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -629,11 +643,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -652,6 +666,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -672,11 +687,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -695,6 +710,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -715,11 +731,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -738,6 +754,7 @@ function MGQhB2O6ghdJWit6wao+PsH30Ew= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -758,11 +775,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -781,6 +798,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -801,11 +819,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -824,6 +842,7 @@ function rTSnS8Pv8GoWusQQE42y0pgN4cw= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -844,11 +863,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -867,6 +886,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -887,11 +907,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -910,6 +930,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -930,11 +951,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -953,6 +974,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -973,11 +995,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1010,21 +1032,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + private - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + private @@ -1050,6 +1074,7 @@ function 9wqRoOH7cwNhkz5vwpTHLeb01BY= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1070,11 +1095,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1093,6 +1118,7 @@ function NJYWKnKWmizdaSr1ldC7FGh7fD0= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1113,11 +1139,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1150,21 +1176,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + protected - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + protected @@ -1198,6 +1226,7 @@ function oVVGDloOS5F7d4VIcKLc0YpnsiE= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1218,11 +1247,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1241,6 +1270,7 @@ function 4ZJznHda5QNdk/tsMca4Psswlj0= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1261,11 +1291,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1284,6 +1314,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1304,11 +1335,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1327,6 +1358,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1347,11 +1379,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1370,6 +1402,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1390,11 +1423,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1413,6 +1446,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1433,11 +1467,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1456,6 +1490,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1476,11 +1511,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1499,6 +1534,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1519,11 +1555,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1542,6 +1578,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1562,11 +1599,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1585,6 +1622,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1605,11 +1643,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/see-below-base.xml b/test-files/golden-tests/config/inherit-base-members/see-below-base.xml index 6d18156b69..1ebe280dae 100644 --- a/test-files/golden-tests/config/inherit-base-members/see-below-base.xml +++ b/test-files/golden-tests/config/inherit-base-members/see-below-base.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -72,17 +72,18 @@ struct - + identifier ZFLr7GRQIMnYkYf3EtAsQX/ibQE= base_see - + identifier exW9PGqoF7V7OCpvgUIZOhj7WwI= see_below_ns - - + + + public @@ -108,6 +109,7 @@ function nOVGo4vrMcebHm4Ap0P9O3FPudg= + public regular 1 J1syoWzn2cGgGxt+fceKEo2Jpzc= @@ -121,10 +123,10 @@ - + identifier void - + normal 1 @@ -141,13 +143,14 @@ function fm0dS2I7h8XX4MVUXEdDThuOKWg= + public regular J1syoWzn2cGgGxt+fceKEo2Jpzc= - + identifier void - + normal 1 diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.xml b/test-files/golden-tests/config/inherit-base-members/skip-special.xml index 6f1e36c4b8..4f8735776e 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.xml +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -33,12 +33,13 @@ class - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + + public ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -73,6 +74,7 @@ function i32Wxo5FwAB92S9eyq4OmJr+PwE= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -85,10 +87,10 @@ - + identifier void - + constructor 1 @@ -106,6 +108,7 @@ function zem/akJ/sAPS+vXkWB/zJ3kqYho= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -118,10 +121,10 @@ - + identifier void - + destructor 1 @@ -139,6 +142,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -152,11 +156,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -175,6 +179,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -188,11 +193,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -211,6 +216,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -224,11 +230,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -247,6 +253,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -260,11 +267,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -283,6 +290,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -296,11 +304,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -319,6 +327,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -332,11 +341,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -355,6 +364,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -368,11 +378,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -391,6 +401,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -404,11 +415,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -456,6 +467,7 @@ function 0hT5zKl+ugygmEuMXhib2MIZLpU= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -468,10 +480,10 @@ - + identifier void - + constructor 1 @@ -489,6 +501,7 @@ function pXBvtV7fI6xpBYpqDE+uiFh8oQk= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -501,10 +514,10 @@ - + identifier void - + destructor 1 @@ -522,6 +535,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -535,11 +549,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -558,6 +572,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -571,11 +586,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -598,21 +613,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + public - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + public @@ -650,6 +667,7 @@ function Mb8fERE5UxaDv4qmeuyT42BBof8= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -662,10 +680,10 @@ - + identifier void - + constructor 1 @@ -683,6 +701,7 @@ function 6DgPvK2zzHe4kSaF/gWVBDdJ74U= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -695,10 +714,10 @@ - + identifier void - + destructor 1 @@ -716,6 +735,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -729,11 +749,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -752,6 +772,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -765,11 +786,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -788,6 +809,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -801,11 +823,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -824,6 +846,7 @@ function MGQhB2O6ghdJWit6wao+PsH30Ew= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -837,11 +860,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -860,6 +883,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -873,11 +897,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -896,6 +920,7 @@ function rTSnS8Pv8GoWusQQE42y0pgN4cw= + public regular ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -909,11 +934,11 @@ - + identifier ABxWcxit2TyVLv16ZxoJKAc6LKw= derived - + normal @@ -932,6 +957,7 @@ function P1Eq799RJkNMSTci+0jy+ZejsyU= + public regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -946,11 +972,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -969,6 +995,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -982,11 +1009,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1005,6 +1032,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1018,11 +1046,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1041,6 +1069,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1054,11 +1083,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1077,6 +1106,7 @@ function oW3pQYXjjv2wrXIwIceF6Xd8nTA= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1091,11 +1121,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1114,6 +1144,7 @@ function IYnrJp6ur6C+AiuhFl5x1YPnxkM= + protected regular 1 ABxWcxit2TyVLv16ZxoJKAc6LKw= @@ -1128,11 +1159,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1155,21 +1186,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + private - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + private @@ -1197,6 +1230,7 @@ function jCqo+0V7MK+reBG7J4tBA/8VGiI= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1209,10 +1243,10 @@ - + identifier void - + constructor 1 @@ -1230,6 +1264,7 @@ function v41bk6Gd1CiDPZueTqvYeEM6DqU= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1242,10 +1277,10 @@ - + identifier void - + destructor 1 @@ -1263,6 +1298,7 @@ function 9wqRoOH7cwNhkz5vwpTHLeb01BY= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1276,11 +1312,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1299,6 +1335,7 @@ function NJYWKnKWmizdaSr1ldC7FGh7fD0= + public regular aiF6nWGZXbG8UfC75J5tNuoPMRc= @@ -1312,11 +1349,11 @@ - + identifier aiF6nWGZXbG8UfC75J5tNuoPMRc= private_derived - + normal @@ -1349,21 +1386,23 @@ class - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + + protected - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + + protected @@ -1402,6 +1441,7 @@ function P0+PNfj+C0MyzTnJ6ITq8JvjciM= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1414,10 +1454,10 @@ - + identifier void - + constructor 1 @@ -1435,6 +1475,7 @@ function dhUWdRyTi/gQAcf2yVfnV5Jf1sg= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1447,10 +1488,10 @@ - + identifier void - + destructor 1 @@ -1468,6 +1509,7 @@ function oVVGDloOS5F7d4VIcKLc0YpnsiE= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1488,11 +1530,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1511,6 +1553,7 @@ function 4ZJznHda5QNdk/tsMca4Psswlj0= + public regular KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1531,11 +1574,11 @@ - + identifier KpfFXd3FeSffU3rGswegSIkkCrM= protected_derived - + normal @@ -1554,6 +1597,7 @@ function 2D7yc6q3buDhuPwzpn4pWzbu8ls= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1567,11 +1611,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1590,6 +1634,7 @@ function v0BroyWjs67MHzc1SyTlXrSxn8M= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1603,11 +1648,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1626,6 +1671,7 @@ function ECBBLxlaKar55qA0k1BCFn6MdH8= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1639,11 +1685,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1662,6 +1708,7 @@ function aYhSUMJkgCRo3AZmBb/rre04Ghg= + public regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1675,11 +1722,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1698,6 +1745,7 @@ function MEPVWyGd8KdZFR1kBYlQMgPyQlo= + public regular /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= @@ -1711,11 +1759,11 @@ - + identifier /PcbLGG9Q7grLgSOV/R/ZnEg9Cs= base_base - + normal @@ -1734,6 +1782,7 @@ function TaKAQiDmx8UXkT9p/momqiOZyHU= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1747,11 +1796,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1770,6 +1819,7 @@ function eHxe3z0iWUXdcNyXK0PD2+6DRbs= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1783,11 +1833,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1806,6 +1856,7 @@ function KGOrnDVJV2nPDK1hlkvBm6diYXY= + protected regular sk8HTAQHhzXfZej4IJliADonAJQ= @@ -1819,11 +1870,11 @@ - + identifier sk8HTAQHhzXfZej4IJliADonAJQ= base - + normal @@ -1842,6 +1893,7 @@ function KdkXQxu2xOfAXegJgCMmLcFq8MM= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1856,11 +1908,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1879,6 +1931,7 @@ function UysvazUbtV39Omg33c9Me+Gri/M= + protected regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1893,11 +1946,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal @@ -1916,6 +1969,7 @@ function H8wEIL8+8s3iNqadfPsH1HWRQU4= + public regular 1 KpfFXd3FeSffU3rGswegSIkkCrM= @@ -1930,11 +1984,11 @@ - + identifier ZFBKKIr2vNG5u3bxIaTbccBBkvQ= excluded_base - + normal diff --git a/test-files/golden-tests/config/inherit-base-members/template-base.xml b/test-files/golden-tests/config/inherit-base-members/template-base.xml index 8d1d4b0835..b0a981b9fd 100644 --- a/test-files/golden-tests/config/inherit-base-members/template-base.xml +++ b/test-files/golden-tests/config/inherit-base-members/template-base.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -72,6 +72,7 @@ function POYVSjIb9yYJwMJ0idlrE7qVb8s= + public regular ZLNgZaGs9JV18Yo8wi3pzzp4vfE= @@ -85,10 +86,10 @@ - + identifier T - + normal @@ -107,6 +108,7 @@ function Jykv51AJ/2ySE5tqs91b5BH4PR0= + public regular ZLNgZaGs9JV18Yo8wi3pzzp4vfE= @@ -128,18 +130,18 @@ - + identifier T - + - + identifier int - + n @@ -173,12 +175,22 @@ class - + specialization ZLNgZaGs9JV18Yo8wi3pzzp4vfE= base - + + type + + + identifier + int + + + + + public @@ -203,15 +215,16 @@ function 9X0U5wi8aI04GBZwYXOMit+BPNs= + public regular 1 qSoIJ38D4p+grUCWP6X5kItp3a8= - + identifier int - + normal @@ -229,23 +242,24 @@ function fJuJ+E/X6B4WdSCqYQX0onTsvhs= + public regular 1 qSoIJ38D4p+grUCWP6X5kItp3a8= - + identifier int - + - + identifier int - + n @@ -297,12 +311,22 @@ - + specialization ZLNgZaGs9JV18Yo8wi3pzzp4vfE= base - + + type + + + identifier + T + + + + + public @@ -328,6 +352,7 @@ function w8SzajsNCB5ck0YpsMvHduC9g1E= + public regular 1 VmATJ/H4380dpA0mtYd7uf/hcZA= @@ -342,10 +367,10 @@ - + identifier T - + normal @@ -364,6 +389,7 @@ function vt7li1a/kZQyCXxHvrdak2VBJQw= + public regular 1 VmATJ/H4380dpA0mtYd7uf/hcZA= @@ -386,18 +412,18 @@ - + identifier T - + - + identifier int - + n diff --git a/test-files/golden-tests/config/legible-names/constructor.xml b/test-files/golden-tests/config/legible-names/constructor.xml index d8cbc77f82..1fb89aef10 100644 --- a/test-files/golden-tests/config/legible-names/constructor.xml +++ b/test-files/golden-tests/config/legible-names/constructor.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -72,6 +72,7 @@ overloads iRe6Tyv0qU6vIHNyvLHuISP/Fw4= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -90,10 +91,10 @@ bzCqmNJXWfd3zGOkytPkJL6K6VQ= d9h3reyOyp3JT3kwQOTPOI9tmzg= - + identifier void - + @@ -108,6 +109,7 @@ function 6Jx2eK9l4C46QIRucTvox+6PH2k= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -120,10 +122,10 @@ - + identifier void - + constructor 1 @@ -140,6 +142,7 @@ function 4C2UEs8la3Eghf4mLyeViCJNOwY= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -160,20 +163,20 @@ - + identifier void - + 1 - + identifier ynx5NXMLXqzSXwgOnIP6CHzNx14= X - + other @@ -193,6 +196,7 @@ function ad/AzbLEE6b8dNnnX2OLy1+HxDQ= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -213,19 +217,19 @@ - + identifier void - + - + identifier ynx5NXMLXqzSXwgOnIP6CHzNx14= X - + other @@ -245,6 +249,7 @@ function bzCqmNJXWfd3zGOkytPkJL6K6VQ= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -272,17 +277,17 @@ - + identifier void - + - + identifier double - + value @@ -301,6 +306,7 @@ function d9h3reyOyp3JT3kwQOTPOI9tmzg= + public regular ynx5NXMLXqzSXwgOnIP6CHzNx14= @@ -328,17 +334,17 @@ - + identifier void - + - + identifier int - + value diff --git a/test-files/golden-tests/config/missing-include-prefixes/main.xml b/test-files/golden-tests/config/missing-include-prefixes/main.xml index c2b0312caf..eabf2453ba 100644 --- a/test-files/golden-tests/config/missing-include-prefixes/main.xml +++ b/test-files/golden-tests/config/missing-include-prefixes/main.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -29,11 +29,11 @@ regular //////////////////////////8= - + identifier KJQiUzqS/DyA8gVUV+KMxND3bns= unknown_type - + normal @@ -52,16 +52,16 @@ regular //////////////////////////8= - + identifier crCUrZiBv5bX9bGLig2c8iHIQTw= unknown_type - + identifier FSD/uKhIsgLLMoCQGwUzTPIPF6s= unknown_ns - - + + normal diff --git a/test-files/golden-tests/config/missing-include-shims/main.xml b/test-files/golden-tests/config/missing-include-shims/main.xml index 36ef87b167..f4340e83a6 100644 --- a/test-files/golden-tests/config/missing-include-shims/main.xml +++ b/test-files/golden-tests/config/missing-include-shims/main.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -44,16 +44,16 @@ - + identifier 7PyvYkwEUjqZ90L8TvRpXXrIUqA= StringRef - + identifier AKTakQzBfC0KTDMPjnNxxSVhb0E= llvm - - + + normal diff --git a/test-files/golden-tests/config/overloads/const-mutable.xml b/test-files/golden-tests/config/overloads/const-mutable.xml index 8536f9cd89..ee315fbcce 100644 --- a/test-files/golden-tests/config/overloads/const-mutable.xml +++ b/test-files/golden-tests/config/overloads/const-mutable.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -54,6 +54,7 @@ overloads 4/AwllBtll8FuW0tFA3cMUpR8Sg= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= normal @@ -61,10 +62,10 @@ c8FMK37zKpqJXH2ZioM0tYziY1g= - + identifier int - + @@ -80,14 +81,15 @@ function umtiZdZUSDxw3juVm+S7M40tpXQ= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + normal @@ -105,14 +107,15 @@ function c8FMK37zKpqJXH2ZioM0tYziY1g= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + normal diff --git a/test-files/golden-tests/config/overloads/visibility.xml b/test-files/golden-tests/config/overloads/visibility.xml index 90339a7e98..c1eab9f968 100644 --- a/test-files/golden-tests/config/overloads/visibility.xml +++ b/test-files/golden-tests/config/overloads/visibility.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -57,16 +57,17 @@ overloads 4/AwllBtll8FuW0tFA3cMUpR8Sg= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= normal umtiZdZUSDxw3juVm+S7M40tpXQ= ZlzGLjjc8rseQAYYNLgCZvhC28g= - + identifier int - + @@ -81,13 +82,14 @@ function umtiZdZUSDxw3juVm+S7M40tpXQ= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + normal 1 @@ -104,20 +106,21 @@ function ZlzGLjjc8rseQAYYNLgCZvhC28g= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier bool - + normal @@ -141,16 +144,17 @@ overloads NcMo7ffWjuFftsr66BskEGEgREc= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= normal /FdiOdEzqaZeg+AJKJir7X+Te/U= UNX9B8tS+5rPg6IDVPCp65KU9K8= - + identifier int - + @@ -165,23 +169,25 @@ function /FdiOdEzqaZeg+AJKJir7X+Te/U= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + normal + static 1 @@ -196,31 +202,33 @@ function UNX9B8tS+5rPg6IDVPCp65KU9K8= + public regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + - + identifier bool - + normal + static 1 @@ -241,16 +249,17 @@ overloads TMteh8/S1VX9JEEHtJWh5Th1uZg= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= normal o2jTMMUUPQBbGJOrh0qwurUTaTc= xtm3DYSrIA4dEog7ntDc3s6rKHs= - + identifier int - + @@ -265,28 +274,29 @@ function o2jTMMUUPQBbGJOrh0qwurUTaTc= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + - + identifier int - + normal @@ -304,36 +314,37 @@ function xtm3DYSrIA4dEog7ntDc3s6rKHs= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + - + identifier int - + - + identifier bool - + normal @@ -357,16 +368,17 @@ overloads SO7h8EG4J1fko32lzeE1EufNKsY= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= normal B3IB3WYPg106i0ziVCj3FHkRNAE= 9QPd0C7ERvmPWPhi4ucPT1LXybM= - + identifier int - + @@ -381,39 +393,41 @@ function B3IB3WYPg106i0ziVCj3FHkRNAE= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + - + identifier int - + - + identifier int - + normal + static 1 @@ -428,47 +442,49 @@ function 9QPd0C7ERvmPWPhi4ucPT1LXybM= + protected regular BrX2oZup9qgy4SfJloKCuUYZshA= - + identifier int - + - + identifier int - + - + identifier int - + - + identifier int - + - + identifier bool - + normal + static 1 diff --git a/test-files/golden-tests/config/sfinae/alias.xml b/test-files/golden-tests/config/sfinae/alias.xml index 91287298ef..ee40f69ff3 100644 --- a/test-files/golden-tests/config/sfinae/alias.xml +++ b/test-files/golden-tests/config/sfinae/alias.xml @@ -1,6 +1,6 @@ + xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rng"> @@ -30,10 +30,10 @@ //////////////////////////8= C - + identifier T - + 1