# Build directories
build/
build-*/
cmake-build-*/
out/

# vcpkg (cloned/installed locally or by CI)
vcpkg/
vcpkg_installed/
vcpkg_installed-*/

# CMake generated files
CMakeCache.txt
CMakeFiles/
cmake_install.cmake
Makefile
compile_commands.json
CTestTestfile.cmake
Testing/
_deps/
DartConfiguration.tcl

# catch_discover_tests writes <target>-<hash>_include.cmake plus a
# matching *_tests.cmake into the binary dir; ignore in case they
# leak into the source tree from an accidental in-source build.
*_include.cmake
*_tests.cmake

# Generated 6502 sources / generator binary -- correctly produced
# under build/ but ignore in case of an accidental in-source build.
/src/6502/6502_internal.inl
/src/6502/third_party/b2/6502_gen

# Generated preset bundles -- correctly produced under
# build/src/server/presets/.
/src/server/presets/

# Compiled objects and libraries
*.o
*.obj
*.a
*.lib
*.so
*.dylib
*.dll

# Executables
*.exe
*.out

# AI assistant configuration (user-specific)
.claude/
.kilo/

# IDE and editor files
.vscode/
.idea/
*.xcworkspace/
.vs/
*.sln
*.vcxproj*

# LSP and tooling caches
.cache/

# Xcode user-specific data (project files are tracked)
xcuserdata/
*.xcuserstate

# Xcode build trees. Anywhere, under any suffix: an in-tree DerivedData holds
# tens of thousands of files including checked-out SwiftPM dependencies, each
# of which is its own git repository, so a stray `git add -A` both bloats the
# history and creates accidental embedded repositories.
DerivedData/
DerivedData-*/

# Editor swap/backup files
*~
*.swp
*.swo
.*.swp
\#*\#
.#*

# macOS
.DS_Store
._*

.jbeval

# LLVM profiling
*.profraw
*.profdata

# Python
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
.eggs/
dist/
.venv/
*.egg

# Node.js (oracle project)
node_modules/
oracle/dist/
oracle/public

/docs/manuals/
/docs/manuals_text/
/docs/datasheets/
/discs/games/
/discs/l3fs/

# Local scratch directory
/tmp/

# L3FS SCSI hard disc images -- regenerated on demand by the oaknut
# `disc` tool from Acorn distribution sources. The committed
# tests/assets/scsi/L3FS-KL.adl floppy is the only checked-in image.
/tests/assets/scsi/l3fs.dat
/tests/assets/scsi/l3fs.dsc
/tests/assets/scsi/l3fs-blank-20mb.dat
/tests/assets/scsi/l3fs-blank-20mb.dsc

disassembly/*
!disassembly/*.py
# Local machine-specific development notes and configuration (sensitive)
docs/local-*.md
local-*
**/local-*

# Local packaging build outputs (Linux bundle tarballs)
_artifacts/

# Integration tests are server end-to-end tests driven by the Python client;
# they resolve fresh against the source-tree client, so their locks are not committed.
integration_tests/*/uv.lock
