generator-code
Advanced tools
Comparing version 1.2.13 to 1.2.15
@@ -37,3 +37,3 @@ | ||
} else { | ||
throw new Error("Problems loading language definition file: " + r.responseText); | ||
return Promise.reject("Problems loading language definition file: " + r.responseText); | ||
} | ||
@@ -40,0 +40,0 @@ }); |
@@ -22,2 +22,4 @@ /*--------------------------------------------------------- | ||
abort = false; | ||
constructor(args, opts) { | ||
@@ -129,3 +131,2 @@ super(args, opts); | ||
}).then(answer => { | ||
let inline = true; | ||
let type = answer.themeImportType; | ||
@@ -190,3 +191,6 @@ if (type === 'import-keep' || type === 'import-inline') { | ||
if (typeof snippetPath === 'string' && snippetPath.length > 0) { | ||
snippetConverter.processSnippetFolder(snippetPath, generator); | ||
const count = snippetConverter.processSnippetFolder(snippetPath, generator); | ||
if (count <= 0) { | ||
return snippetPrompt(); | ||
} | ||
} else { | ||
@@ -517,5 +521,10 @@ generator.extensionConfig.snippets = {}; | ||
result = result.then(_ => { | ||
return new Promise((s, r) => { | ||
setTimeout(_ => prompt().then(s, r), 0); // set timeout is required, otherwise node hangs | ||
}); | ||
if (!this.abort) { | ||
return new Promise((s, r) => { | ||
setTimeout(_ => prompt().then(s, r), 0); // set timeout is required, otherwise node hangs | ||
}); | ||
} | ||
}, error => { | ||
generator.log(error.toString()); | ||
this.abort = true; | ||
}) | ||
@@ -527,2 +536,5 @@ } | ||
writing() { | ||
if (this.abort) { | ||
return; | ||
} | ||
this.sourceRoot(path.join(__dirname, './templates/' + this.extensionConfig.type)); | ||
@@ -718,2 +730,5 @@ | ||
install() { | ||
if (this.abort) { | ||
return; | ||
} | ||
process.chdir(this.extensionConfig.name); | ||
@@ -732,3 +747,7 @@ | ||
end() { | ||
if (this.abort) { | ||
return; | ||
} | ||
// Git init | ||
@@ -735,0 +754,0 @@ if (this.extensionConfig.gitInit) { |
@@ -532,3 +532,3 @@ { | ||
"settings": { | ||
"fontStyle": "italic", | ||
"fontStyle": "italic" | ||
} | ||
@@ -535,0 +535,0 @@ }, |
@@ -37,5 +37,5 @@ /*--------------------------------------------------------- | ||
} | ||
processContent(extensionConfig, tmThemeFileName, r.responseText, generator); | ||
return processContent(extensionConfig, tmThemeFileName, r.responseText, generator); | ||
} else { | ||
throw new Error("Problems loading theme: HTTP status " + r.status); | ||
return Promise.reject("Problems loading theme: HTTP status " + r.status); | ||
} | ||
@@ -56,3 +56,3 @@ }); | ||
} | ||
processContent(extensionConfig, fileName, body.toString(), generator); | ||
return processContent(extensionConfig, fileName, body.toString(), generator); | ||
} else { | ||
@@ -62,3 +62,2 @@ return Promise.reject("Problems loading theme: Not found"); | ||
} | ||
return Promise.resolve(); | ||
} | ||
@@ -69,13 +68,18 @@ | ||
var themeName = themeNameMatch ? themeNameMatch[1] : ''; | ||
extensionConfig.themeContent = migrate(body, tmThemeFileName, generator); | ||
if (tmThemeFileName) { | ||
if (tmThemeFileName.indexOf('.tmTheme') === -1) { | ||
tmThemeFileName = tmThemeFileName + '.tmTheme'; | ||
try { | ||
extensionConfig.themeContent = migrate(body, tmThemeFileName, generator); | ||
if (tmThemeFileName) { | ||
if (tmThemeFileName.indexOf('.tmTheme') === -1) { | ||
tmThemeFileName = tmThemeFileName + '.tmTheme'; | ||
} | ||
extensionConfig.tmThemeFileName = tmThemeFileName; | ||
extensionConfig.tmThemeContent = body; | ||
} | ||
extensionConfig.tmThemeFileName = tmThemeFileName; | ||
extensionConfig.tmThemeContent = body; | ||
extensionConfig.themeName = themeName; | ||
extensionConfig.displayName = themeName; | ||
return Promise.resolve(); | ||
} catch (e) { | ||
return Promise.reject(e); | ||
} | ||
extensionConfig.themeName = themeName; | ||
extensionConfig.displayName = themeName; | ||
}; | ||
@@ -111,56 +115,51 @@ | ||
function migrate(content, tmThemeFileName, generator) { | ||
let result = {}; | ||
var theme; | ||
try { | ||
let result = {}; | ||
var theme; | ||
try { | ||
theme = plistParser.parse(content); | ||
} catch (e) { | ||
generator.log(tmThemeFileName + " not be parsed: " + e.toString()); | ||
return undefined; | ||
} | ||
let settings = theme.settings; | ||
if (Array.isArray(settings)) { | ||
let colorMap = {}; | ||
for (let entry of settings) { | ||
let scope = entry.scope; | ||
if (scope) { | ||
let parts = scope.split(',').map(p => p.trim()); | ||
if (parts.length > 1) { | ||
entry.scope = parts; | ||
} | ||
} else { | ||
var entrySettings = entry.settings; | ||
let notSupported = []; | ||
for (let entry in entrySettings) { | ||
let mapping = mappings[entry]; | ||
if (mapping) { | ||
for (let newKey of mapping) { | ||
colorMap[newKey] = entrySettings[entry]; | ||
} | ||
if (entry !== 'foreground' && entry !== 'background') { | ||
delete entrySettings[entry]; | ||
} | ||
} else { | ||
notSupported.push(entry); | ||
theme = plistParser.parse(content); | ||
} catch (e) { | ||
throw new Error(tmThemeFileName + " not be parsed: " + e.toString()); | ||
} | ||
let settings = theme.settings; | ||
if (Array.isArray(settings)) { | ||
let colorMap = {}; | ||
for (let entry of settings) { | ||
let scope = entry.scope; | ||
if (scope) { | ||
let parts = scope.split(',').map(p => p.trim()); | ||
if (parts.length > 1) { | ||
entry.scope = parts; | ||
} | ||
} else { | ||
var entrySettings = entry.settings; | ||
let notSupported = []; | ||
for (let entry in entrySettings) { | ||
let mapping = mappings[entry]; | ||
if (mapping) { | ||
for (let newKey of mapping) { | ||
colorMap[newKey] = entrySettings[entry]; | ||
} | ||
if (entry !== 'foreground' && entry !== 'background') { | ||
delete entrySettings[entry]; | ||
} | ||
} else { | ||
notSupported.push(entry); | ||
} | ||
if (notSupported.length > 0) { | ||
generator.log('Note: the following theming properties are not supported by VSCode and will be ignored: ' + notSupported.join(', ')) | ||
} | ||
} | ||
if (notSupported.length > 0) { | ||
generator.log('Note: the following theming properties are not supported by VSCode and will be ignored: ' + notSupported.join(', ')) | ||
} | ||
} | ||
if (!tmThemeFileName) { | ||
result.tokenColors = settings; | ||
} else { | ||
result.tokenColors = './' + tmThemeFileName; | ||
} | ||
result.colors = colorMap; | ||
} | ||
return result | ||
} catch (e) { | ||
console.log(e); | ||
if (!tmThemeFileName) { | ||
result.tokenColors = settings; | ||
} else { | ||
result.tokenColors = './' + tmThemeFileName; | ||
} | ||
result.colors = colorMap; | ||
} | ||
return result; | ||
}; | ||
exports.convertTheme = convertTheme; | ||
exports.convertTheme = convertTheme; |
{ | ||
"name": "generator-code", | ||
"version": "1.2.13", | ||
"version": "1.2.15", | ||
"description": "Yeoman generator for Visual Studio Code Extensions", | ||
@@ -44,3 +44,3 @@ "keywords": [ | ||
"sax": "^1.2.4", | ||
"yeoman-generator": "^4.9.0", | ||
"yeoman-generator": "^4.10.1", | ||
"yosay": "^2.0.2" | ||
@@ -52,7 +52,7 @@ }, | ||
"@types/yeoman-generator": "^3.1.4", | ||
"mocha": "^7.1.2", | ||
"mocha": "^7.2.0", | ||
"yeoman-assert": "^3.1.1", | ||
"yeoman-test": "^2.4.1", | ||
"yeoman-test": "^2.6.0", | ||
"yo": "^3.1.1" | ||
} | ||
} |
146097
3134
Updatedyeoman-generator@^4.10.1