Register additional editor overrides when adding new notebook file types (#17708)

* Also standardized file extension contributions to always start with a period, and to always do lower case string comparisons for file extensions.
This commit is contained in:
Cory Rivera
2021-11-19 09:14:41 -08:00
committed by GitHub
parent 09666bc4e8
commit 8e04d3992a
8 changed files with 64 additions and 50 deletions

View File

@@ -311,7 +311,7 @@ export class NotebookService extends Disposable implements INotebookService {
if (!this._serializationProviders.has(p.id)) {
// Only add a new provider descriptor if the provider
// supports file extensions beyond the default ipynb
let addNewProvider = extensions.some(ext => ext?.length > 0 && ext.toUpperCase() !== DEFAULT_NOTEBOOK_FILETYPE);
let addNewProvider = extensions.some(ext => ext?.length > 0 && ext.toLowerCase() !== DEFAULT_NOTEBOOK_FILETYPE);
if (addNewProvider) {
this._serializationProviders.set(p.id, new SerializationProviderDescriptor(p.id));
}
@@ -378,12 +378,12 @@ export class NotebookService extends Disposable implements INotebookService {
}
private addFileProvider(fileType: string, provider: ProviderDescriptionRegistration) {
let providers = this._fileToProviderDescriptions.get(fileType.toUpperCase());
let providers = this._fileToProviderDescriptions.get(fileType.toLowerCase());
if (!providers) {
providers = [];
}
providers.push(provider);
this._fileToProviderDescriptions.set(fileType.toUpperCase(), providers);
this._fileToProviderDescriptions.set(fileType.toLowerCase(), providers);
}
// Standard kernels are contributed where a list of kernels are defined that can be shown
@@ -411,7 +411,7 @@ export class NotebookService extends Disposable implements INotebookService {
}
getProvidersForFileType(fileType: string): string[] | undefined {
let providers = this._fileToProviderDescriptions.get(fileType.toUpperCase());
let providers = this._fileToProviderDescriptions.get(fileType.toLowerCase());
return providers?.map(provider => provider.provider);
}