提交 6c0fe201 编写于 作者: A Alex Dima

Fixes #3594: copy over filenamePatterns when validating language extension point

上级 17598192
...@@ -36,6 +36,17 @@ export interface ILanguageExtensionPoint { ...@@ -36,6 +36,17 @@ export interface ILanguageExtensionPoint {
configuration?: string; configuration?: string;
} }
export interface IValidLanguageExtensionPoint {
id: string;
extensions: string[];
filenames: string[];
filenamePatterns: string[];
firstLine: string;
aliases: string[];
mimetypes: string[];
configuration: string;
}
export interface IModeService { export interface IModeService {
serviceId: ServiceIdentifier<any>; serviceId: ServiceIdentifier<any>;
......
...@@ -32,7 +32,7 @@ import {IRichEditConfiguration, RichEditSupport} from 'vs/editor/common/modes/su ...@@ -32,7 +32,7 @@ import {IRichEditConfiguration, RichEditSupport} from 'vs/editor/common/modes/su
import {ISuggestContribution, SuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport'; import {ISuggestContribution, SuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport';
import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService';
import {LanguagesRegistry} from 'vs/editor/common/services/languagesRegistry'; import {LanguagesRegistry} from 'vs/editor/common/services/languagesRegistry';
import {ILanguageExtensionPoint, IModeLookupResult, IModeService} from 'vs/editor/common/services/modeService'; import {ILanguageExtensionPoint, IValidLanguageExtensionPoint, IModeLookupResult, IModeService} from 'vs/editor/common/services/modeService';
import {IModelService} from 'vs/editor/common/services/modelService'; import {IModelService} from 'vs/editor/common/services/modelService';
import {IConfigurationService, IConfigurationServiceEvent, ConfigurationServiceEventTypes} from 'vs/platform/configuration/common/configuration'; import {IConfigurationService, IConfigurationServiceEvent, ConfigurationServiceEventTypes} from 'vs/platform/configuration/common/configuration';
...@@ -520,7 +520,7 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl { ...@@ -520,7 +520,7 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl {
this._hasInitialized = false; this._hasInitialized = false;
languagesExtPoint.setHandler((extensions:IExtensionPointUser<ILanguageExtensionPoint[]>[]) => { languagesExtPoint.setHandler((extensions:IExtensionPointUser<ILanguageExtensionPoint[]>[]) => {
let allValidLanguages: ILanguageExtensionPoint[] = []; let allValidLanguages: IValidLanguageExtensionPoint[] = [];
for (let i = 0, len = extensions.length; i < len; i++) { for (let i = 0, len = extensions.length; i < len; i++) {
let extension = extensions[i]; let extension = extensions[i];
...@@ -531,15 +531,18 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl { ...@@ -531,15 +531,18 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl {
} }
for (let j = 0, lenJ = extension.value.length; j < lenJ; j++) { for (let j = 0, lenJ = extension.value.length; j < lenJ; j++) {
if (isValidLanguageExtensionPoint(extension.value[j], extension.collector)) { let ext = extension.value[j];
if (isValidLanguageExtensionPoint(ext, extension.collector)) {
let configuration = (ext.configuration ? paths.join(extension.description.extensionFolderPath, ext.configuration) : ext.configuration);
allValidLanguages.push({ allValidLanguages.push({
id: extension.value[j].id, id: ext.id,
extensions: extension.value[j].extensions, extensions: ext.extensions,
filenames: extension.value[j].filenames, filenames: ext.filenames,
firstLine: extension.value[j].firstLine, filenamePatterns: ext.filenamePatterns,
aliases: extension.value[j].aliases, firstLine: ext.firstLine,
mimetypes: extension.value[j].mimetypes, aliases: ext.aliases,
configuration: extension.value[j].configuration ? paths.join(extension.description.extensionFolderPath, extension.value[j].configuration) : extension.value[j].configuration mimetypes: ext.mimetypes,
configuration: configuration
}); });
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册