Skip to content

Commit

Permalink
Merge pull request #102101 from microsoft/aeschli/sortExtByPrimaryLan…
Browse files Browse the repository at this point in the history
…guage
  • Loading branch information
alexdima committed Jul 21, 2020
2 parents a5aa8f5 + 226e7ca commit 0e78d70
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/vs/editor/common/services/languagesRegistry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 = lang.extensions.concat(resolvedLanguage.extensions);
} else {
resolvedLanguage.extensions = resolvedLanguage.extensions.concat(lang.extensions);
}
for (let extension of lang.extensions) {
mime.registerTextMime({ id: langId, mime: primaryMime, extension: extension }, this._warnOnOverwrite);
resolvedLanguage.extensions.push(extension);
}
}

Expand Down
26 changes: 26 additions & 0 deletions src/vs/editor/test/common/services/languagesRegistry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,32 @@ 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');
});

test('filenames', () => {
let registry = new LanguagesRegistry(false);

Expand Down

0 comments on commit 0e78d70

Please sign in to comment.