# eclipse conf file
.settings
.classpath
.project
.manager
.scala_dependencies
.cache
.actionScriptProperties
.flexProperties
.flexLibProperties

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

# VSCode conf files
**/.vscode/**
*.code-workspace
!/archetypes/**


# building
target/
[Bb]uild/
null
tmp
temp
dist
test-output
build.log
release
fonts
out
gen
bin-debug
bin-release
binjs-debug
binjs-release
examples/FlexJSTest_again/html-template
examples/FlexJSTest_again/bin
rat.report
mustella/tests/basicTests/bin
mustella/tests/mxtests/basicTests/bin
asdoc-output

#Apache Flex Projects
lib/
libs/
in/
swfobject/
flex2/
thirdparty/
3.0.33/
3.0.33

*.pbj
*.vms
*.ser
*.mxp
bundles.properties
empty.properties
css_*.properties
FXGException_*.properties
FXGLog_*.properties
FABridge.js
frameworks/projects/spark/manifest.xml
frameworks/ace-config.xml
frameworks/air-config.xml
frameworks/createjs-config.xml
frameworks/flex-config.xml
frameworks/jquery-config.xml
frameworks/js-config.xml
frameworks/node-config.xml
frameworks/royale-config.xml
env.properties
local.properties
/flex-sdk-description.xml
/royale-sdk-description.xml

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

#Files we fake for Flash Builder SDKs
frameworks/airmobile-config.xml
frameworks/mxml-manifest.xml
frameworks/spark-manifest.xml
frameworks/themes/Halo/Halo.swc
frameworks/themes/Spark/spark.css
ide/flashbuilder/flashbuilder-config.xml

#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/
[Dd]ebug/
[Rr]elease*/
Ankh.NoLoad
!releasemgr

#Tooling
_ReSharper*/
*.resharper

#CVS files
.svn
.git

# Office Temp Files
~$*

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

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

#VF2JS generated files
vf2js/frameworks/js/

#Royale generated files
frameworks/js/Royale/generated-sources
manualtests/RoyaleTest_SVG/bin
*.css.map

#npm
node_modules
npm/cli/test

frameworks/projects/MXRoyale/.vscode
.gitignore
.gitignore
