# See https://www.dartlang.org/guides/libraries/private-files

# Files and directories created by pub
.dart_tool/
.packages
.pub/

# Exclude pubspec.lock files in tests and example fixtures.
packages/devtools_app/test/**/pubspec.lock
packages/devtools_extensions/example/**/pubspec.lock
third_party/**/pubspec.lock

.idea/
.data_dir/

# Ignore any Flutter SDK in flutter-sdk/
flutter-sdk/

# .DS_Store is a file that stores custom attributes of its containing folder,
# such as the position of icons or the choice of a background image.
.DS_Store

# Generated files not intended to be checked in to version control
.flutter-plugins
**/.flutter-plugins-dependencies
flutter_export_environment.sh
Podfile
Podfile.lock
**/generated/not_namespaced_r_class_sources/
**/devtools_app/build/
**/devtools_app_shared/build/
**/devtools_extensions/build/
**/devtools_shared/build/
**/devtools_test/build/
packages/devtools_test/lib/src/mocks/generated.mocks.dart
**/*.stager_app.dart
**/test/**/failures/
*.dill
DEPENDENCIES.md
**/*.log

# Ignore logs generated by VS Code
**/logs/**
*.stager_app.g.dart

# Ignore VS code workspaces that may be configured per-user
*.code-workspace

# Ignore devtools_options.yaml files under example.
**/example/**/devtools_options.yaml

# macOS generated Flutter files
**/macos/Flutter/ephemeral/
**/macos/Flutter/GeneratedPluginRegistrant.swift

build/
