Skip to content

Commit d486010

Browse files
committed
[seti] set languageId associations
1 parent 70ab16c commit d486010

3 files changed

Lines changed: 120 additions & 77 deletions

File tree

extensions/html/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
"mimetypes": ["text/html", "text/x-jshtm", "text/template", "text/ng-template", "application/xhtml+xml"]
1212
}],
1313
"grammars": [{
14-
/* "language": "html", not yet enabled*/
1514
"scopeName": "text.html.basic",
1615
"path": "./syntaxes/HTML.plist"
1716
}]

extensions/theme-seti/build/update-icon-theme.js

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,35 @@ function invertColor(color) {
5454
return res;
5555
}
5656

57+
function getLanguageMappings() {
58+
var langToExt = {
59+
'csharp': ['cs', 'csx']
60+
};
61+
62+
var allExtensions = fs.readdirSync('..');
63+
for (var i= 0; i < allExtensions.length; i++) {
64+
let dirPath = path.join('..', allExtensions[i], 'package.json');
65+
if (!fs.lstatSync(path.join('..', allExtensions[i])).isDirectory() || !fs.lstatSync(dirPath).isFile()) {
66+
continue;
67+
}
68+
69+
let content = fs.readFileSync(dirPath).toString();
70+
let jsonContent = JSON.parse(content);
71+
let languages = jsonContent.contributes && jsonContent.contributes.languages;
72+
if (Array.isArray(languages)) {
73+
for (var k = 0; k < languages.length; k++) {
74+
var extensions = languages[k].extensions;
75+
var languageId = languages[k].id;
76+
if (Array.isArray(extensions) && languageId) {
77+
langToExt[languageId] = extensions.map(function (e) { return e.substr(1); });
78+
}
79+
}
80+
}
81+
}
82+
83+
return langToExt;
84+
}
85+
5786

5887
exports.update = function () {
5988
var fontMappings = 'https://raw.githubusercontent.com/jesseweed/seti-ui/master/styles/_fonts/seti.less';
@@ -63,6 +92,7 @@ exports.update = function () {
6392
var fileName2Def = {};
6493
var def2ColorId = {};
6594
var colorId2Value = {};
95+
var lang2Def = {};
6696

6797
function writeFileIconContent(info) {
6898
var iconDefinitions = {};
@@ -106,14 +136,16 @@ exports.update = function () {
106136
file: "_default",
107137
fileExtensions: ext2Def,
108138
fileNames: fileName2Def,
139+
languageIds: lang2Def,
109140
light: {
110141
file: "_default_light",
111142
fileExtensions: getInvertSet(ext2Def),
143+
languageIds: getInvertSet(lang2Def),
112144
fileNames: getInvertSet(fileName2Def)
113145
},
114146
version: 'https://github.com/jesseweed/seti-ui/commit/' + info.commitSha,
115147
};
116-
fs.writeFileSync('./icons/seti-icon-theme.json', JSON.stringify(res, null, '\t'));
148+
fs.writeFileSync('./icons/vs-seti-icon-theme.json', JSON.stringify(res, null, '\t'));
117149

118150
}
119151

@@ -140,6 +172,26 @@ exports.update = function () {
140172
}
141173
def2ColorId[def] = colorId;
142174
}
175+
// replace extensions for languageId
176+
var langToExt = getLanguageMappings();
177+
for (var lang in langToExt) {
178+
var exts = langToExt[lang];
179+
var preferredDef = null;
180+
// use the first file association for the preferred definition
181+
for (var i1 = 0; i1 < exts.length && !preferredDef; i1++) {
182+
preferredDef = ext2Def[exts[i1]];
183+
}
184+
if (preferredDef) {
185+
lang2Def[lang] = preferredDef;
186+
for (var i1 = 0; i1 < exts.length; i1++) {
187+
// remove the extention association, unless it is different from the preferred
188+
if (ext2Def[exts[i1]] === preferredDef) {
189+
delete ext2Def[exts[i1]];
190+
}
191+
}
192+
}
193+
}
194+
143195
var colors = 'https://raw.githubusercontent.com/jesseweed/seti-ui/master/styles/ui-variables.less';
144196
return download(colors).then(function (content) {
145197
var regex3 = /(@[\w-]+):\s*(#[0-9a-z]+)/g;
@@ -156,7 +208,7 @@ exports.update = function () {
156208
console.error(e);
157209
}
158210
});
159-
});
211+
});
160212
});
161213
}, console.error);
162214
}

0 commit comments

Comments
 (0)