# Build
compile_commands.json
out/
bazel-*
.presubmit/
docs/_build

# Editors
.idea/
.project
.cproject
.vscode
# 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
# TODO(pwbug/216) Remove following lines in this section.
# Maybe find a way to delete these files before these lines are removed.
python*-env/
.python*-env/
pw_env_setup/.env_setup.sh
pw_env_setup/.env_setup.bat
.cipd
.cargo
.bootstrap/

# Web Tools
node_modules
yarn-error.log
