# Build
compile_commands.json
rust-project.json
user.bazelrc
out/
/bazel-*
outbazel/
.presubmit/
docs/_build
twister-out*/

# Editors
.pw_ide/
.vscode/*
!.vscode/OWNERS
!.vscode/pw_project_*.json
.idea/
.ijwb/
.project
.cproject
# Clangd directories
.clangd/
/.cache/clangd/
# Vim
*.swp
*.swo
# Emacs
*flycheck_*
*_flymake.*
.#*
*~
\#*#

# Python
*.pyc
*.egg/
*.eggs/
*.egg-info/
.cache/
.mypy_cache/
__pycache__/
build/
dist/

# PyOxidizer
pw_env_setup/py/oxidizer/build

# Mac
.DS_Store

# GDB
.gdb_history

# Git
*.orig
*.BACKUP.*
*.BASE.*
*.LOCAL.*
*.REMOTE.*
*_BACKUP_*.txt
*_BASE_*.txt
*_LOCAL_*.txt
*_REMOTE_*.txt

# Env Setup
environment
.environment
build_overrides/pigweed_environment.gni

# Web Tools
node_modules
yarn-error.log

# pw_emu
.pw_emu

# Emboss
*.emb.h

# Console Logs
pw_console-logs.txt
pw_console-device-logs.txt
