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

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

# VSCode conf files
**/.vscode/**


# 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/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
