Skip to content

Commit 5e6beb8

Browse files
committed
Get language used in kernel
1 parent 4aad202 commit 5e6beb8

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/CodeSnippetWidget.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { CodeSnippetDisplay } from './CodeSnippetDisplay';
3131
import { CodeSnippetInputDialog } from './CodeSnippetInputDialog';
3232

3333
import React from 'react';
34+
import { Notebook } from '@jupyterlab/notebook';
3435

3536
/**
3637
* A class used to indicate a snippet item.
@@ -245,6 +246,13 @@ export class CodeSnippetWidget extends ReactWidget {
245246
* Handle the `'lm-drop'` event for the widget.
246247
*/
247248
private async _evtDrop(event: IDragEvent): Promise<void> {
249+
// TODO: get language from kernel
250+
const notebook: Notebook = event.mimeData.getData('internal:cells')[0]
251+
.parent;
252+
253+
const language = notebook.model.defaultKernelLanguage;
254+
console.log(language);
255+
248256
const data = this.findCellData(event.mimeData);
249257
if (data === undefined) {
250258
return;
@@ -300,7 +308,8 @@ export class CodeSnippetWidget extends ReactWidget {
300308
} else {
301309
// Handle the case where we are copying cells
302310
event.dropAction = 'copy';
303-
CodeSnippetInputDialog(this, data, idx);
311+
312+
CodeSnippetInputDialog(this, data, language, idx);
304313
}
305314

306315
// Reorder snippet just to make sure id's are in order.

src/index.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ import {
4040
ICodeSnippetEditorMetadata,
4141
} from './CodeSnippetEditor';
4242
import { CodeSnippetService } from './CodeSnippetService';
43+
import { NotebookPanel } from '@jupyterlab/notebook';
44+
import { DocumentWidget } from '@jupyterlab/docregistry';
45+
// import { NotebookPanel } from '@jupyterlab/notebook';
46+
// import { ServerConnection, SettingManager } from '@jupyterlab/services';
47+
// import { URLExt } from '@jupyterlab/coreutils';
4348

4449
const CODE_SNIPPET_EXTENSION_ID = 'code-snippet-extension';
4550

@@ -178,6 +183,16 @@ function activateCodeSnippet(
178183
isToggled: () => toggled,
179184
iconClass: 'some-css-icon-class',
180185
execute: () => {
186+
let language = '';
187+
// get the language of document or notebook
188+
if (app.shell.currentWidget instanceof NotebookPanel) {
189+
language = (app.shell.currentWidget as NotebookPanel).sessionContext
190+
.kernelPreference.language;
191+
} else if (app.shell.currentWidget instanceof DocumentWidget) {
192+
language = (app.shell.currentWidget as DocumentWidget).context.model
193+
.defaultKernelLanguage;
194+
}
195+
181196
const highlightedCode = getSelectedText();
182197
if (highlightedCode === '') {
183198
//if user just right-clicks cell(s) to save
@@ -202,12 +217,14 @@ function activateCodeSnippet(
202217
CodeSnippetInputDialog(
203218
codeSnippetWidget,
204219
resultArray,
220+
language,
205221
codeSnippetWidget.codeSnippetManager.snippets.length
206222
);
207223
} else {
208224
CodeSnippetInputDialog(
209225
codeSnippetWidget,
210226
highlightedCode.split('\n'),
227+
language
211228
codeSnippetWidget.codeSnippetManager.snippets.length
212229
);
213230
}

0 commit comments

Comments
 (0)