# Ignore backup files.
*~
# Ignore Vim swap files.
.*.swp
# macOS-specific excludes
.DS_Store
# Ignore files generated by IDEs.
/.aswb/
/.bazelbsp/
/.cache/
/.classpath
/.clwb/
/.factorypath
/.idea/
/.ijwb/
/.project
/.settings
/.vscode/
.eclipse/
.settings/
.classpath
.project
eclipse-*bin/
/bazel.iml
# Ignore all bazel-* symlinks. There is no full list since this can change
# based on the name of the directory bazel is cloned into.
/bazel-*
# Ignore outputs generated during Bazel bootstrapping.
/output/
# Ignore jekyll build output.
/production
/.sass-cache
# Bazelisk version file
.bazelversion
# User-specific .bazelrc
user.bazelrc
