copilot-swe-agent[bot] 99c0a6b83c Initial plan
2025-12-25 07:01:53 +00:00
2025-11-27 21:07:07 +00:00
2025-11-27 17:05:02 +00:00
2025-11-27 21:18:23 +00:00
2025-11-27 15:04:25 +00:00
2025-11-27 21:25:50 +00:00

WizardMerge

SEE ALSO: https://github.com/JohnDoe6345789/mergebot

PyQt6 + QML demo application that showcases a themed UI shell alongside simple merge algorithm helpers. The project ships with a theming plugin system so you can extend the UI palette without touching the core code.

Features

  • PyQt6 application bootstrapped from wizardmerge.app
  • QML front-end that reads theme colors from the Python context
  • Built-in light and dark themes plus an example warm plugin theme
  • Simple merge algorithm utilities in wizardmerge.algo
  • Helper scripts for environment setup and running the app

Getting Started

  1. Create a virtual environment and install dependencies:

    ./setup.sh
    
  2. Launch the GUI (activates .venv automatically when present):

    ./run_app.sh
    
  3. To install requirements into an existing environment instead of creating a new one:

    ./install_all_python.sh
    

Theming

Themes live under wizardmerge/themes. Built-ins follow the <name>_theme.py pattern. Plugin themes can be placed in wizardmerge/themes/plugins or in any folder passed to ThemeManager(extra_plugin_paths=[Path("/path/to/themes")]). Each theme module must expose a Theme instance named theme (or the warm_theme example) with a palette mapping of color keys used by the QML UI.

QML

The UI entry point is wizardmerge/qml/main.qml. It binds to a theme context property injected from Python so you can use colors consistently across QML components. Maintain two-space indentation when updating QML files.

Algorithms

wizardmerge/algo/merge.py offers a deterministic merge_pairs function for interleaving two sequences of lines and reporting their origins. The GUI can be extended to call these helpers when you add inputs to the placeholder area in the QML layout.

Description
No description provided
Readme MIT 7 MiB
Languages
C++ 72.3%
Python 8.4%
TLA 7.6%
QML 2.9%
CMake 2.8%
Other 6%