2727define ( function ( require , exports , module ) {
2828 "use strict" ;
2929
30- var ExtensionManager = brackets . getModule ( "extensibility/ExtensionManager" ) ,
31- _ = brackets . getModule ( "thirdparty/lodash" ) ;
30+ var _ = brackets . getModule ( "thirdparty/lodash" ) ,
31+ ExtensionManager = brackets . getModule ( "extensibility/ExtensionManager" ) ,
32+ PreferencesManager = brackets . getModule ( "preferences/PreferencesManager" ) ;
33+
34+ var themesPref = PreferencesManager . getExtensionPrefs ( "themes" ) ;
3235
3336
3437 /**
@@ -67,5 +70,43 @@ define(function (require, exports, module) {
6770 return result . promise ( ) ;
6871 }
6972
70- exports . getUserInstalledExtensions = getUserInstalledExtensions ;
71- } ) ;
73+ /**
74+ * Utility function to get the user installed theme which are present in the registry
75+ */
76+ function getUserInstalledTheme ( ) {
77+ var result = new $ . Deferred ( ) ;
78+
79+ var installedTheme = themesPref . get ( "theme" ) ,
80+ bracketsTheme ;
81+
82+ if ( installedTheme === "light-theme" || installedTheme === "dark-theme" ) {
83+ return result . resolve ( installedTheme ) ;
84+ }
85+
86+ if ( ! ExtensionManager . hasDownloadedRegistry ) {
87+ ExtensionManager . downloadRegistry ( ) . done ( function ( ) {
88+ bracketsTheme = ExtensionManager . extensions [ installedTheme ] ;
89+ if ( bracketsTheme && bracketsTheme . installInfo && bracketsTheme . installInfo . locationType === ExtensionManager . LOCATION_USER && bracketsTheme . registryInfo ) {
90+ result . resolve ( installedTheme ) ;
91+ } else {
92+ result . reject ( ) ;
93+ }
94+ } )
95+ . fail ( function ( ) {
96+ result . reject ( ) ;
97+ } ) ;
98+ } else {
99+ bracketsTheme = ExtensionManager . extensions [ installedTheme ] ;
100+ if ( bracketsTheme && bracketsTheme . installInfo && bracketsTheme . installInfo . locationType === ExtensionManager . LOCATION_USER && bracketsTheme . registryInfo ) {
101+ result . resolve ( installedTheme ) ;
102+ } else {
103+ result . reject ( ) ;
104+ }
105+ }
106+
107+ return result . promise ( ) ;
108+ }
109+
110+ exports . getUserInstalledExtensions = getUserInstalledExtensions ;
111+ exports . getUserInstalledTheme = getUserInstalledTheme ;
112+ } ) ;
0 commit comments