# 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
# 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
