The glob pattern only searched /usr/lib64 and /usr/lib, missing the
multi-arch path (e.g. /usr/lib/x86_64-linux-gnu/) where Debian-based
distros install the library. This caused HAVE_KATE_DIFF to never be
defined, so diffs were shown as raw text instead of using Kate built-in
diff widget.
- Integrate with libkateprivate's Utils::showDiff() to use Kate's built-in
diff widget (respects user's Unified/SideBySide/Raw style preference)
- Add bundled kate-compat headers for DiffParams and Utils::showDiff decl
- CMakeLists.txt auto-detects libkateprivate, falls back to plain text diff
- Add 'Diff selected' button: shows diff for selected files with
stage/unstage/discard actions available in the diff viewer
- Add 'Diff All' button: shows git diff HEAD for full changeset review
- Staged diffs show unstage action, unstaged diffs show stage+discard
- ReloadOnShow flag keeps diff views fresh after interactive operations
CMakeLists.txt now probes for KF6TextEditor first, falls back to KF5.
Uses correct install namespace (kf6/ktexteditor vs ktexteditor).
Source code already had the necessary #if guards for KF6 constructor.
No API changes needed - KTextEditor plugin interface is identical.
Full-featured Git integration for Kate with tabbed side panel:
Status tab:
- Live file status tree (staged/changed/untracked)
- Stage, unstage, discard with double-click support
- Commit with inline message editor and amend support
- Push, pull, fetch with progress spinner
- Filesystem watcher for auto-refresh
Branches tab:
- Filterable list of local and remote branches
- Checkout, create, delete, compare
- Create worktree from branch
- Copy branch name to clipboard
Stashes tab:
- List all stashes with apply, pop, drop, diff
Worktrees tab:
- List active worktrees
- Create (with branch picker), remove, prune
- Open worktree as Kate project
Indicators:
- Panel header with repo/branch/dirty state
- Status bar widget always visible
- Detached HEAD warning
- Remote operation progress