*.pyc

# Directories added by gclient sync and the GN build
/.cipd
/.gclient
/.gclient_entries
/.gclient_previous_custom_vars
/.gclient_previous_sync_commits
/.gcs_entries
/.reproxy_cache
/bazel-*
/build
/buildtools
/testing
/third_party/abseil-cpp/
/third_party/angle
/third_party/binutils
/third_party/catapult
/third_party/clang-format
/third_party/cpplint
/third_party/depot_tools
/third_party/dxc
/third_party/dxheaders
/third_party/glfw
/third_party/glslang/src/
/third_party/google_benchmark/src
/third_party/googletest
/third_party/gpuweb
/third_party/jinja2
/third_party/jsoncpp
/third_party/khronos/EGL-Registry
/third_party/khronos/OpenGL-Registry
/third_party/libc++/src
/third_party/libc++abi/src
/third_party/llvm-build
/third_party/markupsafe
/third_party/ninja
/third_party/node
/third_party/node-addon-api
/third_party/node-api-headers
/third_party/partition_alloc
/third_party/protobuf
/third_party/rust-toolchain
/third_party/spirv-cross/src/
/third_party/spirv-headers/src/
/third_party/spirv-tools/src/
/third_party/swiftshader
/third_party/vulkan-deps
/third_party/vulkan-headers/src/
/third_party/vulkan-loader/src/
/third_party/vulkan-tools/src/
/third_party/vulkan-utility-libraries/src/
/third_party/vulkan-validation-layers/src/
/third_party/vulkan_memory_allocator
/third_party/webgpu-cts
/third_party/zlib
/tools/bin
/tools/clang
/tools/cmake*
/tools/golang
/tools/memory
/tools/rust
/out

# Tint test validation cache file
/test/tint/validation.cache

# Modified from https://www.gitignore.io/api/vim,macos,linux,emacs,windows,sublimetext,visualstudio,visualstudiocode,intellij

### Emacs ###
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*

### Linux ###
.fuse_hidden*
.directory
.Trash-*
.nfs*

### macOS ###
*.DS_Store
.AppleDouble
.LSOverride
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### SublimeText ###
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache
*.sublime-workspace
*.sublime-project
sftp-config.json
GitHub.sublime-settings

### Vim ###
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
Session.vim
.netrwhist
tags

### VisualStudio ###
.vs/*

### VisualStudioCode ###
.vscode/*
!.vscode/tasks.json

### Windows ###
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
Desktop.ini
$RECYCLE.BIN/

### Intellij ###
.idea

### Cached node transpiled tools
/.node_transpile_work_dir

# Misc inherited from Tint
/test.wgsl
coverage.summary
default.profraw
lcov.info
/cmake-build-*/
/build-*/
/testing

### Clang-Tidy files
all_findings.json

tint.dot
