提交 4fcd9c3c 编写于 作者: M Martin Aeschlimann

Sort extensions by primary languages

上级 9b1773e0
......@@ -153,9 +153,14 @@ export class LanguagesRegistry extends Disposable {
}
if (Array.isArray(lang.extensions)) {
if (lang.configuration) {
// insert first as this appears to be the 'primary' language definition
resolvedLanguage.extensions.splice(0, 0, ...lang.extensions);
} else {
resolvedLanguage.extensions.push(...lang.extensions);
}
for (let extension of lang.extensions) {
mime.registerTextMime({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);
resolvedLanguage.extensions.push(extension);
}
}
......
......@@ -221,6 +221,37 @@ suite('LanguagesRegistry', () => {
assert.deepEqual(registry.getExtensions('aName'), ['aExt', 'aExt2']);
});
test('extensions of primary language registration come first', () => {
let registry = new LanguagesRegistry(false);
registry._registerLanguages([{
id: 'a',
extensions: ['aExt3']
}]);
assert.deepEqual(registry.getExtensions('a')[0], 'aExt3');
registry._registerLanguages([{
id: 'a',
configuration: URI.file('conf.json'),
extensions: ['aExt']
}]);
assert.deepEqual(registry.getExtensions('a')[0], 'aExt');
registry._registerLanguages([{
id: 'a',
extensions: ['aExt2']
}]);
assert.deepEqual(registry.getExtensions('a')[0], 'aExt');
registry._registerLanguages([{
id: 'a',
extensions: ['aExt2']
}]);
});
test('filenames', () => {
let registry = new LanguagesRegistry(false);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册