Split isRegisteredMode into isRegisteredLanguageId and isRegisteredMimeType

This commit is contained in:
Alex Dima
2021-12-08 14:53:11 +01:00
parent 0c202aa22a
commit fcf55dce4a
6 changed files with 22 additions and 13 deletions
@@ -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[];
@@ -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[] {
@@ -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[] {
@@ -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;
}
@@ -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}",
@@ -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;
}