### General file patterns
*~
.*.sw?
.build_lock
.cargo
.clangd
**/.cache/clangd
.checkstyle
.classpath
.config
.ccls-cache
.envrc
.flutter_tool_state
.cproject
.DS_Store
.gdb_history
.gdbinit
.jiri_manifest
.landmines
.local
.packages
.project
.pydevproject
.ssh
.vscode
*_BACKUP_*
*_REMOTE_*
*_LOCAL_*
*_BASE_*
*.dSYM
*.fxt
*.iml
*.orig
*.pyc
*.code-workspace
!fuchsia.code-workspace
*.sublime-project
*.sublime-workspace
*.swp
*.swo
Cargo.lock
!/third_party/rust_crates/**/Cargo.lock
Cargo.toml
!/third_party/rust_crates/**/Cargo.toml
CMakeLists.txt
compile_commands.json
cmake-build-debug/
cscope.*
default.profraw
rls*.log
Session.vim
fidl-tags
tags
TAGS
Thumbs.db
tmp/
!/third_party/rust_crates/vendor/**/tmp/
json_generator_tests_*.txt
tables_generator_tests_*.txt

### fx configuration and cache files.
# NOTE: For any new files, please write files under the top-level .fx/ directory
# instead of adding new top-level files, to avoid cluttering this .gitignore
# file and the top level of local checkouts.
/.fx/
.fx-build-dir
.fx-build-profile-config
.fx-build-metrics-config
.fx-metrics-config
.fx-multi-list
.fx-remote-config
.fx-ssh-path
.fx-sync-from-stem.cache

### Checkout generated files
/build/checkout.gni
/build/cipd.gni

### Infra files
# These files may exist in a checkout on an Infra VM but not locally
/.GUARD_FILE

### 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 repos.
/third_party/*
!/third_party/BUILD.gn
!/third_party/android/platform/system/keymint
/third_party/android/platform/system/keymint/src
!/third_party/boringssl/
/third_party/boringssl/src
!/third_party/colorama/
/third_party/colorama/colorama
!/third_party/flatbuffers/
/third_party/flatbuffers/src
!/third_party/libpng/
/third_party/libpng/src
!/third_party/llvm-libc/
/third_party/llvm-libc/src
!/third_party/gfxstream
/third_party/gfxstream/src
!/third_party/gfxstream/aemu
/third_party/gfxstream/aemu/src
!/third_party/golibs
!/third_party/rust_crates
/third_party/rust_crates/mirrors
!/third_party/jellyfish/
/third_party/jellyfish/jellyfish
!/third_party/modinv/
!/third_party/modp_b64
!/third_party/OWNERS
!/third_party/owners.toml
!/third_party/scudo/
/third_party/scudo/src
/third_party/scudo/gwp_asan
!/third_party/zstd/
/third_party/zstd/src
!/third_party/parameterized
/third_party/parameterized/src
!/third_party/re2/
/third_party/re2/src
!/third_party/pyyaml/
/third_party/pyyaml/src
!/third_party/jinja2/
/third_party/jinja2/src
/third_party/jinja2/jinja2
!/third_party/nlassert/
/third_party/nlassert/src
!/third_party/openssl-ecjpake
/third_party/openssl-ecjpake/src
!/third_party/tpm2-tss/
/third_party/tpm2-tss/src
!/third_party/pigweed
/third_party/pigweed/src
/third_party/pigweed/nanopb
!/third_party/gvisor_syscall_tests
!/third_party/fmtlib
/third_party/fmtlib/src
!/third_party/python_portpicker
/third_party/python_portpicker/src
!/third_party/mobly
/third_party/mobly/src
!/third_party/mini_chromium
!/third_party/crashpad
/third_party/crashpad/src
!/third_party/chromiumos-xorg-conf
/third_party/chromiumos-xorg-conf/src
!/third_party/ubpf
/third_party/ubpf/src
!/third_party/github.com/google/cppdap
/third_party/github.com/google/cppdap/src
!/third_party/pylibs/mypy
/third_party/pylibs/mypy/src
!/third_party/pylibs/mypy_extensions
/third_party/pylibs/mypy_extensions/src
!/third_party/pylibs/typing_extensions
/third_party/pylibs/typing_extensions/src
!/third_party/pyjson5
/third_party/pyjson5/src
!/third_party/chre
/third_party/chre/src
!/third_party/Vulkan-Utility-Libraries
/third_party/Vulkan-Utility-Libraries/src
!/third_party/pypng
/third_party/pypng/src
!/third_party/fuchsia-infra-bazel-rules
/third_party/fuchsia-infra-bazel-rules/src
!/third_party/volk
/third_party/volk/src
!/third_party/glslang
/third_party/glslang/src
!/third_party/shaderc
/third_party/shaderc/src
!/third_party/spirv-cross
/third_party/spirv-cross/src
!/third_party/spirv-headers
/third_party/spirv-headers/src
!/third_party/spirv-tools
/third_party/spirv-tools/src
!/third_party/Vulkan-Headers
/third_party/Vulkan-Headers/src
!/third_party/Vulkan-Loader
/third_party/Vulkan-Loader/src
!/third_party/Vulkan-Tools
/third_party/Vulkan-Tools/src
!/third_party/Vulkan-ValidationLayers
/third_party/Vulkan-ValidationLayers/src

/tmp/
/vendor/
/build/secondary/third_party/ffmpeg
/build/secondary/third_party/protobuf

# rust-analyzer
/rust-project.json

# Symlinks related to the Bazel workspace
/bazel-bin
/bazel-out
/bazel-repos
/bazel-workspace

# Symlinks created by `fx setup-go`.
/go.mod
/go.sum

# 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

# Remote build logs
compiler_info_cache*
reproxy-gomaip.cache*

# Local test coverage file.
lcov.info
.coverage

# Mypy Type Checker extension
/.mypy_cache
