diff --git a/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.css b/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.css index 80a367c4907..4cc65942046 100644 --- a/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.css +++ b/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.css @@ -8,3 +8,9 @@ padding-bottom: 10px; position: relative; } + + +.console-input.hidden { + display: none; + background-color: red; +} diff --git a/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.tsx b/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.tsx index 7272c42d15a..6c5ab5d36a9 100644 --- a/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.tsx +++ b/src/vs/workbench/contrib/positronConsole/browser/components/consoleInput.tsx @@ -59,6 +59,7 @@ type ILineNumbersOptions = Pick void; readonly onCodeExecuted: () => void; @@ -960,7 +961,7 @@ export const ConsoleInput = (props: ConsoleInputProps) => { // Render. return ( -
+
{historyBrowserActive && { * @returns The rendered component. */ override render() { + + let extensionHostDisconnected = false; + return ( <>
@@ -74,9 +77,11 @@ export class ConsoleInstanceItems extends Component { } else if (runtimeItem instanceof RuntimeItemPendingInput) { return ; } else if (runtimeItem instanceof RuntimeItemStartup) { + extensionHostDisconnected = false; return ; } else if (runtimeItem instanceof RuntimeItemReconnected) { - return ; + extensionHostDisconnected = false; + return null; } else if (runtimeItem instanceof RuntimeItemStarting) { return ; } else if (runtimeItem instanceof RuntimeItemStarted) { @@ -84,6 +89,10 @@ export class ConsoleInstanceItems extends Component { } else if (runtimeItem instanceof RuntimeItemOffline) { return ; } else if (runtimeItem instanceof RuntimeItemExited) { + if (runtimeItem.reason === 'extensionHost') { + extensionHostDisconnected = true; + return null; + } return ; } else if (runtimeItem instanceof RuntimeItemRestartButton) { return ; @@ -96,17 +105,27 @@ export class ConsoleInstanceItems extends Component { return null; } })} - {!this.props.positronConsoleInstance.promptActive && this.props.runtimeAttached && - - // Update the component to eliminate flickering. - flushSync(() => this.forceUpdate() - )} - /> + {extensionHostDisconnected ? + (
+ + {localize( + "positron.console.extensionsRestarting", + "Extensions restarting..." + )} +
) : + null } + +