Split isRegisteredMode into isRegisteredLanguageId and isRegisteredMimeType

This commit is contained in:
Alex Dima 2021-12-08 14:53:01 +01:00
parent 0c202aa22a
commit fcf55dce4a
No known key found for this signature in database
GPG key ID: 39563C1504FDD0C9
6 changed files with 22 additions and 13 deletions

View file

@ -35,7 +35,8 @@ export interface ILanguageService {
onLanguagesMaybeChanged: Event<void>;
// --- reading
isRegisteredMode(mimetypeOrModeId: string): boolean;
isRegisteredLanguageId(languageId: string): boolean;
isRegisteredMimeType(mimeType: string): boolean;
getRegisteredModes(): string[];
getRegisteredLanguageNames(): string[];
getExtensions(alias: string): string[];

View file

@ -76,8 +76,12 @@ export class LanguageService extends Disposable implements ILanguageService {
super.dispose();
}
public isRegisteredMode(mimetypeOrModeId: string): boolean {
return this._registry.isRegisteredMode(mimetypeOrModeId);
public isRegisteredLanguageId(languageId: string): boolean {
return this._registry.isRegisteredLanguageId(languageId);
}
public isRegisteredMimeType(mimeType: string): boolean {
return this._registry.isRegisteredMimeType(mimeType);
}
public getRegisteredModes(): string[] {

View file

@ -257,13 +257,12 @@ export class LanguagesRegistry extends Disposable {
}
}
public isRegisteredMode(mimetypeOrModeId: string): boolean {
// Is this a known mime type ?
if (hasOwnProperty.call(this._mimeTypesMap, mimetypeOrModeId)) {
return true;
}
// Is this a known mode id ?
return hasOwnProperty.call(this._languages, mimetypeOrModeId);
public isRegisteredLanguageId(languageId: string): boolean {
return hasOwnProperty.call(this._languages, languageId);
}
public isRegisteredMimeType(mimeType: string): boolean {
return hasOwnProperty.call(this._mimeTypesMap, mimeType);
}
public getRegisteredModes(): string[] {

View file

@ -859,7 +859,12 @@ export class MonarchTokenizer implements modes.ITokenizationSupport {
}
private _locateMode(mimetypeOrModeId: string): string | null {
if (!mimetypeOrModeId || !this._languageService.isRegisteredMode(mimetypeOrModeId)) {
if (!mimetypeOrModeId) {
return null;
}
const isRegisteredLanguageId = this._languageService.isRegisteredLanguageId(mimetypeOrModeId);
const isRegisteredMimeType = this._languageService.isRegisteredMimeType(mimetypeOrModeId);
if (!isRegisteredLanguageId && !isRegisteredMimeType) {
return null;
}

View file

@ -63,7 +63,7 @@ namespace snippetExt {
return null;
}
if (!isFalsyOrWhitespace(snippet.language) && !languageService.isRegisteredMode(snippet.language)) {
if (!isFalsyOrWhitespace(snippet.language) && !languageService.isRegisteredLanguageId(snippet.language)) {
extension.collector.error(localize(
'invalid.language',
"Unknown language in `contributes.{0}.language`. Provided value: {1}",

View file

@ -337,7 +337,7 @@ export abstract class AbstractTextMateService extends Disposable implements ITex
}
private _validateGrammarExtensionPoint(extensionLocation: URI, syntax: ITMSyntaxExtensionPoint, collector: ExtensionMessageCollector): boolean {
if (syntax.language && ((typeof syntax.language !== 'string') || !this._languageService.isRegisteredMode(syntax.language))) {
if (syntax.language && ((typeof syntax.language !== 'string') || !this._languageService.isRegisteredLanguageId(syntax.language))) {
collector.error(nls.localize('invalid.language', "Unknown language in `contributes.{0}.language`. Provided value: {1}", grammarsExtPoint.name, String(syntax.language)));
return false;
}