- CMake
3.24+ - C++20 compiler
- Qt
6.7+ - Qt modules:
Core,Gui,Qml,Quick
cmake -S . -B build
cmake --build buildUseful targets:
ScintillaQuickscintillaquick_minimal_editorscintillaquick_embedded_benchmark
If BUILD_TESTING is enabled, test executables are built as well.
After building, run:
./build/scintillaquick_minimal_editorOn Windows with a multi-config generator, use the matching configuration path, for example:
./build/Debug/scintillaquick_minimal_editor.exeInstall the package:
cmake --install build --prefix <install-prefix>Then consume it from another CMake project:
find_package(ScintillaQuick CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE ScintillaQuick::ScintillaQuick)The installed package includes Scintilla's public headers. Scintilla internal implementation headers are not part of the installed interface.
Typical C++ integration looks like this:
- Create a
QGuiApplication. - Create a
QQuickWindowor parentQQuickItem. - Instantiate
ScintillaQuick_item. - Attach it to the Qt Quick scene.
- Set geometry, font, and initial text.
The first-party examples and tests use the shared helper in
examples/common/scintillaquick_font.hto select a bundled fixed-font family. By default it picksCascadia Code, andSCINTILLAQUICK_FIXED_FONT_FAMILYcan switch it toCousine. - Drive editor behavior with Scintilla messages through
send().
See examples/minimal_editor/main.cpp
for a complete runnable example.
Run the registered test suite with:
ctest --test-dir build --output-on-failureRegistered tests currently include smoke, frame-validation, visual-regression, and benchmark-backed coverage.
On Windows, visual tests require a desktop session because they create and show
a QQuickWindow.