feat: add git pre-commit hooks
This commit is contained in:
Executable
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
repo_root="$(git rev-parse --show-toplevel)"
|
||||||
|
cd "$repo_root"
|
||||||
|
|
||||||
|
echo "[pre-commit] Running make format..."
|
||||||
|
make format
|
||||||
|
|
||||||
|
echo "[pre-commit] Staging formatting changes..."
|
||||||
|
git add -A
|
||||||
|
|
||||||
|
echo "[pre-commit] Running make lint..."
|
||||||
|
make lint
|
||||||
@@ -30,6 +30,14 @@ help:
|
|||||||
@echo " make clean Remove build artifacts"
|
@echo " make clean Remove build artifacts"
|
||||||
@echo " make format Format QML, C++, JSON, YAML, and Markdown files"
|
@echo " make format Format QML, C++, JSON, YAML, and Markdown files"
|
||||||
@echo " make lint Run non-mutating lint and formatting checks"
|
@echo " make lint Run non-mutating lint and formatting checks"
|
||||||
|
@echo " make hooks-install Configure Git to use versioned hooks from .githooks/"
|
||||||
|
|
||||||
|
# Git Hooks
|
||||||
|
# Configure Git to use versioned hooks stored in this repository.
|
||||||
|
.PHONY: hooks-install
|
||||||
|
hooks-install:
|
||||||
|
git config core.hooksPath .githooks
|
||||||
|
@echo "Configured core.hooksPath=.githooks"
|
||||||
|
|
||||||
# C++ Bridge Build Targets
|
# C++ Bridge Build Targets
|
||||||
# Generate CMake build files for the C++ QML bridge.
|
# Generate CMake build files for the C++ QML bridge.
|
||||||
|
|||||||
@@ -24,14 +24,15 @@ sudo pacman -S plasma-sdk inotify-tools kirigami2 qt6-base qt6-declarative
|
|||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
1. Clone this repository.
|
1. Clone this repository.
|
||||||
2. If you use VS Code, run `make cpp-build` once to build the C++ bridge and generate IDE metadata for autocomplete. Then install the official QML extension and reload the VS Code window.
|
2. Run `make hooks-install` once to enable Git hooks from `.githooks/`.
|
||||||
3. Start hot reload while editing with `make watch`.
|
3. If you use VS Code, run `make cpp-build` once to build the C++ bridge and generate IDE metadata for autocomplete. Then install the official QML extension and reload the VS Code window.
|
||||||
4. Install a symlinked development version with `make dev-install`.
|
4. Start hot reload while editing with `make watch`.
|
||||||
5. For a normal local install (non-symlinked), use `make install`.
|
5. Install a symlinked development version with `make dev-install`.
|
||||||
6. Check style/lint status with `make lint`.
|
6. For a normal local install (non-symlinked), use `make install`.
|
||||||
7. Format everything with `make format`.
|
7. Check style/lint status with `make lint`.
|
||||||
8. Test in different modes with `make test`, `make test-panel`, `make test-desktop`, or `make test-hidpi`.
|
8. Format everything with `make format`.
|
||||||
9. Package for distribution with `make package` (creates `build/<widget-id>.plasmoid`, default: `build/org.kde.plasma.starter.plasmoid`). This is just a zip file with a different extension, so you can inspect it with any archive manager.
|
9. Test in different modes with `make test`, `make test-panel`, `make test-desktop`, or `make test-hidpi`.
|
||||||
|
10. Package for distribution with `make package` (creates `build/<widget-id>.plasmoid`, default: `build/org.kde.plasma.starter.plasmoid`). This is just a zip file with a different extension, so you can inspect it with any archive manager.
|
||||||
|
|
||||||
## Editor Setup Notes
|
## Editor Setup Notes
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user