Merge pull request #102101 from microsoft/aeschli/sortExtByPrimaryLanguage
This commit is contained in:
commit
0e78d70a99
|
@ -153,9 +153,14 @@ export class LanguagesRegistry extends Disposable {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(lang.extensions)) {
|
if (Array.isArray(lang.extensions)) {
|
||||||
|
if (lang.configuration) {
|
||||||
|
// insert first as this appears to be the 'primary' language definition
|
||||||
|
resolvedLanguage.extensions = lang.extensions.concat(resolvedLanguage.extensions);
|
||||||
|
} else {
|
||||||
|
resolvedLanguage.extensions = resolvedLanguage.extensions.concat(lang.extensions);
|
||||||
|
}
|
||||||
for (let extension of lang.extensions) {
|
for (let extension of lang.extensions) {
|
||||||
mime.registerTextMime({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);
|
mime.registerTextMime({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);
|
||||||
resolvedLanguage.extensions.push(extension);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -221,6 +221,32 @@ suite('LanguagesRegistry', () => {
|
||||||
assert.deepEqual(registry.getExtensions('aName'), ['aExt', 'aExt2']);
|
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');
|
||||||
|
});
|
||||||
|
|
||||||
test('filenames', () => {
|
test('filenames', () => {
|
||||||
let registry = new LanguagesRegistry(false);
|
let registry = new LanguagesRegistry(false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue