# GNU make tools #
##################
/autom4te.cache
config/config.sub
config/config.guess
config/sp-config-h.in
config/compile
config/depcomp
config/install-sh
config/ltmain.sh
config/missing
config/test-driver
configure
makeflags
*.m4

# Bazel generated files #
#########################
/bazel-*
scripts/compile/env_exec.sh
config/heron-config.h
tools/cpp/osx_gcc_wrapper.sh
tools/cpp/CROSSTOOL
tools/cpp/osx
tools/cpp/gcc
tools/cpp/g++
tools/jdk/ijar
.DS_Store

# Vim
.*.swp
.*.swo

# Compiled source #
###################
/release/*.pom
*.com
*.class
*.dll
*.exe
*.o
*.so
*.jar
*.fyc
*.rbc
*.pyc
*.in
*.in~
*.swp

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.iso
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Trashes

# Editor generated files #
##########################
.emacs-project
.ropeproject
*.swp

## Intellij ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm

## Directory-based project format
.idea/
# if you remove the above rule, at least ignore user-specific stuff:
.idea/workspace.xml
.idea/tasks.xml
#  and these sensitive or high-churn files:
.idea/dataSources.ids
.idea/dataSources.xml
.idea/sqlDataSources.xml
.idea/dynamic.xml

# Intellij bazel plugin
.ijwb
.clwb

## Maven generated files
.classpath.txt

## Generated by CI jobs run locally
heron_build.txt

## File-based project format
*.ipr
*.iws
*.iml
*.project
*.cproject
*.pydevproject

## Additional for IntelliJ
out/

# Eclipse
.autotools
.settings/
.metadata/
.project
.classpath
.autotools
target

# generated by mpeltonen/sbt-idea plugin
.idea_modules/

# generated by JIRA plugin
atlassian-ide-plugin.xml

# generated by Crashlytics plugin (for Android Studio and Intellij)
com_crashlytics_export_strings.xml

# generated for the website
website/node_modules/
website/public/

website2/website/public
website2/website/static/api
website2/website/venv/

# Visual Studio Code
.vscode
vs.code-workspace

# integration_test
results/

# Vagrant
vagrant/.vagrant/
