mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-05 09:35:39 -05:00
Convert .NET Interactive notebook's kernel spec to a VS Code compatible kernel when saving. (#19176)
This commit is contained in:
@@ -40,7 +40,7 @@ import { LocalContentManager } from 'sql/workbench/services/notebook/common/loca
|
||||
import { Registry } from 'vs/platform/registry/common/platform';
|
||||
import { Extensions as LanguageAssociationExtensions, ILanguageAssociationRegistry } from 'sql/workbench/services/languageAssociation/common/languageAssociation';
|
||||
import { NotebookLanguage } from 'sql/workbench/common/constants';
|
||||
import { DotnetInteractiveLabel, DotnetInteractiveJupyterLabelPrefix, DotnetInteractiveJupyterLanguagePrefix, DotnetInteractiveLanguagePrefix } from 'sql/workbench/api/common/notebooks/notebookUtils';
|
||||
import { convertToInternalInteractiveKernelMetadata } from 'sql/workbench/api/common/notebooks/notebookUtils';
|
||||
|
||||
export type ModeViewSaveHandler = (handle: number) => Thenable<boolean>;
|
||||
const languageAssociationRegistry = Registry.as<ILanguageAssociationRegistry>(LanguageAssociationExtensions.LanguageAssociations);
|
||||
@@ -561,23 +561,8 @@ export class NotebookEditorContentLoader implements IContentLoader {
|
||||
}
|
||||
|
||||
// Special case .NET Interactive kernel spec to handle inconsistencies between notebook providers and jupyter kernel specs
|
||||
if (notebookContents.metadata?.kernelspec?.display_name?.startsWith(DotnetInteractiveJupyterLabelPrefix)) {
|
||||
notebookContents.metadata.kernelspec.oldDisplayName = notebookContents.metadata.kernelspec.display_name;
|
||||
notebookContents.metadata.kernelspec.display_name = DotnetInteractiveLabel;
|
||||
convertToInternalInteractiveKernelMetadata(notebookContents.metadata);
|
||||
|
||||
let kernelName = notebookContents.metadata.kernelspec.name;
|
||||
let baseLanguageName = kernelName.replace(DotnetInteractiveJupyterLanguagePrefix, '');
|
||||
if (baseLanguageName === 'powershell') {
|
||||
baseLanguageName = 'pwsh';
|
||||
}
|
||||
let languageName = `${DotnetInteractiveLanguagePrefix}${baseLanguageName}`;
|
||||
|
||||
notebookContents.metadata.kernelspec.oldLanguage = notebookContents.metadata.kernelspec.language;
|
||||
notebookContents.metadata.kernelspec.language = languageName;
|
||||
|
||||
notebookContents.metadata.language_info.oldName = notebookContents.metadata.language_info.name;
|
||||
notebookContents.metadata.language_info.name = languageName;
|
||||
}
|
||||
return notebookContents;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user