jiebi/CodeConvo huggingface dataset:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ declare module 'vscode' { export interface TelemetryConfiguration { /** * Whether or not usage telemetry collection is allowed */ isUsageEnabled: boolean; /** * Whether or not crash error telemetry collection is allowed */ isErrorsEnabled: boolean; /** * Whether or not crash report collection is allowed */ isCrashEnabled: boolean; } export namespace env { /** * Indicates what telemetry is enabled / disabled * Can be observed to determine what telemetry the extension is allowed to send */ export const telemetryConfiguration: TelemetryConfiguration; /** * An {@link Event} which fires when the collectable state of telemetry changes * Returns a {@link TelemetryConfiguration} object */ export const onDidChangeTelemetryConfiguration: Event<TelemetryConfiguration | undefined>; } } </ins>
this.onDidChange(() => { let items = this.themes; <del> if (this.isSearching) { </del> <ins> if (this._searchOngoing) { </ins> items = items.concat({ label: '$(sync~spin) Searching for themes...', id: undefined, alwaysShow: true }); <ins> } else if (items.length === 0 && this._searchError) { items = [{ label: `$(error) ${localize('search.error', 'Error while searching for themes: {0}', this._searchError)}`, id: undefined, alwaysShow: true }]; </ins> } const activeItemId = quickpick.activeItems[0]?.id; const newActiveItem = activeItemId ? items.find(i => isItem(i) && i.id === activeItemId) : undefined;
default: true }, [TerminalSettingId.LocalEchoLatencyThreshold]: { <del> description: localize('terminal.integrated.localEchoLatencyThreshold', "Experimental: length of network delay, in milliseconds, where local edits will be echoed on the terminal without waiting for server acknowledgement. If '0', local echo will always be on, and if '-1' it will be disabled."), </del> <ins> description: localize('terminal.integrated.localEchoLatencyThreshold', "Length of network delay, in milliseconds, where local edits will be echoed on the terminal without waiting for server acknowledgement. If '0', local echo will always be on, and if '-1' it will be disabled."), </ins> type: 'integer', minimum: -1, default: 30,
default: 'auto' }, [TerminalSettingId.LocalEchoExcludePrograms]: { <del> description: localize('terminal.integrated.localEchoExcludePrograms', "Experimental: local echo will be disabled when any of these program names are found in the terminal title."), </del> <ins> description: localize('terminal.integrated.localEchoExcludePrograms', "Local echo will be disabled when any of these program names are found in the terminal title."), </ins> type: 'array', items: { type: 'string',
default: DEFAULT_LOCAL_ECHO_EXCLUDE, }, [TerminalSettingId.LocalEchoStyle]: { <del> description: localize('terminal.integrated.localEchoStyle', "Experimental: terminal style of locally echoed text; either a font style or an RGB color."), </del> <ins> description: localize('terminal.integrated.localEchoStyle', "Terminal style of locally echoed text; either a font style or an RGB color."), </ins> default: 'dim', oneOf: [ {
return; } <del> let noiseCheckPromise: Thenable<any> = Promise.resolve(); </del> <ins> let isNoisePromise: Thenable<boolean> = Promise.resolve(false); </ins> // Fix for https://github.com/microsoft/vscode/issues/32647 // Check for document symbols in js/ts/jsx/tsx and avoid triggering emmet for abbreviations of the form symbolName.sometext // Presence of > or * or + in the abbreviation denotes valid abbreviation that should trigger emmet if (!isStyleSheet(syntax) && (document.languageId === 'javascript' || document.languageId === 'javascriptreact' || document.languageId === 'typescript' || document.languageId === 'typescriptreact')) { let abbreviation: string = extractAbbreviationResults.abbreviation; <del> if (abbreviation.startsWith('this.')) { noiseCheckPromise = Promise.resolve(true); </del> <ins> // For the second condition, we don't want abbreviations that have [] characters but not ='s in them to expand // In turn, users must explicitly expand abbreviations of the form Component[attr1 attr2], but it means we don't try to expand a[i]. if (abbreviation.startsWith('this.') || /[[^]=]*]/.test(abbreviation)) { isNoisePromise = Promise.resolve(true); </ins> } else { <del> noiseCheckPromise = vscode.commands.executeCommand<vscode.SymbolInformation[]>('vscode.executeDocumentSymbolProvider', document.uri).then((symbols: vscode.SymbolInformation[] | undefined) => { return symbols && symbols.find(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </del> <ins> isNoisePromise = vscode.commands.executeCommand<vscode.SymbolInformation[] | undefined>('vscode.executeDocumentSymbolProvider', document.uri).then(symbols => { return !!symbols && symbols.some(x => abbreviation === x.name || (abbreviation.startsWith(x.name + '.') && !/>|*|+/.test(abbreviation))); </ins> }); } } <del> return noiseCheckPromise.then((noise): vscode.CompletionList | undefined => { if (noise) { return; </del> <ins> return isNoisePromise.then((isNoise): vscode.CompletionList | undefined => { if (isNoise) { return undefined; </ins> } const config = getEmmetConfiguration(syntax!);
teardown(closeAllEditors); test('style attribute & attribute value in html', async () => { <del> await testHtmlCompletionProvider('<div style="|"', [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='|'`, [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='p|'`, [{ label: 'padding: ;' }]); await testHtmlCompletionProvider(`<div style='color: #0|'`, [{ label: '#000000' }]); </del> <ins> await testCompletionProvider('html', '<div style="|"', [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='|'`, [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='p|'`, [{ label: 'padding: ;' }]); await testCompletionProvider('html', `<div style='color: #0|'`, [{ label: '#000000' }]); </ins> }); // https://github.com/microsoft/vscode/issues/79766 test('#79766, correct region determination', async () => { <del> await testHtmlCompletionProvider(`<div style="color: #000">di|</div>`, [ </del> <ins> await testCompletionProvider('html', `<div style="color: #000">di|</div>`, [ </ins> { label: 'div', documentation: `<div>|</div>` } ]); }); // https://github.com/microsoft/vscode/issues/86941 test('#86941, widows should not be completed', async () => { <del> await testCssCompletionProvider(`.foo { wi| }`, [ { label: 'widows: ;', documentation: `widows: ;` } ]); </del> <ins> await testCompletionProvider('css', `.foo { wi| }`, undefined); </ins> }); // https://github.com/microsoft/vscode/issues/117020 test('#117020, ! at end of abbreviation should have completion', async () => { <del> await testCssCompletionProvider(`.foo { bdbn!| }`, [ </del> <ins> await testCompletionProvider('css', `.foo { bdbn!| }`, [ </ins> { label: 'border-bottom: none !important;', documentation: `border-bottom: none !important;` } ]); }); <ins> // https://github.com/microsoft/vscode/issues/138461 test('#138461, JSX array noise', async () => { await testCompletionProvider('jsx', 'a[i]', undefined); await testCompletionProvider('jsx', 'Component[a b]', undefined); await testCompletionProvider('jsx', '[a, b]', undefined); await testCompletionProvider('jsx', '[a=b]', [ { label: '<div a="b"></div>', documentation: '<div a="b">|</div>' } ]); }); </ins> }); interface TestCompletionItem {
documentation?: string; } <del> function testHtmlCompletionProvider(contents: string, expectedItems: TestCompletionItem[]): Thenable<any> { </del> <ins> function testCompletionProvider(fileExtension: string, contents: string, expectedItems: TestCompletionItem[] | undefined): Thenable<boolean> { </ins> const cursorPos = contents.indexOf('|'); <del> const htmlContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); </del> <ins> const slicedContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); </ins> <del> return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => { </del> <ins> return withRandomFileEditor(slicedContents, fileExtension, async (editor, _doc) => { </ins> const selection = new Selection(editor.document.positionAt(cursorPos), editor.document.positionAt(cursorPos)); editor.selection = selection; const cancelSrc = new CancellationTokenSource();
const completionList = await completionPromise; if (!completionList || !completionList.items || !completionList.items.length) { <del> return Promise.resolve(); } expectedItems.forEach(eItem => { const matches = completionList.items.filter(i => i.label === eItem.label); const match = matches && matches.length > 0 ? matches[0] : undefined; assert.ok(match, `Didn't find completion item with label ${eItem.label}`); if (match) { assert.strictEqual(match.detail, 'Emmet Abbreviation', `Match needs to come from Emmet`); if (eItem.documentation) { assert.strictEqual(match.documentation, eItem.documentation, `Emmet completion Documentation doesn't match`); } </del> <ins> if (completionList === undefined) { assert.strictEqual(expectedItems, completionList); </ins> } <del> }); return Promise.resolve(); }); } function testCssCompletionProvider(contents: string, expectedItems: TestCompletionItem[]): Thenable<any> { const cursorPos = contents.indexOf('|'); const cssContents = contents.slice(0, cursorPos) + contents.slice(cursorPos + 1); return withRandomFileEditor(cssContents, 'css', async (editor, _doc) => { const selection = new Selection(editor.document.positionAt(cursorPos), editor.document.positionAt(cursorPos)); editor.selection = selection; const cancelSrc = new CancellationTokenSource(); const completionPromise = completionProvider.provideCompletionItems( editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke, triggerCharacter: undefined } ); if (!completionPromise) { return Promise.resolve(); } const completionList = await completionPromise; if (!completionList || !completionList.items || !completionList.items.length) { </del> return Promise.resolve(); } <del> expectedItems.forEach(eItem => { </del> <ins> assert.strictEqual(expectedItems === undefined, false); expectedItems!.forEach(eItem => { </ins> const matches = completionList.items.filter(i => i.label === eItem.label); const match = matches && matches.length > 0 ? matches[0] : undefined; assert.ok(match, `Didn't find completion item with label ${eItem.label}`);
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <ins> import { VSBuffer } from 'vs/base/common/buffer'; </ins> import { MarshalledObject } from 'vs/base/common/marshalling'; import { MarshalledId } from 'vs/base/common/marshallingIds'; import { URI, UriComponents } from 'vs/base/common/uri';
resolved "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz#a45aff345196006d406ca6cdcd05f69051ef35b8" integrity sha1-pFr/NFGWAG1AbKbNzQX2kFHvNbg= <del> typescript@4.5: version "4.5.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998" integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw== </del> <ins> typescript@4.5.3: version "4.5.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.3.tgz#afaa858e68c7103317d89eb90c5d8906268d353c" integrity sha512-eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ== </ins> vscode-grammar-updater@^1.0.3: version "1.0.3"
const messages = (result.hasLoadingMessage ? this._addLoadingMessage(result.value) : result.value); this._withResult(new HoverResult(this._computer.anchor, messages, result.isComplete)); })); <del> this._register(this._editor.onDidChangeModelDecorations(() => { if (this._isChangingDecorations) { return; } this._onModelDecorationsChanged(); })); </del> this._register(dom.addStandardDisposableListener(this._widget.getDomNode(), 'keydown', (e) => { if (e.equals(KeyCode.Escape)) { this.hide();
})); } <del> private _onModelDecorationsChanged(): void { if (this._widget.position) { // The decorations have changed and the hover is visible, // we need to recompute the displayed text this._hoverOperation.cancel(); if (!this._widget.isColorPickerVisible) { // TODO@Michel ensure that displayed text for other decorations is computed even if color picker is in place this._hoverOperation.start(HoverStartMode.Delayed); } } } </del> /** * Returns true if the hover shows now or will show. */
if (fragment.hasChildNodes()) { if (highlightRange) { const highlightDecoration = this._editor.createDecorationsCollection(); <del> try { this._isChangingDecorations = true; highlightDecoration.set([{ range: highlightRange, options: ContentHoverController._DECORATION_OPTIONS }]); } finally { this._isChangingDecorations = false; } </del> <ins> highlightDecoration.set([{ range: highlightRange, options: ContentHoverController._DECORATION_OPTIONS }]); </ins> disposables.add(toDisposable(() => { <del> try { this._isChangingDecorations = true; highlightDecoration.clear(); } finally { this._isChangingDecorations = false; } </del> <ins> highlightDecoration.clear(); </ins> })); }
public readonly isComplete: boolean ) { } <del> public filter(anchor: HoverAnchor): HoverResult | null { </del> <ins> public filter(anchor: HoverAnchor): HoverResult { </ins> const filteredMessages = this.messages.filter((m) => m.isValidForHoverAnchor(anchor)); <ins> if (filteredMessages.length === this.messages.length) { return this; } </ins> return new FilteredHoverResult(this, this.anchor, filteredMessages, this.isComplete); } }
handler: async (accessor: ServicesAccessor, _: string, context: CallStackContext | unknown) => { const textResourcePropertiesService = accessor.get(ITextResourcePropertiesService); const clipboardService = accessor.get(IClipboardService); <del> const frame = getFrame(accessor.get(IDebugService), context); </del> <ins> const debugService = accessor.get(IDebugService); const frame = getFrame(debugService, context); </ins> if (frame) { const eol = textResourcePropertiesService.getEOL(frame.source.uri); await clipboardService.writeText(frame.thread.getCallStack().map(sf => sf.toString()).join(eol));
import { ITerminalCommand, TerminalCapability } from 'vs/workbench/contrib/terminal/common/capabilities/capabilities'; import { TerminalCapabilityStoreMultiplexer } from 'vs/workbench/contrib/terminal/common/capabilities/terminalCapabilityStore'; import { IEnvironmentVariableInfo } from 'vs/workbench/contrib/terminal/common/environmentVariable'; <del> import { getCommandHistory } from 'vs/workbench/contrib/terminal/common/history'; </del> <ins> import { getCommandHistory, getDirectoryHistory } from 'vs/workbench/contrib/terminal/common/history'; </ins> import { DEFAULT_COMMANDS_TO_SKIP_SHELL, INavigationMode, ITerminalBackend, ITerminalProcessManager, ITerminalProfileResolverService, ProcessState, ShellIntegrationExitCode, TerminalCommandId, TERMINAL_CREATION_COMMANDS, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; import { formatMessageForTerminal } from 'vs/workbench/contrib/terminal/common/terminalStrings';
this._cwd = e; this._xtermOnKey?.dispose(); this.refreshTabLabels(this.title, TitleEventSource.Config); <ins> this._instantiationService.invokeFunction(getDirectoryHistory)?.add(e, null); </ins> }); } else if (e === TerminalCapability.CommandDetection) { this.capabilities.get(TerminalCapability.CommandDetection)?.onCommandFinished(e => {
for (const label of cwds) { items.push({ label }); } items = items.reverse(); <ins> // Gather previous session history const history = this._instantiationService.invokeFunction(getDirectoryHistory); const previousSessionItems: IQuickPickItem[] = []; // Only add previous session item if it's not in this session for (const [label] of history.entries) { if (!cwds.includes(label)) { previousSessionItems.push({ label, buttons: [removeFromCommandHistoryButton] }); } } if (previousSessionItems.length > 0) { items.push( { type: 'separator', label: 'previous sessions' }, ...previousSessionItems ); } </ins> } if (items.length === 0) { return;
return new Promise<void>(r => { quickPick.onDidTriggerItemButton(async e => { if (e.button === removeFromCommandHistoryButton) { <del> this._instantiationService.invokeFunction(getCommandHistory)?.remove(e.item.label); } const selectedCommand = (e.item as Item).command; const output = selectedCommand?.getOutput(); if (output && selectedCommand?.command) { const textContent = await outputProvider.provideTextContent(URI.from( { scheme: TerminalOutputProvider.scheme, path: `${selectedCommand.command}... ${fromNow(selectedCommand.timestamp, true)}`, fragment: output, query: `terminal-output-${selectedCommand.timestamp}-${this.instanceId}` })); if (textContent) { await this._editorService.openEditor({ resource: textContent.uri }); </del> <ins> if (type === 'command') { this._instantiationService.invokeFunction(getCommandHistory)?.remove(e.item.label); } else { this._instantiationService.invokeFunction(getDirectoryHistory)?.remove(e.item.label); } } else { const selectedCommand = (e.item as Item).command; const output = selectedCommand?.getOutput(); if (output && selectedCommand?.command) { const textContent = await outputProvider.provideTextContent(URI.from( { scheme: TerminalOutputProvider.scheme, path: `${selectedCommand.command}... ${fromNow(selectedCommand.timestamp, true)}`, fragment: output, query: `terminal-output-${selectedCommand.timestamp}-${this.instanceId}` })); if (textContent) { await this._editorService.openEditor({ resource: textContent.uri }); } </ins> } } quickPick.hide();
return commandHistory; } <ins> let directoryHistory: ITerminalPersistedHistory<null> | undefined = undefined; export function getDirectoryHistory(accessor: ServicesAccessor): ITerminalPersistedHistory<null> { if (!directoryHistory) { directoryHistory = accessor.get(IInstantiationService).createInstance(TerminalPersistedHistory, 'dirs') as TerminalPersistedHistory<null>; } return directoryHistory; } </ins> export class TerminalPersistedHistory<T> extends Disposable implements ITerminalPersistedHistory<T> { private readonly _entries: LRUCache<string, T>; private _timestamp: number = 0;
.monaco-workbench .pane-body.integrated-terminal .xterm { /* All terminals have at least 10px left/right edge padding and 2 padding on the bottom (so underscores on last line are visible */ padding: 0 10px 2px; <del> /* Bottom align the terminal withing the split pane */ </del> <ins> /* Bottom align the terminal within the split pane */ </ins> position: absolute; bottom: 0; left: 0; right: 0; } <ins> .terminal-side-view .terminal.xterm { /* Top align the terminal within the split pane when the panel is vertical */ top: 0; } </ins> .monaco-workbench .editor-instance .terminal-wrapper.fixed-dims .xterm, .monaco-workbench .pane-body.integrated-terminal .terminal-wrapper.fixed-dims .xterm { position: static;
const $ = dom.$; <del> const FIND_FOCUS_CLASS = 'find-focused'; const STATUS_ICON_WIDTH = 30; const SPLIT_ANNOTATION_WIDTH = 30; </del> <ins> const enum CssClass { ViewIsVertical = 'terminal-side-view', FindFocus = 'find-focused' } const enum WidthConstants { StatusIcon = 30, SplitAnnotation = 30 } </ins> export class TerminalTabbedView extends Disposable {
this._register(this._themeService.onDidColorThemeChange(theme => this._updateTheme(theme))); this._updateTheme(); <del> this._findWidget.focusTracker.onDidFocus(() => this._terminalContainer.classList.add(FIND_FOCUS_CLASS)); this._findWidget.focusTracker.onDidBlur(() => this._terminalContainer.classList.remove(FIND_FOCUS_CLASS)); </del> <ins> this._findWidget.focusTracker.onDidFocus(() => this._terminalContainer.classList.add(CssClass.FindFocus)); this._findWidget.focusTracker.onDidBlur(() => this._terminalContainer.classList.remove(CssClass.FindFocus)); </ins> this._attachEventListeners(parentElement, this._terminalContainer); this._terminalGroupService.onDidChangePanelOrientation((orientation) => { this._panelOrientation = orientation; <ins> if (this._panelOrientation === Orientation.VERTICAL) { this._terminalContainer.classList.add(CssClass.ViewIsVertical); } else { this._terminalContainer.classList.remove(CssClass.ViewIsVertical); } </ins> }); this._splitView = new SplitView(parentElement, { orientation: Orientation.HORIZONTAL, proportionalLayout: false });
private _getAdditionalWidth(instance: ITerminalInstance): number { // Size to include padding, icon, status icon (if any), split annotation (if any), + a little more const additionalWidth = 40; <del> const statusIconWidth = instance.statusList.statuses.length > 0 ? STATUS_ICON_WIDTH : 0; const splitAnnotationWidth = (this._terminalGroupService.getGroupForInstance(instance)?.terminalInstances.length || 0) > 1 ? SPLIT_ANNOTATION_WIDTH : 0; </del> <ins> const statusIconWidth = instance.statusList.statuses.length > 0 ? WidthConstants.StatusIcon : 0; const splitAnnotationWidth = (this._terminalGroupService.getGroupForInstance(instance)?.terminalInstances.length || 0) > 1 ? WidthConstants.SplitAnnotation : 0; </ins> return additionalWidth + splitAnnotationWidth + statusIconWidth; }
#   Licensed under the MIT License. See License.txt in the project root for license information. # --------------------------------------------------------------------------------------------- <del> $Global:__VSCodeOriginalPrompt = (Get-Command Prompt).ScriptBlock </del> <ins> $Global:__VSCodeOriginalPrompt = $function:Prompt </ins> function Global:__VSCode-Get-LastExitCode { <del> if ($? -eq $True) { return "0" } </del> <ins> if ($? -eq $True) { return 0 } </ins> # TODO: Should we just return a string instead? <del> return "-1" </del> <ins> return -1 </ins> } function Global:Prompt() {
# TODO: There are probably better serializable strings to use # TODO: This doesn't work for empty commands of ^C # TODO: Check ID against last to see if no command ran <del> $Result += $(Get-History -Count 1).CommandLine.Replace("`n", "<LF>").Replace(";", "<CL>") $Result += "`u{7}" </del> <ins> $CommandLine = $(Get-History -Count 1).CommandLine ?? "" $Result += $CommandLine.Replace("`n", "<LF>").Replace(";", "<CL>") $Result += "`a" </ins> # Command finished exit code # OSC 133 ; D ; <ExitCode> ST <del> $Result += "`e]133;D;$(__VSCode-Get-LastExitCode)`u{7}" </del> <ins> $Result += "`e]133;D;$(__VSCode-Get-LastExitCode)`a" </ins> # Prompt started # OSC 133 ; A ST <del> $Result += "`e]133;A`u{7}" </del> <ins> $Result += "`e]133;A`a" </ins> # Current working directory # OSC 1337 ; CurrentDir=<CurrentDir> ST <del> $Result += "`e]1337;CurrentDir=$(Get-Location)`u{7}" </del> <ins> $Result += if($pwd.Provider.Name -eq 'FileSystem'){"`e]1337;CurrentDir=$($pwd.ProviderPath)`a"} </ins> # Write original prompt <del> $Result += Invoke-Command -ScriptBlock $Global:__VSCodeOriginalPrompt </del> <ins> $Result += $Global:__VSCodeOriginalPrompt.Invoke() </ins> # Write command started <del> $Result += "`e]133;B`u{7}" return $Result </del> <ins> $Result += "`e]133;B`a" return $Result </ins> } # TODO: Gracefully fallback when PSReadLine is not loaded function Global:PSConsoleHostReadLine { <del> [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($Host.Runspace, $ExecutionContext) # Write command executed sequence directly to Console to avoid the new line from Write-Host [Console]::Write("`e]133;C`u{7}") </del> <ins> [Microsoft.PowerShell.PSConsoleReadLine]::ReadLine($Host.Runspace, $ExecutionContext) # Write command executed sequence directly to Console to avoid the new line from Write-Host [Console]::Write("`e]133;C`u{7}") </ins> } # Set IsWindows property <del> Write-Output "`e]633;P;IsWindows=$($IsWindows)`u{7}" Write-Host "`e[1mShell integration activated!" -ForegroundColor Green -NoNewline </del> <ins> [Console]::Write("`e]633;P;IsWindows=$($IsWindows)`a") Write-Host "`e[1mShell integration activated!" -ForegroundColor Green </ins>