# VS Code Configs
.vscode/*
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/settings.json
!.vscode/extensions.json

# Platforms
.DS_Store

# Build System
out/
/src/test_driver/nrfconnect/build/
/src/darwin/Framework/build/

# Pigweed Environment
.environment/
build_overrides/pigweed_environment.gni

# Temporary Directories
.tmp/

# Xcode, other development environment stuff
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/
*.xcodeproj/*
*.xcworkspace/*
TAGS

# Text editors
.*.sw[a-z]

# Patch files
*.rej
*.orig

# C-Lion / IDEA files
.idea/**

# Python bytecodes
__pycache__
*.pyc
*.egg-info

# Doxygen outputs
docs/html

# Python venv
.venv

# Documentation
docs/_build

# VSCode java extensions
.project

# clangd index files
.cache

# compilation database for VSCode and other Ides
compile_commands.json

# backup files, usually created by the ZAP tool
*~

# log files
*.log
examples/thermostat/ameba/build

# Downloaded zap without a pigweed root (via zap_download.py)
.zap

# When building esp-idf application, if any component is fetched using idf-component-manager then they are stored in
# managed_component directory. Along with that dependencies.lock file is generated.
# https://github.com/espressif/idf-component-manager#using-with-a-project
examples/*/esp32/managed_components
examples/*/esp32/dependencies.lock

# jupyter temporary files
.ipynb_checkpoints

