diff --git a/news/1 Enhancements/13177.md b/news/1 Enhancements/13177.md new file mode 100644 index 000000000000..a450ccc17713 --- /dev/null +++ b/news/1 Enhancements/13177.md @@ -0,0 +1 @@ +The gather icon will change and get disabled while gather is executing. diff --git a/package.nls.json b/package.nls.json index d238d0acf98c..e4af16d6e3e2 100644 --- a/package.nls.json +++ b/package.nls.json @@ -486,7 +486,7 @@ "DataScience.findJupyterCommandProgressCheckInterpreter": "Checking {0}.", "DataScience.findJupyterCommandProgressSearchCurrentPath": "Searching current path.", "DataScience.gatherError": "Gather internal error", - "DataScience.gatheredScriptDescription": "# This file was generated by the Gather Extension.\n# It requires version 2020.7.94776 (or newer) of the Python Extension.\n#\n# The intent is that it contains only the code required to produce\n# the same results as the cell originally selected for gathering.\n# Please note that the Python analysis is quite conservative, so if\n# it is unsure whether a line of code is necessary for execution, it\n# will err on the side of including it.\n#\n# Please let us know if you are satisfied with what was gathered here:\n# https://aka.ms/gathersurvey\n\n", + "DataScience.gatheredScriptDescription": "# This file was generated by the Gather Extension.\n# It requires version 2020.7.94776 (or newer) of the Python Extension.\n#\n# The intent is that it contains only the code required to produce\n# the same results as the cell originally selected for gathering.\n# Please note that the Python analysis is quite conservative, so if\n# it is unsure whether a line of code is necessary for execution, it\n# will err on the side of including it.\n#\n# Please let us know if you are satisfied with what was gathered here:\n# https://aka.ms/gatherfeedback\n\n", "DataScience.gatheredNotebookDescriptionInMarkdown": "## Gathered Notebook\nGathered from ```{0}```\n\n| | |\n|---|---|\n|   |This notebook was generated by the Gather Extension. It requires version 2020.7.94776 (or newer) of the Python Extension, please update [here](https://command:python.datascience.latestExtension). The intent is that it contains only the code and cells required to produce the same results as the cell originally selected for gathering. Please note that the Python analysis is quite conservative, so if it is unsure whether a line of code is necessary for execution, it will err on the side of including it.|\n\n**Are you satisfied with the code that was gathered?**\n\n[Yes](https://command:python.datascience.gatherquality?yes) [No](https://command:python.datascience.gatherquality?no)", "DataScience.savePngTitle": "Save Image", "DataScience.jupyterSelectURIQuickPickTitle": "Pick how to connect to Jupyter", @@ -570,10 +570,10 @@ "DataScienceRendererExtension.downloadCompletedOutputMessage": "Notebook Renderers extension download complete.", "DataScience.uriProviderDescriptionFormat": "{0} (From {1} extension)", "DataScience.unknownPackage": "unknown", - "DataScience.interactiveWindowTitle" : "Python Interactive", - "DataScience.interactiveWindowTitleFormat" : "Python Interactive - {0}", - "DataScience.interactiveWindowModeBannerTitle" : "Do you want to open a new Python Interactive window for this file? [More Information](command:workbench.action.openSettings?%5B%22python.dataScience.interactiveWindowMode%22%5D).", - "DataScience.interactiveWindowModeBannerSwitchYes" : "Yes", - "DataScience.interactiveWindowModeBannerSwitchAlways" : "Always", - "DataScience.interactiveWindowModeBannerSwitchNo" : "No" + "DataScience.interactiveWindowTitle": "Python Interactive", + "DataScience.interactiveWindowTitleFormat": "Python Interactive - {0}", + "DataScience.interactiveWindowModeBannerTitle": "Do you want to open a new Python Interactive window for this file? [More Information](command:workbench.action.openSettings?%5B%22python.dataScience.interactiveWindowMode%22%5D).", + "DataScience.interactiveWindowModeBannerSwitchYes": "Yes", + "DataScience.interactiveWindowModeBannerSwitchAlways": "Always", + "DataScience.interactiveWindowModeBannerSwitchNo": "No" } diff --git a/src/client/common/utils/localize.ts b/src/client/common/utils/localize.ts index 2c66b1c48241..93fa307f28ba 100644 --- a/src/client/common/utils/localize.ts +++ b/src/client/common/utils/localize.ts @@ -925,7 +925,7 @@ export namespace DataScience { export const gatherError = localize('DataScience.gatherError', 'Gather internal error'); export const gatheredScriptDescription = localize( 'DataScience.gatheredScriptDescription', - '# This file was generated by the Gather Extension.\n# It requires version 2020.7.94776 (or newer) of the Python Extension.\n#\n# The intent is that it contains only the code required to produce\n# the same results as the cell originally selected for gathering.\n# Please note that the Python analysis is quite conservative, so if\n# it is unsure whether a line of code is necessary for execution, it\n# will err on the side of including it.\n#\n# Please let us know if you are satisfied with what was gathered here:\n# https://aka.ms/gathersurvey\n\n' + '# This file was generated by the Gather Extension.\n# It requires version 2020.7.94776 (or newer) of the Python Extension.\n#\n# The intent is that it contains only the code required to produce\n# the same results as the cell originally selected for gathering.\n# Please note that the Python analysis is quite conservative, so if\n# it is unsure whether a line of code is necessary for execution, it\n# will err on the side of including it.\n#\n# Please let us know if you are satisfied with what was gathered here:\n# https://aka.ms/gatherfeedback\n\n' ); export const gatheredNotebookDescriptionInMarkdown = localize( 'DataScience.gatheredNotebookDescriptionInMarkdown', diff --git a/src/client/datascience/commands/commandRegistry.ts b/src/client/datascience/commands/commandRegistry.ts index 351010af74ff..75886683c6ac 100644 --- a/src/client/datascience/commands/commandRegistry.ts +++ b/src/client/datascience/commands/commandRegistry.ts @@ -397,7 +397,7 @@ export class CommandRegistry implements IDisposable { private reportGatherQuality(val: string) { sendTelemetryEvent(Telemetry.GatherQualityReport, undefined, { result: val[0] === 'no' ? 'no' : 'yes' }); - env.openExternal(Uri.parse(`https://aka.ms/gathersurvey?succeed=${val[0]}`)); + env.openExternal(Uri.parse(`https://aka.ms/gatherfeedback?succeed=${val[0]}`)); } private openPythonExtensionPage() { diff --git a/src/client/datascience/gather/gatherListener.ts b/src/client/datascience/gather/gatherListener.ts index 9defc63854e1..11e71948c613 100644 --- a/src/client/datascience/gather/gatherListener.ts +++ b/src/client/datascience/gather/gatherListener.ts @@ -74,10 +74,18 @@ export class GatherListener implements IInteractiveWindowListener { break; case InteractiveWindowMessages.GatherCode: + this.postEmitter.fire({ + message: InteractiveWindowMessages.Gathering, + payload: { cellId: payload.id, gathering: true } + }); this.handleMessage(message, payload, this.doGather); break; case InteractiveWindowMessages.GatherCodeToScript: + this.postEmitter.fire({ + message: InteractiveWindowMessages.Gathering, + payload: { cellId: payload.id, gathering: true } + }); this.handleMessage(message, payload, this.doGatherToScript); break; @@ -142,18 +150,32 @@ export class GatherListener implements IInteractiveWindowListener { } } - private doGather(payload: ICell): void { - this.gatherCodeInternal(payload).catch((err) => { - traceError(`Gather to Notebook error: ${err}`); - this.applicationShell.showErrorMessage(err); - }); + private doGather(payload: ICell): Promise { + return this.gatherCodeInternal(payload) + .catch((err) => { + traceError(`Gather to Notebook error: ${err}`); + this.applicationShell.showErrorMessage(err); + }) + .finally(() => + this.postEmitter.fire({ + message: InteractiveWindowMessages.Gathering, + payload: { cellId: payload.id, gathering: false } + }) + ); } - private doGatherToScript(payload: ICell): void { - this.gatherCodeInternal(payload, true).catch((err) => { - traceError(`Gather to Script error: ${err}`); - this.applicationShell.showErrorMessage(err); - }); + private doGatherToScript(payload: ICell): Promise { + return this.gatherCodeInternal(payload, true) + .catch((err) => { + traceError(`Gather to Script error: ${err}`); + this.applicationShell.showErrorMessage(err); + }) + .finally(() => + this.postEmitter.fire({ + message: InteractiveWindowMessages.Gathering, + payload: { cellId: payload.id, gathering: false } + }) + ); } private gatherCodeInternal = async (cell: ICell, toScript: boolean = false) => { diff --git a/src/client/datascience/interactive-common/interactiveWindowTypes.ts b/src/client/datascience/interactive-common/interactiveWindowTypes.ts index 834332286ed7..c3b9d48af90b 100644 --- a/src/client/datascience/interactive-common/interactiveWindowTypes.ts +++ b/src/client/datascience/interactive-common/interactiveWindowTypes.ts @@ -10,6 +10,7 @@ import { DebugProtocol } from 'vscode-debugprotocol'; import { CommonActionType, IAddCellAction, + IChangeGatherStatus, ILoadIPyWidgetClassFailureAction, IVariableExplorerHeight, LoadIPyWidgetClassLoadAction, @@ -98,6 +99,7 @@ export enum InteractiveWindowMessages { StopDebugging = 'stop_debugging', GatherCode = 'gather_code', GatherCodeToScript = 'gather_code_to_script', + Gathering = 'gathering', LaunchNotebookTrustPrompt = 'launch_notebook_trust_prompt', TrustNotebookComplete = 'trust_notebook_complete', LoadAllCells = 'load_all_cells', @@ -630,6 +632,7 @@ export class IInteractiveWindowMapping { public [InteractiveWindowMessages.StopDebugging]: never | undefined; public [InteractiveWindowMessages.GatherCode]: ICell; public [InteractiveWindowMessages.GatherCodeToScript]: ICell; + public [InteractiveWindowMessages.Gathering]: IChangeGatherStatus; public [InteractiveWindowMessages.LaunchNotebookTrustPrompt]: never | undefined; public [InteractiveWindowMessages.TrustNotebookComplete]: never | undefined; public [InteractiveWindowMessages.LoadAllCells]: ILoadAllCells; diff --git a/src/client/datascience/interactive-common/synchronization.ts b/src/client/datascience/interactive-common/synchronization.ts index face994ec0cf..7a0fd4394ae2 100644 --- a/src/client/datascience/interactive-common/synchronization.ts +++ b/src/client/datascience/interactive-common/synchronization.ts @@ -129,6 +129,7 @@ const messageWithMessageTypes: MessageMapping & Messa [InteractiveWindowMessages.FocusedCellEditor]: MessageType.syncWithLiveShare, [InteractiveWindowMessages.GatherCode]: MessageType.other, [InteractiveWindowMessages.GatherCodeToScript]: MessageType.other, + [InteractiveWindowMessages.Gathering]: MessageType.other, [InteractiveWindowMessages.GetAllCells]: MessageType.other, [InteractiveWindowMessages.ForceVariableRefresh]: MessageType.other, [InteractiveWindowMessages.GetVariablesRequest]: MessageType.other, diff --git a/src/datascience-ui/history-react/interactiveCell.tsx b/src/datascience-ui/history-react/interactiveCell.tsx index c5e844c08ff2..63a5e7bdf10f 100644 --- a/src/datascience-ui/history-react/interactiveCell.tsx +++ b/src/datascience-ui/history-react/interactiveCell.tsx @@ -195,8 +195,13 @@ export class InteractiveCell extends React.Component { !this.props.settings.gatherIsInstalled } tooltip={getLocString('DataScience.gatherCodeTooltip', 'Gather code')} + disabled={this.props.cellVM.gathering} > - + div { +.cell-output > div { background: var(--override-widget-background, var(--vscode-notifications-background)); } xmp { margin: 0px; -} +} .cell-input { margin: 0; @@ -72,4 +71,4 @@ xmp { white-space: pre-wrap; word-break: break-all; overflow-x: hidden; -} \ No newline at end of file +} diff --git a/src/datascience-ui/history-react/redux/reducers/index.ts b/src/datascience-ui/history-react/redux/reducers/index.ts index 023bf4fc8703..4cf821b85bd0 100644 --- a/src/datascience-ui/history-react/redux/reducers/index.ts +++ b/src/datascience-ui/history-react/redux/reducers/index.ts @@ -71,5 +71,6 @@ export const reducerMap: Partial = { [InteractiveWindowMessages.UpdateKernel]: Kernel.updateStatus, [SharedMessages.LocInit]: CommonEffects.handleLocInit, [InteractiveWindowMessages.UpdateDisplayData]: CommonEffects.handleUpdateDisplayData, - [InteractiveWindowMessages.HasCell]: Transfer.hasCell + [InteractiveWindowMessages.HasCell]: Transfer.hasCell, + [InteractiveWindowMessages.Gathering]: Transfer.gathering }; diff --git a/src/datascience-ui/interactive-common/common.css b/src/datascience-ui/interactive-common/common.css index e6387bebac1b..32522d88b894 100644 --- a/src/datascience-ui/interactive-common/common.css +++ b/src/datascience-ui/interactive-common/common.css @@ -1,4 +1,5 @@ -body, html { +body, +html { height: 100%; margin: 0; } @@ -15,10 +16,10 @@ body, html { grid-template-rows: auto auto 1fr auto; grid-template-columns: 1fr; grid-template-areas: - "toolbar" - "variable" - "content" - "footer"; + 'toolbar' + 'variable' + 'content' + 'footer'; height: 100%; width: 100%; position: absolute; @@ -58,7 +59,7 @@ body, html { } .edit-panel { - min-height:50px; + min-height: 50px; padding: 10px 0px 10px 0px; width: 100%; border-top-color: var(--override-badge-background, var(--vscode-badge-background)); @@ -67,7 +68,7 @@ body, html { } .edit-panel-colorized { - min-height:50px; + min-height: 50px; padding: 10px 0px 10px 0px; width: 100%; border-top-color: var(--override-badge-background, var(--vscode-badge-background)); @@ -85,7 +86,7 @@ body, html { .cell-wrapper:focus { outline-width: 0px; - outline-color:var(--override-selection-background, var(--vscode-editor-selectionBackground)); + outline-color: var(--override-selection-background, var(--vscode-editor-selectionBackground)); } .cell-wrapper-preview { @@ -99,7 +100,7 @@ body, html { } .cell-wrapper:after { - content: ""; + content: ''; clear: both; display: block; } @@ -112,18 +113,18 @@ body, html { } .cell-outer { - display:grid; + display: grid; grid-template-columns: auto 1fr; grid-column-gap: 3px; width: 100%; } .cell-outer-editable { - display:grid; + display: grid; grid-template-columns: auto 1fr; grid-column-gap: 3px; width: 100%; - margin-top:16px; + margin-top: 16px; } .content-div { @@ -147,7 +148,7 @@ body, html { margin: 0; } -.cell-input pre{ +.cell-input pre { margin: 0px; padding: 0px; } @@ -181,13 +182,13 @@ body, html { } .cell-output-plot-background { - background:white; + background: white; display: inline-block; margin: 3px; } .cell-output-ipywidget-background { - background:white !important; + background: white !important; } .cell-output-plot-background * { @@ -213,25 +214,28 @@ body, html { .cell-output tr, .cell-output th, .cell-output td { - text-align: right; - vertical-align: middle; - padding: 0.5em 0.5em; - line-height: normal; - white-space: normal; - max-width: none; - border: none; + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; } .cell-output th { - font-weight: bold; + font-weight: bold; } .cell-output tbody tr:nth-child(even) { - background: var(--override-background, var(--vscode-editor-background)); /* Force to white because the default color for output is gray */ + background: var( + --override-background, + var(--vscode-editor-background) + ); /* Force to white because the default color for output is gray */ } .cell-output tbody tr:hover { - background: var(--override-selection-background, var(--vscode-editor-selectionBackground)); + background: var(--override-selection-background, var(--vscode-editor-selectionBackground)); } .cell-output * + table { - margin-top: 1em; + margin-top: 1em; } .center-img { @@ -257,8 +261,8 @@ body, html { /* Code */ .code-area { position: relative; - width:100%; - margin-bottom:16px; + width: 100%; + margin-bottom: 16px; top: -2px; /* Account for spacing removed from the monaco editor */ } @@ -300,9 +304,9 @@ body, html { } .remove-style { - background-color:transparent; - border:transparent; - font:inherit; + background-color: transparent; + border: transparent; + font: inherit; } .inputLabel { @@ -320,12 +324,16 @@ body, html { .flash { animation-name: flash-animation; - animation-duration: 1.0s; + animation-duration: 1s; } @keyframes flash-animation { - from { background: var(--override-peek-background, var(--vscode-peekViewEditor-background));; } - to { background: default; } + from { + background: var(--override-peek-background, var(--vscode-peekViewEditor-background)); + } + to { + background: default; + } } .messages-wrapper { @@ -398,7 +406,7 @@ body, html { justify-content: end; } .variable-explorer-label { - margin-right:auto; + margin-right: auto; } .variable-explorer-close-button { justify-self: end; @@ -407,27 +415,31 @@ body, html { .execution-count { grid-column: 1; font-weight: bold; - display:flex; + display: flex; color: var(--vscode-descriptionForeground); font-family: var(--code-font-family); - } +} - .execution-count-busy-outer { +.execution-count-busy-outer { grid-column: 1; font-weight: bold; color: var(--code-comment-color); - display:block; + display: block; width: 8px; height: 8px; white-space: nowrap; } @keyframes execution-spin { - from { transform: rotate(0); } - to { transform: rotate(360deg); } + from { + transform: rotate(0); + } + to { + transform: rotate(360deg); + } } - .execution-count-busy-svg { +.execution-count-busy-svg { animation: execution-spin 4s linear infinite; } @@ -437,12 +449,12 @@ body, html { stroke-width: 1; } - @keyframes spin { +@keyframes spin { from { - transform:rotate(0deg); + transform: rotate(0deg); } to { - transform:rotate(360deg); + transform: rotate(360deg); } } @@ -484,7 +496,6 @@ body, html { background-color: var(--override-badge-background, var(--vscode-badge-background)); } - .kernel-status { display: flex; margin-left: auto; @@ -499,7 +510,7 @@ body, html { .kernel-status-section-hoverable:hover { background-color: var(--override-badge-background, var(--vscode-badge-background)); - cursor:pointer; + cursor: pointer; } .kernel-status-divider { @@ -561,3 +572,7 @@ body, html { .image-button:focus { outline: none; } + +.rotate { + animation: spin 2s infinite linear; +} diff --git a/src/datascience-ui/interactive-common/mainState.ts b/src/datascience-ui/interactive-common/mainState.ts index f5327ea54760..a134981f92e2 100644 --- a/src/datascience-ui/interactive-common/mainState.ts +++ b/src/datascience-ui/interactive-common/mainState.ts @@ -56,6 +56,7 @@ export interface ICellViewModel { uiSideError?: string; runningByLine: DebugState; currentStack?: DebugProtocol.StackFrame[]; + gathering: boolean; } export type IMainState = { @@ -227,7 +228,8 @@ export function createEditableCellVM(executionCount: number): ICellViewModel { cursorPos: CursorPos.Current, hasBeenRun: false, scrollCount: 0, - runningByLine: DebugState.Design + runningByLine: DebugState.Design, + gathering: false }; } @@ -281,7 +283,8 @@ export function createCellVM( hasBeenRun: false, scrollCount: 0, runDuringDebug, - runningByLine: DebugState.Design + runningByLine: DebugState.Design, + gathering: false }; // Update the input text diff --git a/src/datascience-ui/interactive-common/redux/reducers/transfer.ts b/src/datascience-ui/interactive-common/redux/reducers/transfer.ts index 490977928976..31835412722b 100644 --- a/src/datascience-ui/interactive-common/redux/reducers/transfer.ts +++ b/src/datascience-ui/interactive-common/redux/reducers/transfer.ts @@ -9,13 +9,14 @@ import { } from '../../../../client/datascience/interactive-common/interactiveWindowTypes'; import { CssMessages } from '../../../../client/datascience/messages'; import { ICell } from '../../../../client/datascience/types'; -import { extractInputText, getSelectedAndFocusedInfo, IMainState } from '../../mainState'; +import { extractInputText, getSelectedAndFocusedInfo, ICellViewModel, IMainState } from '../../mainState'; import { isSyncingMessage, postActionToExtension } from '../helpers'; import { Helpers } from './helpers'; import { CommonActionType, CommonReducerArg, ICellAction, + IChangeGatherStatus, IEditCellAction, ILinkClickAction, ISendCommandAction, @@ -327,4 +328,24 @@ export namespace Transfer { } return arg.prevState; } + + export function gathering(arg: CommonReducerArg): IMainState { + const index = arg.prevState.cellVMs.findIndex((c) => c.cell.id === arg.payload.data.cellId); + if (index >= 0) { + const cellVMs = [...arg.prevState.cellVMs]; + const current = arg.prevState.cellVMs[index]; + const newCell: ICellViewModel = { + ...current, + gathering: arg.payload.data.gathering + }; + cellVMs[index] = newCell; + + return { + ...arg.prevState, + cellVMs + }; + } + + return arg.prevState; + } } diff --git a/src/datascience-ui/interactive-common/redux/reducers/types.ts b/src/datascience-ui/interactive-common/redux/reducers/types.ts index 9a6b47fc28cc..40b9b9c140da 100644 --- a/src/datascience-ui/interactive-common/redux/reducers/types.ts +++ b/src/datascience-ui/interactive-common/redux/reducers/types.ts @@ -257,4 +257,9 @@ export type NotifyIPyWidgeWidgetVersionNotSupportedAction = { moduleVersion: string; }; +export interface IChangeGatherStatus { + cellId: string; + gathering: boolean; +} + export type CommonAction = ActionWithPayload; diff --git a/src/datascience-ui/native-editor/nativeCell.tsx b/src/datascience-ui/native-editor/nativeCell.tsx index 625a53c98990..c3b0d2a31c48 100644 --- a/src/datascience-ui/native-editor/nativeCell.tsx +++ b/src/datascience-ui/native-editor/nativeCell.tsx @@ -708,12 +708,12 @@ export class NativeCell extends React.Component { 'Gather the code required to generate this cell into a new notebook' )} hidden={gatherDisabled} - disabled={!this.props.isNotebookTrusted} + disabled={!this.props.isNotebookTrusted || this.props.cellVM.gathering} > = { [CommonActionType.LINK_CLICK]: Transfer.linkClick, [CommonActionType.GATHER_CELL]: Transfer.gather, [CommonActionType.GATHER_CELL_TO_SCRIPT]: Transfer.gatherToScript, + [InteractiveWindowMessages.Gathering]: Transfer.gathering, [CommonActionType.EDITOR_LOADED]: Transfer.started, [CommonActionType.LOADED_ALL_CELLS]: Transfer.loadedAllCells, [CommonActionType.LAUNCH_NOTEBOOK_TRUST_PROMPT]: Transfer.launchNotebookTrustPrompt, diff --git a/src/datascience-ui/react-common/image.tsx b/src/datascience-ui/react-common/image.tsx index 6248f8f789d0..740e6aa5d66d 100644 --- a/src/datascience-ui/react-common/image.tsx +++ b/src/datascience-ui/react-common/image.tsx @@ -51,7 +51,8 @@ export enum ImageName { Python, PythonColor, OpenFolder, - RunByLine + RunByLine, + Sync } // All of the images must be 'require' so that webpack doesn't rewrite the import as requiring a .default. @@ -226,6 +227,10 @@ const images: { [key: string]: { light: string; dark: string } } = { RunByLine: { light: require('./images/RunByLine/runbyline_light.svg'), dark: require('./images/RunByLine/runbyline_dark.svg') + }, + Sync: { + light: require('./images/Sync/sync.svg'), + dark: require('./images/Sync/sync-inverse.svg') } }; diff --git a/src/datascience-ui/react-common/images/Sync/sync-inverse.svg b/src/datascience-ui/react-common/images/Sync/sync-inverse.svg new file mode 100644 index 000000000000..7406dc99d8e9 --- /dev/null +++ b/src/datascience-ui/react-common/images/Sync/sync-inverse.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/datascience-ui/react-common/images/Sync/sync.svg b/src/datascience-ui/react-common/images/Sync/sync.svg new file mode 100644 index 000000000000..74a4f483e00c --- /dev/null +++ b/src/datascience-ui/react-common/images/Sync/sync.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/test/datascience/interactivePanel.functional.test.tsx b/src/test/datascience/interactivePanel.functional.test.tsx index d93d4846980a..c146648bdee9 100644 --- a/src/test/datascience/interactivePanel.functional.test.tsx +++ b/src/test/datascience/interactivePanel.functional.test.tsx @@ -57,7 +57,8 @@ suite('DataScience Interactive Panel', () => { inputBlockText: '', scrollCount: 0, selected: false, - runningByLine: DebugState.Design + runningByLine: DebugState.Design, + gathering: false }, editorLoaded: noopAny, editorUnmounted: noopAny, diff --git a/src/test/datascience/mainState.unit.test.ts b/src/test/datascience/mainState.unit.test.ts index 9587eb752dc9..d6dd7ff3738f 100644 --- a/src/test/datascience/mainState.unit.test.ts +++ b/src/test/datascience/mainState.unit.test.ts @@ -48,7 +48,8 @@ suite('DataScience MainState', () => { scrollCount: 0, cursorPos: CursorPos.Current, hasBeenRun: false, - runningByLine: DebugState.Design + runningByLine: DebugState.Design, + gathering: false }; assert.equal(extractInputText(cloneVM(cvm, '# %%\na=1'), settings), 'a=1', 'Cell marker not removed'); assert.equal(