Skip to content

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 16 Apr 07:24
e40f4f5
Parse qmltypes/qmldir for full Qt module type discovery (1.4.0) (#7)

* feat(qmltypes): add data structures for parsed qmltypes and qmldir

* feat(qmltypes): recursive descent parser for .qmltypes DSL

Tokenizer and parser that handles Module, Component, Property, Signal,
Method, Enum, and Parameter blocks. Supports both Qt5 (object-map) and
Qt6 (string-array) enum value formats, dotted C++ type names, and the
import preamble. Includes cppTypeToQML for mapping C++ types to
QML-visible names.

* feat(qmltypes): add qmldir file parser

* feat(qmltypes): discover Qt modules and register types at startup

Walks /usr/lib/qt6/qml, /usr/lib/qt/qml, and QML_IMPORT_PATH for
qmldir files, parses their referenced .qmltypes, and registers types,
properties, signals, methods, and enums into the symbol registry.
Hard-coded entries are never overwritten — qmltypes augments them.
Discovery runs in a goroutine during Initialize.

* test(qmltypes): cover parser, qmldir, exports, and real Qt6 files

Fixes the identifier lexer to only consume :: (C++ scope operator) and
not single : (attribute separator). Adds tests for component attributes,
properties, signals, methods, enums (Qt5 and Qt6 format), C++ type
mapping, export parsing, qmldir parsing, and an integration test
against the real Qt6 QtQuick module.

* docs: cut 1.4.0 with qmltypes module discovery

* dist: add AUR PKGBUILDs for -bin and -git packages

* ci: auto-update AUR -bin package on release

Triggers on non-prerelease GitHub releases. Downloads the Linux
zip assets, computes sha256sums, updates the PKGBUILD with the new
version and checksums, generates .SRCINFO, and pushes to AUR.
Requires AUR_SSH_KEY secret.

* fix: remove unused lookupPrototype and qtVersionFromExport

* docs: update README with new features and AUR installation

* docs: restore full blink.cmp config in README

* docs: simplify blink.cmp config to essentials