Skip to content

Releases: sdkrystian/mrdocs

develop

27 May 13:42
Compare
Choose a tag to compare

🚀 Features

New features and additions

  • ✨ Overload sets. bbc08f1
  • 💫 C++/JS proxy functions.1 58e4cec
  • 🌟 Configurable extraction of inaccessible bases. a77752e
  • ✨ C++/JS proxy objects. 339f7da
  • 💫 Tranches & overload sets for namespaces. a7a7330
  • 🌟 C++/JS proxy arrays. 5230768
  • ✨ Complete JavaScript helpers support.2 1a1b510
  • 💫 Template context includes config. 186db21
  • 🌟 BaseURL config option. 86609ec
  • ✨ Show operand of noexcept specifier. 540dac2
  • 💫 Find addons relative to executable. 437c3f6
  • 🌟 Config YAML as dom::Object. 0faf7a9
  • ✨ Represent possibly-qualified names with NameInfo. aa4e6ff
  • 💫 Replace (Builtin/Tag/Specialization)TypeInfo with NamedTypeInfo. c19a4d4
  • 🌟 Support @throw/@throws/@exception. 0f25c6a
  • ✨ Extract and render initializers for variables and fields. 42cc6ec
  • 💫 Detect compiler default include paths. 0720a15
  • 🌟 Automatic generation of compile_commands.json. 70a9347
  • ✨ Deducing this. 67fa963
  • 💫 Input filters. 5f2e60e
  • 🌟 Extra javadoc and HTML tags. 75611fc
  • ✨ Support multi-node HTML tags. 541cf5b
  • 💫 Adoc template "See also" section. 9c20b9d
  • 🌟 Support using directives, using declarations and namespace aliases. 753823e
  • ✨ Support variadic functions and variadic function types. d456f87
  • 💫 Better support for explicit-specifiers. 7ebe30a
  • 🌟 Support @pre and @post. 5fee793
  • ✨ Annotate constructors and destructors in adoc member lists. 590b317
  • 💫 Configurable see-below and implementation-defined namespaces. c476746
  • 🌟 Support @n command. 0d821e2
  • ✨ Add 'select' handlebars helper. 8c20d25

🐛 Fixes

Bug fixes and error corrections

  • Use string_view data. 71dd9f5
  • Tranche partial requires no whitespace. 7d689c9
  • Report handlebars errors from Builder. cf2d10a
  • AccessKind::None is zero. 633a686
  • Set base-url in demo config. a858079
  • Detect empty baseURL in source template. 42ef191
  • Use book doctype when generating demos. 34cfbd7
  • Only delete Boost.URL demos on push. 1833247
  • Case label skips variable with non-vacuous initialization. badb9d9
  • Visitor with rvalue arguments. 8dbacbf
  • Do not link to external/system headers. 4542bf0
  • LookupCallback has virtual destructor. c5dc7ae
  • Sanitize references. 1de3dff
  • Bug reporters refer to Mrdocs repo. 06dd4c0
  • Track whether base-specifiers were a pack expansion. 34204a0
  • Propagate current dependency mode when extracting typedefs as a dependency. 7820d6a
  • Dependency extraction for templates. a28f265
  • Atomic shared_ptr checks. 4805772
  • Expected does not support class template argument deduction. da44b16
  • StringRef::equals replaced with operator==.3 8a3c4e3
  • No extra ';'s. d7f3b6d
  • Version string final line break. 52d63cd
  • Remove newline from namespace alias signature template. 995c8ac
  • Typo for ternary operator in CI. 895cc6e
  • HTML matches Asciidoc templates. 561f213
  • Xml schema. 028b98e

♻️ Refactor

Code refactoring and restructuring

  • Rename format option to generate and move it to the config. bfe1ae3
  • Promote adoc section levels. a7afbe1
  • Group namespace members by kind. 76998f4
  • Invert source and synopsis. 7c1f0ea
  • Namespace members are sorted. d788ed8
  • Source partial refers to headers. 6e00120
  • Replicate function and record sections. a0c9d1d
  • Tool uses Expected. 3e1c279
  • Template headers link to repo. 866f727
  • East-const in adoc generation. de4f5c6
  • Remove convertToNoexceptKind. 49414e4
  • Remove cmake temp files. 59681e8
  • Modular cmake functions. f53685e
  • IsCXXSrcFile accepts C files. 14e3a33
  • Command database filters fsanitize. b18ec64
  • Cmake config uses temporary directory. 9bfb5f4
  • Cmake help can use OS defaults. dd10896
  • Bash argument parser. bb927a6
  • Format ASTVisitor. be25522
  • Report bitcode failures. 1be3e83
  • References to excluded symbols are not an error. a567f80
  • Invalid commands emit error messages. d5e8f64
  • Don't represent using-directives as Info. c4441d4

📖 Documentation

