Skip to content

feat: Add support for Qt C++ and QML language parsing via Tree-sitter #1716

Description

@lkdigitalworks-53

Is your feature request related to a problem? Please describe.

Currently, Graphify does not support Qt (C++) and the QML (Qt Modeling Language) ecosystem when parsing codebases. When pointing Graphify to a modern desktop, mobile, or embedded UI application built using the Qt framework, it cannot extract deterministic AST subgraphs for .qml files. Furthermore, traditional C++ parsers often struggle to cleanly resolve custom meta-object system mechanics (like signals, slots, and properties) unique to Qt development, leading to missing structural dependencies, broken cross-file links, and unmapped architectural hierarchies.

Describe the solution you'd like

I would like Graphify to add support for Qt and QML languages in its deterministic AST extraction layer (Pass 1).
Specifically:

  1. QML Grammar Support: Integrate the tree-sitter-qml parser to read, extract, and index UI components, properties, inline JavaScript functionalities, signals, and imports inside .qml files.
  2. Cross-Language Bindings: Enable Graphify to build dependency edges between backend C++ logic (classes derived from QObject, registered via qmlRegisterType or QML_ELEMENT) and frontend QML visual layers.
  3. Qt Macros Handling: Ensure the core C/C++ parsing pass successfully recognizes and surfaces connections stemming from Qt-specific macros (Q_OBJECT, Q_PROPERTY, slots:, signals:).

Describe alternatives you've considered

  • LLM-Inference Only (Pass 3): Relying solely on LLM fallback logic to piece together how QML and C++ link up. However, this relies on INFERRED or AMBIGUOUS confidence tags rather than a 100% deterministic, local EXTRACTED map, driving up token usage and lowering graph accuracy on complex codebases.
  • Pre-processing/Renaming: Changing .qml file extensions to .js or .json to trick existing parsers, which fails completely because QML's structural layout is distinct.

Additional context

  • Tree-sitter Parser for QML: There are open-source tree-sitter implementations available (such as tree-sitter-qml) that can be integrated into Graphify’s core multi-language pipeline alongside its existing 33 supported languages.
  • This feature would significantly benefit developers building cross-platform consumer apps, automotive interfaces, flight management systems, or desktop software leveraging the Qt framework who want to utilize toolkits like Claude Code or Cursor with a complete repository map.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions