Skip to content

Commit bedd1a6

Browse files
authored
Allow Smart send with new REPL (#23638)
Resolves: #23521
1 parent 9abfd30 commit bedd1a6

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/client/extensionActivation.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import { TerminalProvider } from './providers/terminalProvider';
3232
import { setExtensionInstallTelemetryProperties } from './telemetry/extensionInstallTelemetry';
3333
import { registerTypes as tensorBoardRegisterTypes } from './tensorBoard/serviceRegistry';
3434
import { registerTypes as commonRegisterTerminalTypes } from './terminals/serviceRegistry';
35-
import { ICodeExecutionManager, ITerminalAutoActivation } from './terminals/types';
35+
import { ICodeExecutionHelper, ICodeExecutionManager, ITerminalAutoActivation } from './terminals/types';
3636
import { registerTypes as unitTestsRegisterTypes } from './testing/serviceRegistry';
3737

3838
// components
@@ -106,8 +106,8 @@ export function activateFeatures(ext: ExtensionState, _components: Components):
106106
interpreterService,
107107
pathUtils,
108108
);
109-
110-
registerReplCommands(ext.disposables, interpreterService);
109+
const executionHelper = ext.legacyIOC.serviceContainer.get<ICodeExecutionHelper>(ICodeExecutionHelper);
110+
registerReplCommands(ext.disposables, interpreterService, executionHelper);
111111
registerReplExecuteOnEnter(ext.disposables, interpreterService);
112112
}
113113

src/client/repl/replCommands.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Disposable } from 'vscode-jsonrpc';
33
import { Commands } from '../common/constants';
44
import { noop } from '../common/utils/misc';
55
import { IInterpreterService } from '../interpreter/contracts';
6+
import { ICodeExecutionHelper } from '../terminals/types';
67
import { getNativeRepl } from './nativeRepl';
78
import {
89
executeInTerminal,
@@ -22,6 +23,7 @@ import {
2223
export async function registerReplCommands(
2324
disposables: Disposable[],
2425
interpreterService: IInterpreterService,
26+
executionHelper: ICodeExecutionHelper,
2527
): Promise<void> {
2628
disposables.push(
2729
commands.registerCommand(Commands.Exec_In_REPL, async (uri: Uri) => {
@@ -40,7 +42,13 @@ export async function registerReplCommands(
4042
if (activeEditor) {
4143
const code = await getSelectedTextToExecute(activeEditor);
4244
if (code) {
43-
await nativeRepl.sendToNativeRepl(code);
45+
// Smart Send
46+
let wholeFileContent = '';
47+
if (activeEditor && activeEditor.document) {
48+
wholeFileContent = activeEditor.document.getText();
49+
}
50+
const normalizedCode = await executionHelper.normalizeLines(code!, wholeFileContent);
51+
await nativeRepl.sendToNativeRepl(normalizedCode);
4452
}
4553
}
4654
}

0 commit comments

Comments
 (0)