# =============================================================================
# PlasmaZones - Window snapping, tiling and scrolling for KDE Plasma
# =============================================================================

# -----------------------------------------------------------------------------
# CMake Build Artifacts
# -----------------------------------------------------------------------------
build/
build*/
CMakeCache.txt
CMakeFiles/
CMakeScripts/
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps/
*.cmake
# Rescue hand-written CMake modules in any cmake/ directory, at any depth
# below it. `!cmake/*.cmake` alone covered only the top-level cmake/, so a
# future cmake/modules/Foo.cmake or libs/phosphor-foo/cmake/Bar.cmake would be
# silently untracked with no error. Build-tree .cmake files stay ignored
# regardless: build*/ excludes the directory itself, and no negation can reach
# inside an excluded directory.
!**/cmake/**/*.cmake
.cmake/

# -----------------------------------------------------------------------------
# Qt/QML Build Artifacts
# -----------------------------------------------------------------------------
# MOC (Meta-Object Compiler) generated files
*_autogen/
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.moc

# QML cache
*.qmlc
*.jsc
.qmlcache/

# Compiled message catalogs (generated by msgfmt)
*.mo

# QML Language Server configuration (generated by CMake)
.qmlls.ini

# Qt Creator
*.pro.user*
*.pro.user
*.qmake.stash
*.qmake.cache

# -----------------------------------------------------------------------------
# C++ Build Artifacts
# -----------------------------------------------------------------------------
# Object files
*.o
*.obj
*.lo
*.slo

# SPIR-V compiled shaders
*.spv

# Precompiled Headers
*.gch
*.pch

# Libraries
*.a
*.lib
*.so
*.so.*
*.dylib
*.dll

# Executables
*.exe
*.out
*.app
plasmazonesd
plasmazones-editor
kcm_plasmazones

# Debug files
*.dSYM/
*.su
*.idb
*.pdb
*.ilk

# Dependency files
*.d
*.d.*
# …but Luau type-definition files (.d.luau) are source, not generated deps.
!*.d.luau

# -----------------------------------------------------------------------------
# KDE/Plasma Specific
# -----------------------------------------------------------------------------
# KConfigXT generated files
*.kcfg.cmake
*.kcfgc.cmake

# Plasma package files
*.plasmoid

# -----------------------------------------------------------------------------
# Node.js / pnpm
# -----------------------------------------------------------------------------
node_modules/
.pnpm-store/
.pnpm-debug.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-lock.yaml
.npm
.eslintcache

# -----------------------------------------------------------------------------
# IDE and Editor Files
# -----------------------------------------------------------------------------
# Qt Creator
*.creator
*.creator.user
*.creator.user.*
*.includes
*.config
*.files
*.creator.user

# Visual Studio Code
.vscode/
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace

# CLion
.idea/
*.iml
*.iws
*.ipr

# KDevelop
.kdev4/
*.kdev4

# Vim
*.swp
*.swo
*~
.vim/

# Emacs
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

# -----------------------------------------------------------------------------
# OS-Specific Files
# -----------------------------------------------------------------------------
# Linux
*~
.directory
.Trash-*
.nfs*

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.Spotlight-V100
.Trashes
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# Windows
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

# -----------------------------------------------------------------------------
# Testing and Coverage
# -----------------------------------------------------------------------------
# CTest working tree (created by ctest when run outside a build/ directory)
Testing/

# Test executables (but not test source files)
test_*
!test_*.cpp
!test_*.h
*_test
*_tests

# Coverage reports
*.gcov
*.gcda
*.gcno
coverage/
*.lcov
*.info
htmlcov/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Valgrind
*.memcheck
*.helgrind
*.cachegrind
*.callgrind
*.massif

# -----------------------------------------------------------------------------
# Documentation Build
# -----------------------------------------------------------------------------
docs/_build/
docs/.doctrees/
docs/html/
docs/latex/
*.pdf
!docs/*.pdf

# -----------------------------------------------------------------------------
# Package and Distribution
# -----------------------------------------------------------------------------
*.tar.gz
*.tar.bz2
*.zip
*.deb
*.rpm
*.dmg
# ...but the vendored Luau source tarball is committed (extracted at build time).
!extern/*.tar.gz
*.pkg
dist/
*.egg-info/
.eggs/

# -----------------------------------------------------------------------------
# Nix
# -----------------------------------------------------------------------------
result
result-*

# -----------------------------------------------------------------------------
# Temporary and Backup Files
# -----------------------------------------------------------------------------
*.tmp
*.temp
*.bak
*.backup
*.old
*.orig
*.save
*.swp
*.swo
*~

# -----------------------------------------------------------------------------
# Database Files
# -----------------------------------------------------------------------------
*.db
*.db-journal
*.db-wal
*.sqlite
*.sqlite-journal
*.sqlite-wal

# -----------------------------------------------------------------------------
# Git Wiki (separate repo clone)
# -----------------------------------------------------------------------------
PlasmaZones.wiki/

# -----------------------------------------------------------------------------
# Claude Flow / AI Development Tools
# -----------------------------------------------------------------------------
# .claude/ is ignored except the checked-in review agents and the code-audit skill
.claude/*
!.claude/agents/
.claude/agents/*
!.claude/agents/review/
!.claude/skills/
.claude/skills/*
!.claude/skills/code-audit/
!.claude/settings.json
.mcp.json
claude-flow.config.json
.swarm/
.hive-mind/
.claude-flow/
memory/
coordination/
claude-flow
claude.*
hive-mind-prompt-*.txt


# -----------------------------------------------------------------------------
# Local Configuration Files
# -----------------------------------------------------------------------------
*.local
*.local.*
local_settings.*
.env
.env.local
.env.*.local

# -----------------------------------------------------------------------------
# Logs
# -----------------------------------------------------------------------------
*.log
logs/
*.log.*

# RuVector (local development)
ruvector/

# Generated shader autocomplete sidecar (plasmazones-shader-validate
# --emit-preamble) — an editor-only aid, never committed or shipped.
p_generated.glsl

# heaptrack memory-profiling captures (local profiling artifacts, never committed)
heaptrack.*.zst

# Generated by scripts/qml-i18n-stubs.py during `update-ts`, so lupdate can
# see the i18n() calls in QML. Never edited by hand, never committed.
translations/.qml-stubs/

# Python bytecode from scripts/
__pycache__/
scratchpad/

# Generated by packaging/obs/generate-dsc.sh during the release workflow's
# publish-obs job. Its Build-Depends are derived from packaging/debian/control
# and its version from the tag being released, so a committed copy could only
# ever go stale.
packaging/obs/plasmazones.dsc
