### General file patterns
*~
.*.sw?
.build_lock
.cargo
.clangd
**/.cache/clangd
.checkstyle
.classpath
.config
.envrc
.flutter_tool_state
.fx
.fx-build-dir
.fx-metrics-config
.fx-multi-list
.fx-remote-config
.fx-ssh-path
.fx-sync-from-stem.cache
.cproject
.DS_Store
.gdb_history
.gdbinit
.ignore
.jiri_manifest
.landmines
.packages
.project
.pydevproject
.ssh
.vscode
*_BACKUP_*
*_REMOTE_*
*_LOCAL_*
*_BASE_*
*.dSYM
*.iml
*.orig
*.pyc
*.code-workspace
*.sublime-project
*.sublime-workspace
*.swp
*.swo
Cargo.lock
!/third_party/rust_crates/**/Cargo.lock
Cargo.toml
!/third_party/rust_crates/**/Cargo.toml
go.mod
!/third_party/golibs/**/go.mod
go.sum
!/third_party/golibs/**/go.sum
CMakeLists.txt
compile_commands.json
cmake-build-debug/
cscope.*
default.profraw
rls*.log
Session.vim
fidl-tags
tags
TAGS
Thumbs.db
tools/cipd.gni
topaz/
tmp/
json_generator_tests_*.txt
tables_generator_tests_*.txt


### Specific files
/garnet/tools/cipd.gni

### Directories to be ignored across the tree
.cipd/
.idea/

### Top-level directories
/.jiri/
/.jiri_root/
/integration/
# For storing local scripts and data files in a source tree.
/local/
/out/
/prebuilt/
/test_data/
/third_party/*
!/third_party/llvm-libc/
/third_party/llvm-libc/src
!/third_party/golibs
!/third_party/rust_crates
!/third_party/modp_b64
!/third_party/scudo/
/third_party/scudo/src
/third_party/scudo/gwp_asan
!/third_party/zstd/
/third_party/zstd/src
/tmp/
/topaz/
/vendor/
/src/experiences
/build/secondary/third_party/protobuf

# rust-analyzer
/rust-project.json

# jiri generate-gitmodules can be used to generate a .gitmodules file that
# reflects the repos that jiri checked out. This is useful for tooling (like
# vscode) that is aware of submodules. This generated .gitmodules file
# shouldn't be tracked in source control.
/.gitmodules

# Running `fx check-licenses` will generate a NOTICE file at the root of the fuchsia repository. The
# file represents the license state of the entire repository.
# We automatically run this command during some user/userdebug builds, so it can be included in the
# Fuchsia images.
/NOTICE.html
/NOTICE.html.gz
