# 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


# 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
