# binaries
bin/
target
target-plain

# Unwanted JARs
/tests/org.eclipse.epsilon.egl.engine.test.dependencies/dependencies.jar
/plugins/org.eclipse.epsilon.ewl.emf/org.eclipse.epsilon.ewl.emf.jar
/releng/org.eclipse.epsilon.updatesite/*.jar

# Ignore IntelliJ files
*.iml
*.idea/

# Maven version bump artifacts
*.versionsBackup

# Debug files
*.phd
*.trc

# Ignore sym-link to project stored in EpsilonLabs
/plugins/org.eclipse.epsilon.antlr.dev

# Ignore Mac OS index files
.DS_Store

# /doc/org.eclipse.epsilon.book/
/doc/org.eclipse.epsilon.book/*.aux
/doc/org.eclipse.epsilon.book/*.bbl
/doc/org.eclipse.epsilon.book/*.blg
/doc/org.eclipse.epsilon.book/*.dvi
/doc/org.eclipse.epsilon.book/*.fdb*
/doc/org.eclipse.epsilon.book/*.lof
/doc/org.eclipse.epsilon.book/*.lot
/doc/org.eclipse.epsilon.book/*.out
/doc/org.eclipse.epsilon.book/*.synctex.*
/doc/org.eclipse.epsilon.book/*.toc
/doc/org.eclipse.epsilon.book/*.log
/doc/org.eclipse.epsilon.book/*.fls
/doc/org.eclipse.epsilon.book/auto

# /examples/org.eclipse.epsilon.workflow.extension.example/
/examples/org.eclipse.epsilon.workflow.extension.example/lib/org.eclipse.epsilon.workflow.extension.example.jar

# /plugins/org.eclipse.epsilon.emc.emf.dt/src/org/eclipse/epsilon/emc/emf/dt/
/plugins/org.eclipse.epsilon.emc.emf.dt/src/org/eclipse/epsilon/emc/emf/dt/parex

# /plugins/org.eclipse.epsilon.help/
/plugins/org.eclipse.epsilon.help/Thumbs.db

# /plugins/org.eclipse.epsilon.updatesite/
/plugins/org.eclipse.epsilon.updatesite/features
/plugins/org.eclipse.epsilon.updatesite/plugins

# /plugins/org.eclipse.epsilon.workflow/
/plugins/org.eclipse.epsilon.workflow/epsilon-ant-standalone.jar

# /plugins/org.eclipse.epsilon.workflow/lib/
/plugins/org.eclipse.epsilon.workflow/lib/*.jar
/plugins/org.eclipse.epsilon.workflow/lib/*.tmp

# /plugins/org.eclipse.epsilon.workflow.emf/lib/
/plugins/org.eclipse.epsilon.workflow.emf/lib/*.jar

# /plugins/org.eclipse.epsilon.workflow.eugenia/
/plugins/org.eclipse.epsilon.workflow.eugenia/lib

# /serverside/org.eclipse.epsilon.egl.servlet/
/serverside/org.eclipse.epsilon.egl.servlet/build

# /tests/org.eclipse.epsilon.eol.engine.test.acceptance/
/tests/org.eclipse.epsilon.eol.engine.test.acceptance/TEST-*.xml

# /tests/org.eclipse.epsilon.hutn.test/
/tests/org.eclipse.epsilon.hutn.test/foo.ecore

# /tests/org.eclipse.epsilon.hutn.test.unit/
/tests/org.eclipse.epsilon.hutn.test.unit/foo.ecore

# /tests/org.eclipse.epsilon.test/
/tests/org.eclipse.epsilon.test/TEST-default.CreateDeleteTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.AssignmentTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.ComparisonTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.MathTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.EqualityTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.CollectionsTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.AnnotatedOperationTests.xml
/tests/org.eclipse.epsilon.test/TEST-default.IsDefinedTests.xml
/tests/org.eclipse.epsilon.test/foo.ecore
/tests/org.eclipse.epsilon.test/TEST-default.StringTests.xml
/tests/org.eclipse.epsilon.test/TEST-*.xml

# /tests/org.eclipse.epsilon.workflow.test/resources/
/tests/org.eclipse.epsilon.workflow.test/resources/TEST-default.sample.xml

# /tests/org.eclipse.epsilon.workflow.test/resources/eunit/
/tests/org.eclipse.epsilon.workflow.test/resources/eunit/TESTS-TestSuites.xml
/tests/org.eclipse.epsilon.workflow.test/resources/eunit/junit-noframes.html

/plugins/org.eclipse.epsilon.updatesite.interim/index.html

# Backup files from Emacs
*~

# EUnit test files in examples
/examples/**/TEST-*.xml
