Skip to content

Commit

Permalink
feat: Register kernel languages with docRegistry (#1188)
Browse files Browse the repository at this point in the history
* By default text notebooks will always open with editor factory

* By configuring defaultViwerOverrides, users can open them as notebooks

Signed-off-by: mahendrapaipuri <[email protected]>
  • Loading branch information
mahendrapaipuri committed Dec 3, 2023
1 parent 7223622 commit 3ece66e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -363,15 +363,14 @@ const extension: JupyterFrontEndPlugin<void> = {
);

// Register Jupytext text notebooks file types
registerFileTypes(docRegistry, trans);
registerFileTypes(availableKernelLanguages, docRegistry, trans);

// Get all kernel file types to add to Jupytext factory
const kernelLanguageNames = [];
for (const kernelLanguages of availableKernelLanguages.values()) {
for (const kernelLanguage of kernelLanguages) {
kernelLanguageNames.push(kernelLanguage.kernelName);
}
for (const kernelLanguage of availableKernelLanguages.keys()) {
kernelLanguageNames.push(kernelLanguage);
}

// Create a factory for Jupytext
createFactory(
kernelLanguageNames,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,35 @@ import { DocumentRegistry } from '@jupyterlab/docregistry';

import { TranslationBundle } from '@jupyterlab/translation';

import { markdownIcon } from '@jupyterlab/ui-components';
import { markdownIcon, kernelIcon } from '@jupyterlab/ui-components';

import { IFileTypeData } from './tokens';

export function registerFileTypes(
availableKernelLanguages: Map<string, IFileTypeData[]>,
docRegistry: DocumentRegistry,
trans: TranslationBundle
) {
// Add kernel file types to registry
availableKernelLanguages.forEach(
(kernelFileTypes: IFileTypeData[], kernelLanguage: string) => {
// Do not add python as it will be already there by default
if (kernelLanguage !== 'python') {
kernelFileTypes.map((kernelFileType) => {
docRegistry.addFileType({
name: kernelLanguage,
contentType: 'file',
displayName: trans.__(
kernelFileType.paletteLabel.split('New')[1].trim()
),
extensions: [`.${kernelFileType.fileExt}`],
icon: kernelFileType.kernelIcon || kernelIcon,
});
});
}
}
);

// Add markdown file types to registry
docRegistry.addFileType(
{
Expand Down

0 comments on commit 3ece66e

Please sign in to comment.