Maintainers: read
MAINTAINING.mdfirst. This file covers build/style basics only;MAINTAINING.mdis the full handbook — release gates, CI traps, testing discipline, code-level gotchas, current fix queues, and the working agreement with the repo owner.
src/ contains the Qt5/QScintilla desktop app in C++17, with paired headers and sources such as mainwindow.h and mainwindow.cpp. rust-core/ holds the Rust 2021 static library that handles file I/O, search, diff, formatting, and other backend logic exposed through FFI. Top-level test_*.cpp files are focused smoke or regression tests. resources/ stores icons and platform assets, docs/ contains the website/install artifacts, and installers/ plus scripts/ cover packaging and release helpers.
Use the repo script for normal local builds:
./build.shRun the full regression suite with:
./build.sh --testsFor manual builds:
cd rust-core && cargo build --release
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --parallel "$(nproc)"Run the registered regression tests manually with:
cd build
cmake .. -DBUILD_TESTING=ON
cmake --build . --target notepatra_all_tests
QT_QPA_PLATFORM=offscreen ctest --output-on-failureMatch the existing style: 4-space indentation, braces on the same line, and short comments only where behavior is non-obvious. Use PascalCase for Qt types/classes, camelCase for C++ methods and locals, and snake_case for Rust modules and functions. Keep .h/.cpp pairs aligned, prefer small focused helpers, and preserve platform-specific build logic in CMakeLists.txt. Respect .editorconfig, use .clang-format for C++ when reflowing code, and keep Rust cargo fmt clean.
Add or update a focused test_*.cpp file when changing editor behavior, formatting, palette handling, Ollama integration, or lexer wiring. Prefer regression-style tests named after the feature under test, for example test_palette.cpp or test_aifix.cpp. Register new binaries in CMake so ctest runs them in CI.
Recent history favors short, scoped subjects such as docs: update README version-history table, Windows smoke test: ..., or v0.1.8: .... Keep commits single-purpose and write subjects in that style. PRs should include a concise summary, affected platforms, commands run, and screenshots for UI changes. Link related issues and call out updates to installers, docs, or release notes.
Follow SECURITY.md for private vulnerability reporting. Do not commit secrets or machine-specific paths. AI features assume a local Ollama instance; document any new network-facing behavior explicitly in the PR.