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

# idea conf files
.idea
*.iml
*.ipr
*.iws
atlassian-ide-plugin.xml

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

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

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

#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
rc
*.flexProperties
*.flexLibProperties
*.project
*.actionScriptProperties
bin-release
