*.pyc

# Directories added by gclient sync and the GN build
/.cipd
/.gclient
/.gclient_entries
/build
/buildtools
/testing
/third_party/abseil-cpp/
/third_party/angle
/third_party/catapult
/third_party/clang-format
/third_party/glfw
/third_party/googletest
/third_party/gpuweb
/third_party/webgpu-cts
/third_party/jinja2
/third_party/jsoncpp
/third_party/llvm-build
/third_party/markupsafe
/third_party/node
/third_party/node-addon-api
/third_party/node-api-headers
/third_party/swiftshader
/third_party/tint
/third_party/vulkan-deps
/third_party/vulkan_memory_allocator
/third_party/zlib
/tools/clang
/tools/cmake
/tools/golang
/tools/memory
/out

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

### 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/

### Dawn node tools binaries
src/dawn/node/tools/bin/

### Cached node transpiled tools
/.node_transpile_work_dir
