@@ -9,13 +9,27 @@ import * as fs from 'fs';
99import * as plistParser from 'fast-plist' ;
1010import request from 'request-light' ;
1111
12+ /**
13+ * @typedef {{
14+ * themeContent: Object,
15+ * themeName: string,
16+ * themeBase: string,
17+ * themeFileName: string,
18+ * tmThemeFileName: string,
19+ * tmThemeContent: string,
20+ * } & import('./index.js').ExtensionConfig } ExtensionConfig
21+ */
22+
23+ /**
24+ * @type {import('./index.js').ExtensionGenerator }
25+ */
1226export default {
1327 id : 'ext-colortheme' ,
1428 aliases : [ 'colortheme' ] ,
1529 name : 'New Color Theme' ,
1630 /**
1731 * @param {Generator } generator
18- * @param {Object } extensionConfig
32+ * @param {ExtensionConfig } extensionConfig
1933 */
2034 prompting : async ( generator , extensionConfig ) => {
2135
@@ -63,7 +77,7 @@ export default {
6377 } ,
6478 /**
6579 * @param {Generator } generator
66- * @param {Object } extensionConfig
80+ * @param {ExtensionConfig } extensionConfig
6781 */
6882 writing : ( generator , extensionConfig ) => {
6983 if ( extensionConfig . tmThemeFileName ) {
@@ -92,7 +106,7 @@ export default {
92106
93107/**
94108 * @param {Generator } generator
95- * @param {Object } extensionConfig
109+ * @param {ExtensionConfig } extensionConfig
96110 */
97111async function askForThemeInfo ( generator , extensionConfig ) {
98112 if ( generator . options [ 'quick' ] ) {
@@ -132,7 +146,12 @@ async function askForThemeInfo(generator, extensionConfig) {
132146 await convertTheme ( null , extensionConfig , false , generator ) ;
133147 }
134148}
135-
149+ /**
150+ * @param {string } location
151+ * @param {ExtensionConfig } extensionConfig
152+ * @param {boolean } inline
153+ * @param {Generator } generator
154+ */
136155function convertTheme ( location , extensionConfig , inline , generator ) {
137156 if ( ! location ) {
138157 extensionConfig . tmThemeFileName = '' ;
@@ -187,6 +206,12 @@ function convertTheme(location, extensionConfig, inline, generator) {
187206 }
188207}
189208
209+ /**
210+ * @param {ExtensionConfig } extensionConfig
211+ * @param {string } tmThemeFileName
212+ * @param {string } body
213+ * @param {Generator } generator
214+ */
190215function processContent ( extensionConfig , tmThemeFileName , body , generator ) {
191216 const themeNameMatch = body . match ( / < k e y > n a m e < \/ k e y > \s * < s t r i n g > ( [ ^ < ] * ) / ) ;
192217 const themeName = themeNameMatch ? themeNameMatch [ 1 ] : '' ;
@@ -235,6 +260,11 @@ const mappings = {
235260 "ansiBrightCyan" : [ "terminal.ansiBrightCyan" ] , "ansiBrightWhite" : [ "terminal.ansiBrightWhite" ]
236261} ;
237262
263+ /**
264+ * @param {string } content
265+ * @param {string } tmThemeFileName
266+ * @param {Generator } generator
267+ */
238268function migrate ( content , tmThemeFileName , generator ) {
239269 let result = { } ;
240270 let theme ;
0 commit comments