Documentation updates and improvements

  • JavaScript.hpp javadoc. da84105
  • JavaScript capitalization is consistent. ef24d66
  • Valid section anchors. 6053bf8
  • Enumeration link formatting. dd3aab4
  • Qualified typedefs. 3ad5066
  • Function symbols use declarator. 4a54692
  • Corpus javadocs. 01403d6
  • CMakeUserPresets.json.example includes warnings. c438bd9
  • Expand build utilities javadoc. 91d6742
  • Support asciidoctor tabs. 4043ad3
  • Install instructions use official dependency releases. 0fa17a9
  • Demo page. d37df4c
  • README.adoc refers to Mr. Docs. 4d6e040
  • Banner refers to Mr. Docs. 17503d8
  • README uses consistent capitalization. 45e1095
  • Index.adoc uses consistent capitalization. dd28523
  • Source code callouts. 49fc14b

📦️ Build

Build system and configuration changes

  • Use duktape package.4 e2c8f19
  • Fix share install path. f005291
  • Default preset enables tests. b615e97
  • Duktape CMake scripts. 586ce9b
  • Capitalized duktape package has precedence. 05938ab

🚦 Continuous Integration

Changes related to continuous integration

🏗️ Chores

Routine tasks, maintenance, and housekeeping

  • Support partials in subdirectories. a9b6774
  • Move generators to src/lib/Gen. c777320
  • Fix Wparentheses warning. 4ae56c0
  • Adoc template improvements. 57238d7
  • Remove handlebars.js.[^7] b8b6880
  • Sort members alphabetically. 0b04f75
  • Version is 0.0.1.[^8] 285ddcb
  • Deduction guides are represeted with GuideInfo. 983f9ea
  • Update mrdocs natvis. 2c87ded
  • Render @param, @returns, and @throws commands in adoc. c769ac7
  • Support @Result. a54d4a5
  • Marginally better adoc escaping. bf60a45
  • Update tests. 86d18ba 0244055 5ffc7de 954f69f
  • Merge consecutive text elements on the same line. a844aed
  • Retain comments in system headers. de75a22
  • Warn when corpus is empty. 11febb6
  • Allow for caller to filter lookup results. 395f565
  • BuildNameInfo does not skip the innermost declaration. 0655c84
  • Bump LLVM to 7a28a5b3. 1e6e9ae
  • Remove USR generation workaround for decayed function parameters. e0a0547
  • Temporarily disable HTML generator demos. f34abe3
  • Build NameInfo using explicitly provided nested-name-specifier. d68d133
  • Add 'See Also' section to all adoc templates. 9576c73
  • Link names in overload sets. ca13ce1

💬 Other

Other changes not covered by specific categories

  • Revert "docs: valid section anchors".[^9] afc59d5
  • Revert "docs: qualified typedefs".[^10] e88ce51
  • Revert "refactor: east-const in adoc generation".[^11] cd00fe6
  • Cmake refactor fallback --system-information. 062b399
  • Code simplification. 2bc1e13
  • Do not call cmake --system-information on CI. 741198c
  • Update .github/workflows/ci.yml. 3d3f398 47a3031 e3a0bff
  • Fallback in case of parse fail. 113ecbc
  1. Define JS proxy types for functions to allow complete interoperability between C++ and JS functions.When accessing a JS function in C++, the dom::Function contains a reference to the Scope variable with the JS function. The JS execution context will evaluate this function in JS and convert the result back to dom::Value.When accessing a C++ function in JS, the JS object will contain a hidden buffer to store a copy of the original dom::Function. When JS executes the function, it will get the original dom::Function from this hidden buffer, convert all arguments to dom::Value, call the original dom::Function, and push the dom::Value result to the stack. When the function is garbage collected, the object finalization callback destroys the function stored in the buffer.

  2. This commit uses proxy objects to offer complete support for JavaScript helpers that return reference types. Previously, JavaScript reference types returned by these functions were deep-copied or not handled at all. Now, proxy objects in both directions are used while helpers create a scope that's kept alive as long as necessary by the Handlebars engine.As the objects don't need to be deep copied, this change improves performance and allows objects with circular references, which are common in MrDocs. Additionally, JavaScript helpers receive a proxy object equivalent to the handlebars options object, and helper function registration was also simplified and improved to remove redundant code.This commit provides new test cases to validate the current code without counting on MrDocs.

  3. StringRef::equals has been deprecated.

  4. This commit changes the Duktape setup to use the CMake find_package command to locate and configure the Duktape library. Direct access to source files through DUKTAPE_SOURCE_ROOT has been removed in order to respond to Duktape providing its own CMake integration scripts via vcpkg.Additionally, installation instructions for Duktape and references to DUKTAPE_SOURCE_ROOT have been removed from relevant files and examples. Instead, the Duktape dependency is now managed by vcpkg in CI. This simplifies the setup of the development environment.

  5. Generalizes the build process for any LLVM version and any set of configuration options. To make it faster, the set of targets is reduced to only what we need for MrDocs. When we change the LLVM parameters, the first run will take slightly longer in CI and subsequent runs will reuse the cached binaries. This means we no longer need to host the binaries on mrdocs.com and update them manually, making the process of updating the LLVM version much simpler and c...

Read more