# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache

# idea conf files
.idea
*.iml
*.ipr
*.iws

# building
target
[Bb]uild/
null
tmp
temp
dist
test-output
build.log
release
out
gen

#Apache Flex Projects
lib/
libs/
in/
swfobject/
ide/
flex2/
thirdparty/
META-INF/
3.0.33/
tempDoc/

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
env.properties
local.properties
flex-sdk-description.xml
packages.dita
rat.report

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#CVS files
.svn
.git

# Office Temp Files
~$*

#Binaries
*.dll
*.bin
*.com
*.exe
*.class
*.jar
*.swf
*.swc

#Compressed Files
*.zip
*.rar
*.tar
