jiebi/CodeConvo huggingface dataset:
// Windows 32-bit warning if (isWindows && this.environmentService.os.arch === 'ia32') { const message = localize('windows32eolmessage', "You are running {0} 32-bit, which will soon stop receiving updates on Windows. Consider upgrading to the 64-bit build.", this.productService.nameLong); <del> const actions = [{ label: localize('windowseolBannerLearnMore', "Learn More"), href: 'https://aka.ms/vscode-faq-old-windows' }]; this.bannerService.show({ id: 'windows32eol.banner', message, ariaLabel: localize('windowseolarialabel', "{0}. Use navigation keys to access banner actions.", message), actions, icon: Codicon.warning }); </del> this.notificationService.prompt( Severity.Warning,
if (eolReleases.has(majorVersion)) { const message = localize('macoseolmessage', "{0} on {1} will soon stop receiving updates. Consider upgrading your macOS version.", this.productService.nameLong, eolReleases.get(majorVersion)); <del> const actions = [{ label: localize('macoseolBannerLearnMore', "Learn More"), href: 'https://aka.ms/vscode-faq-old-macOS' }]; this.bannerService.show({ id: 'macoseol.banner', message, ariaLabel: localize('macoseolarialabel', "{0}. Use navigation keys to access banner actions.", message), actions, icon: Codicon.warning }); </del> this.notificationService.prompt( Severity.Warning,
import { assertAllDefined, assertIsDefined } from 'vs/base/common/types'; import { NotificationsCenterVisibleContext } from 'vs/workbench/common/contextkeys'; import { INotificationService } from 'vs/platform/notification/common/notification'; <ins> import { AccessibleNotificationEvent, IAccessibleNotificationService } from 'vs/platform/accessibility/common/accessibility'; </ins> export class NotificationsCenter extends Themable implements INotificationsCenterController {
import { ActionRunner, IAction, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions'; import { hash } from 'vs/base/common/hash'; import { firstOrDefault } from 'vs/base/common/arrays'; <ins> import { AccessibleNotificationEvent, IAccessibleNotificationService } from 'vs/platform/accessibility/common/accessibility'; </ins> // Center export const SHOW_NOTIFICATIONS_CENTER = 'notifications.showList';
primary: KeyMod.CtrlCmd | KeyCode.Backspace }, handler: (accessor, args?) => { <ins> const accessibleNotificationService = accessor.get(IAccessibleNotificationService); </ins> const notification = getNotificationFromContext(accessor.get(IListService), args); if (notification && !notification.hasProgress) { notification.close(); <ins> accessibleNotificationService.notify(AccessibleNotificationEvent.Clear); </ins> } } });
this.stateModel.setRuntimeValue(LayoutStateKeys.EDITOR_HIDDEN, false); } <del> // Activity bar cannot be hidden if (this.stateModel.getRuntimeValue(LayoutStateKeys.ACTIVITYBAR_HIDDEN) && !this.canActivityBarBeHidden()) { this.stateModel.setRuntimeValue(LayoutStateKeys.ACTIVITYBAR_HIDDEN, false); } </del> this.stateModel.onDidChangeState(change => { if (change.key === LayoutStateKeys.ACTIVITYBAR_HIDDEN) { this.setActivityBarHidden(change.value as boolean);
} } <ins> // Activity bar cannot be hidden // This check must be called after state is set // because canActivityBarBeHidden calls isVisible if (this.stateModel.getRuntimeValue(LayoutStateKeys.ACTIVITYBAR_HIDDEN) && !this.canActivityBarBeHidden()) { this.stateModel.setRuntimeValue(LayoutStateKeys.ACTIVITYBAR_HIDDEN, false); } </ins> // Window border this.updateWindowBorder(true); }
export function parseAuthorityWithPort(authority: string): { host: string; port: number } { const { host, port } = parseAuthority(authority); if (typeof port === 'undefined') { <del> throw new Error(`Remote authority doesn't contain a port!`); </del> <ins> throw new Error(`Invalid remote authority: ${authority}. It must either be a remote of form <remoteName>+<arg> or a remote host of form <host>:<port>.`); </ins> } return { host, port }; }
"textCodeBlock.background": "#2B2B2B", "textLink.activeForeground": "#4daafc", "textLink.foreground": "#4daafc", <del> "textPreformat.foreground": "#D0D0D0", </del> <ins> "textPreformat.foreground": "#D7BA7D", </ins> "textPreformat.background": "#3C3C3C", "textSeparator.foreground": "#21262D", "titleBar.activeBackground": "#181818",
"textCodeBlock.background": "#F8F8F8", "textLink.activeForeground": "#005FB8", "textLink.foreground": "#005FB8", <del> "textPreformat.foreground": "#3B3B3B", </del> <ins> "textPreformat.foreground": "#A31515", </ins> "textPreformat.background":	"#0000001F", "textSeparator.foreground": "#21262D", "titleBar.activeBackground": "#F8F8F8",
export const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize('textSeparatorForeground', "Color for text separators.")); export const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#3794FF', hcLight: '#0F4A85' }, nls.localize('textLinkForeground', "Foreground color for links in text.")); export const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#3794FF', hcLight: '#0F4A85' }, nls.localize('textLinkActiveForeground', "Foreground color for links in text when clicked on and on mouse hover.")); <del> export const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#000000', hcLight: '#FFFFFF' }, nls.localize('textPreformatForeground', "Foreground color for preformatted text segments.")); </del> <ins> export const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#D7BA7D', hcLight: '#292929' }, nls.localize('textPreformatForeground', "Foreground color for preformatted text segments.")); </ins> export const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: '#FFFFFF', hcLight: '#09345f' }, nls.localize('textPreformatBackground', "Background color for preformatted text segments.")); export const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize('textBlockQuoteBackground', "Background color for block quotes in text.")); export const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize('textBlockQuoteBorder', "Border color for block quotes in text."));
IFS=':' read -ra ADDR <<< "$VSCODE_ENV_REPLACE" for ITEM in "${ADDR[@]}"; do VARNAME="$(echo $ITEM | cut -d "=" -f 1)" <del> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2)" </del> <ins> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2-)" </ins> export $VARNAME="$VALUE" done builtin unset VSCODE_ENV_REPLACE
IFS=':' read -ra ADDR <<< "$VSCODE_ENV_PREPEND" for ITEM in "${ADDR[@]}"; do VARNAME="$(echo $ITEM | cut -d "=" -f 1)" <del> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2)" </del> <ins> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2-)" </ins> export $VARNAME="$VALUE${!VARNAME}" done builtin unset VSCODE_ENV_PREPEND
IFS=':' read -ra ADDR <<< "$VSCODE_ENV_APPEND" for ITEM in "${ADDR[@]}"; do VARNAME="$(echo $ITEM | cut -d "=" -f 1)" <del> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2)" </del> <ins> VALUE="$(echo -e "$ITEM" | cut -d "=" -f 2-)" </ins> export $VARNAME="${!VARNAME}$VALUE" done builtin unset VSCODE_ENV_APPEND
if ($env:VSCODE_ENV_REPLACE) { $Split = $env:VSCODE_ENV_REPLACE.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], $Inner[1].Replace('x3a', ':')) } $env:VSCODE_ENV_REPLACE = $null
if ($env:VSCODE_ENV_PREPEND) { $Split = $env:VSCODE_ENV_PREPEND.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], $Inner[1].Replace('x3a', ':') + [Environment]::GetEnvironmentVariable($Inner[0])) } $env:VSCODE_ENV_PREPEND = $null
if ($env:VSCODE_ENV_APPEND) { $Split = $env:VSCODE_ENV_APPEND.Split(":") foreach ($Item in $Split) { <del> $Inner = $Item.Split('=') </del> <ins> $Inner = $Item.Split('=', 2) </ins> [Environment]::SetEnvironmentVariable($Inner[0], [Environment]::GetEnvironmentVariable($Inner[0]) + $Inner[1].Replace('x3a', ':')) } $env:VSCODE_ENV_APPEND = $null
editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false); } } <ins> for (const uri of deleteURI) { WordHighlighter.storedDecorations.delete(uri); } </ins> } private _stopSingular(): void { // Remove any existing decorations + a possible query, and re - run to update decorations this._removeSingleDecorations(); <del> if (this.editor.hasWidgetFocus()) { </del> <ins> if (this.editor.hasTextFocus()) { </ins> if (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell && WordHighlighter.query?.modelInfo?.model.uri.scheme !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor WordHighlighter.query = null; this._run();
} } <del> private _stopAll(): void { </del> <ins> private _stopAll() { </ins> // Remove any existing decorations <del> // TODO: @Yoyokrazy - this triggers as notebooks scroll, causing highlights to disappear momentarily. </del> <ins> // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily. // maybe a nb type check? </ins> this._removeAllDecorations(); // Cancel any renderDecorationsTimer
// a) there is no stored query model, but there is a word. This signals the editor that drove the highlight is disposed (cell out of viewport, etc) // b) the queried model is not the current model. This signals that the editor that drove the highlight is still in the viewport, but we are highlighting a different cell // otherwise, we send null in place of the word, and the model and selection are used to compute the word <ins> // TODO: @Yoyokrazy -- investigate this logic for sendWord </ins> const sendWord = (!WordHighlighter.query.modelInfo && WordHighlighter.query.word) || (WordHighlighter.query.modelInfo?.model.uri !== this.model.uri) ? true : false;
import * as arrays from 'vs/base/common/arrays'; import { RunOnceScheduler } from 'vs/base/common/async'; import * as errors from 'vs/base/common/errors'; <del> import { DisposableStore, dispose, IDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { DisposableStore, dispose, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle'; </ins> import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/debugToolBar'; import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
import { CONTEXT_DEBUG_STATE, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_FOCUSED_SESSION_IS_NO_DEBUG, CONTEXT_IN_DEBUG_MODE, CONTEXT_MULTI_SESSION_DEBUG, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_SUSPEND_DEBUGGEE_SUPPORTED, CONTEXT_TERMINATE_DEBUGGEE_SUPPORTED, IDebugConfiguration, IDebugService, State, VIEWLET_ID } from 'vs/workbench/contrib/debug/common/debug'; import { EditorTabsMode, IWorkbenchLayoutService, LayoutSettings, Parts } from 'vs/workbench/services/layout/browser/layoutService'; import { Codicon } from 'vs/base/common/codicons'; <del> import { mainWindow } from 'vs/base/browser/window'; </del> <ins> import { CodeWindow, mainWindow } from 'vs/base/browser/window'; import { clamp } from 'vs/base/common/numbers'; </ins> const DEBUG_TOOLBAR_POSITION_KEY = 'debug.actionswidgetposition'; const DEBUG_TOOLBAR_Y_KEY = 'debug.actionswidgety';
// log in telemetry this.telemetryService.publicLog2<WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification>('workbenchActionExecuted', { id: e.action.id, from: 'debugActionsWidget' }); })); <del> this._register(dom.addDisposableListener(mainWindow, dom.EventType.RESIZE, () => this.setCoordinates())); </del> this._register(dom.addDisposableGenericMouseUpListener(this.dragArea, (event: MouseEvent) => { const mouseClickEvent = new StandardMouseEvent(dom.getWindow(this.dragArea), event); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> if (mouseClickEvent.detail === 2) { // double click on debug bar centers it again #8250 const widgetWidth = this.$el.clientWidth; <del> this.setCoordinates(0.5 * mainWindow.innerWidth - 0.5 * widgetWidth, 0); </del> <ins> this.setCoordinates(0.5 * activeWindow.innerWidth - 0.5 * widgetWidth, 0); </ins> this.storePosition(); } })); this._register(dom.addDisposableGenericMouseDownListener(this.dragArea, (event: MouseEvent) => { this.dragArea.classList.add('dragged'); <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); </ins> <del> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(mainWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(mainWindow, e); </del> <ins> const mouseMoveListener = dom.addDisposableGenericMouseMoveListener(activeWindow, (e: MouseEvent) => { const mouseMoveEvent = new StandardMouseEvent(activeWindow, e); </ins> // Prevent default to stop editor selecting text #8524 mouseMoveEvent.preventDefault(); // Reduce x by width of drag handle to reduce jarring #16604 this.setCoordinates(mouseMoveEvent.posx - 14, mouseMoveEvent.posy - 14); }); <del> const mouseUpListener = dom.addDisposableGenericMouseUpListener(mainWindow, (e: MouseEvent) => { </del> <ins> const mouseUpListener = dom.addDisposableGenericMouseUpListener(activeWindow, (e: MouseEvent) => { </ins> this.storePosition(); this.dragArea.classList.remove('dragged');
this._register(this.layoutService.onDidChangePartVisibility(() => this.setYCoordinate())); this._register(browser.PixelRatio.onDidChange(() => this.setYCoordinate())); <ins> const resizeListener = this._register(new MutableDisposable()); this._register(this.layoutService.onDidChangeActiveContainer(() => { this._yRange = undefined; // note: we intentionally don't read the activeContainer before the // `then` clause to avoid any races due to quickly switching windows. this.layoutService.whenActiveContainerStylesLoaded.then(() => { if (this.isBuilt) { this.layoutService.activeContainer.appendChild(this.$el); this.setCoordinates(); } resizeListener.value = this._register(dom.addDisposableListener( dom.getWindow(this.layoutService.activeContainer), dom.EventType.RESIZE, () => this.setYCoordinate())); }); })); </ins> } private storePosition(): void { <del> const left = dom.getComputedStyle(this.$el).left; if (left) { const position = parseFloat(left) / mainWindow.innerWidth; this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, position, StorageScope.PROFILE, StorageTarget.MACHINE); } if (this.yCoordinate) { </del> <ins> const activeWindow = dom.getWindow(this.layoutService.activeContainer); const isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer; const left = this.$el.getBoundingClientRect().left / activeWindow.innerWidth; if (isMainWindow) { this.storageService.store(DEBUG_TOOLBAR_POSITION_KEY, left, StorageScope.PROFILE, StorageTarget.MACHINE); </ins> this.storageService.store(DEBUG_TOOLBAR_Y_KEY, this.yCoordinate, StorageScope.PROFILE, StorageTarget.MACHINE); } else { <del> this.storageService.remove(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE); </del> <ins> this.auxWindowCoordinates.set(activeWindow, { x: left, y: this.yCoordinate }); </ins> } }
if (!this.isVisible) { return; } const widgetWidth = this.$el.clientWidth; <ins> const currentWindow = dom.getWindow(this.layoutService.activeContainer); const isMainWindow = currentWindow === mainWindow; </ins> if (x === undefined) { <del> const positionPercentage = this.storageService.get(DEBUG_TOOLBAR_POSITION_KEY, StorageScope.PROFILE); x = positionPercentage !== undefined ? parseFloat(positionPercentage) * mainWindow.innerWidth : (0.5 * mainWindow.innerWidth - 0.5 * widgetWidth); </del> <ins> const positionPercentage = isMainWindow ? Number(this.storageService.get(DEBUG_TOOLBAR_POSITION_KEY, StorageScope.PROFILE)) : this.auxWindowCoordinates.get(currentWindow)?.x; x = positionPercentage !== undefined ? positionPercentage * currentWindow.innerWidth : (0.5 * currentWindow.innerWidth - 0.5 * widgetWidth); </ins> } <del> x = Math.max(0, Math.min(x, mainWindow.innerWidth - widgetWidth)); // do not allow the widget to overflow on the right </del> <ins> x = clamp(x, 0, currentWindow.innerWidth - widgetWidth); // do not allow the widget to overflow on the right </ins> this.$el.style.left = `${x}px`; if (y === undefined) { <del> y = this.storageService.getNumber(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE, 0); </del> <ins> y = isMainWindow ? this.storageService.getNumber(DEBUG_TOOLBAR_Y_KEY, StorageScope.PROFILE) : this.auxWindowCoordinates.get(currentWindow)?.y; </ins> } <del> this.setYCoordinate(y); </del> <ins> this.setYCoordinate(y || 0); </ins> } private setYCoordinate(y = this.yCoordinate): void {
private _yRange: [number, number] | undefined; private get yRange(): [number, number] { if (!this._yRange) { <del> const isTitleBarVisible = this.layoutService.isVisible(Parts.TITLEBAR_PART, mainWindow); </del> <ins> const isTitleBarVisible = this.layoutService.isVisible(Parts.TITLEBAR_PART, dom.getWindow(this.layoutService.activeContainer)); </ins> const yMin = isTitleBarVisible ? 0 : this.layoutService.mainContainerOffset.top; let yMax = 0;
await TerminalAccessibleViewContribution.get(instance)?.navigateToCommand(NavigationType.Previous); } }); <ins> registerTerminalAction({ id: TerminalCommandId.ScrollToBottom, title: { value: localize('workbench.action.terminal.scrollToBottom', "Scroll to Bottom"), original: 'Scroll to Bottom' }, precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), ContextKeyExpr.and(accessibleViewIsShown, ContextKeyExpr.equals(accessibleViewCurrentProviderId.key, AccessibleViewProviderId.Terminal))), keybinding: { primary: KeyMod.CtrlCmd | KeyCode.End, linux: { primary: KeyMod.Shift | KeyCode.End }, when: accessibleViewCurrentProviderId.isEqualTo(AccessibleViewProviderId.Terminal), weight: KeybindingWeight.WorkbenchContrib }, run: (c, accessor) => { const accessibleViewService = accessor.get(IAccessibleViewService); const lastPosition = accessibleViewService.getLastPosition(); if (!lastPosition) { return; } accessibleViewService.setPosition(lastPosition, true); } }); registerTerminalAction({ id: TerminalCommandId.ScrollToTop, title: { value: localize('workbench.action.terminal.scrollToTop', "Scroll to Top"), original: 'Scroll to Top' }, precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), ContextKeyExpr.and(accessibleViewIsShown, ContextKeyExpr.equals(accessibleViewCurrentProviderId.key, AccessibleViewProviderId.Terminal))), keybinding: { primary: KeyMod.CtrlCmd | KeyCode.Home, linux: { primary: KeyMod.Shift | KeyCode.Home }, when: accessibleViewCurrentProviderId.isEqualTo(AccessibleViewProviderId.Terminal), weight: KeybindingWeight.WorkbenchContrib }, run: (c, accessor) => { const accessibleViewService = accessor.get(IAccessibleViewService); accessibleViewService.setPosition({ lineNumber: 1, column: 1 } as Position, true); } }); </ins>
return; } this._inlineChatKeybinding = keybinding; <del> const hoverMessage = new MarkdownString(keybinding ? localize('runWithKeybinding', 'Start Inline Chat [{0}]', keybinding) : LOCALIZED_START_INLINE_CHAT_STRING); </del> <ins> const hoverMessage = new MarkdownString(keybinding ? localize('runWithKeybinding', 'Start Inline Chat ({0})', keybinding) : LOCALIZED_START_INLINE_CHAT_STRING); </ins> this._gutterDecorationTransparent.glyphMarginHoverMessage = hoverMessage; this._gutterDecorationOpaque.glyphMarginHoverMessage = hoverMessage; }
precondition: ContextKeyExpr.and(ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated), TerminalContextKeys.tabsSingularSelection), run: async (c, accessor) => { let color: string | undefined; <ins> let i = 0; </ins> for (const terminal of getSelectedInstances(accessor) ?? []) { <del> color = await terminal.changeColor(color); </del> <ins> const skipQuickPick = i !== 0; // Always show the quickpick on the first iteration color = await terminal.changeColor(color, skipQuickPick); i++; </ins> } } });
when: TerminalContextKeys.tabsFocus }, run: async (c, accessor) => { <del> for (const terminal of getSelectedInstances(accessor) ?? []) { c.service.safeDisposeTerminal(terminal); </del> <ins> const disposePromises: Promise<void>[] = []; for (const terminal of getSelectedInstances(accessor, true) ?? []) { disposePromises.push(c.service.safeDisposeTerminal(terminal)); </ins> } <ins> await Promise.all(disposePromises); </ins> c.groupService.focusTabs(); } });
const terminalGroupService = accessor.get(ITerminalGroupService); const result: ITerminalInstance[] = []; <del> // Get inline tab instance if (terminalGroupService.lastAccessedMenu === 'inline-tab') { </del> <ins> const list = listService.lastFocusedList; // Get selected tab list instance(s) const selections = list?.getSelection(); // Get inline tab instance if there are not tab list selections #196578 if (terminalGroupService.lastAccessedMenu === 'inline-tab' && !selections?.length) { </ins> const instance = terminalGroupService.activeInstance; return instance ? [terminalGroupService.activeInstance] : undefined; } <del> // Get tab list instance if (!listService.lastFocusedList?.getSelection()) { </del> <ins> if (!list || !selections) { </ins> return undefined; } <del> const selections = listService.lastFocusedList.getSelection(); const focused = listService.lastFocusedList.getFocus(); </del> <ins> const focused = list.getFocus(); </ins> if (focused.length === 1 && !selections.includes(focused[0])) { // focused length is always a max of 1
return; } <del> async changeColor(color?: string): Promise<string | undefined> { </del> <ins> async changeColor(color?: string, skipQuickPick?: boolean): Promise<string | undefined> { </ins> if (color) { this.shellLaunchConfig.color = color; this._onIconChanged.fire({ instance: this, userInitiated: true }); return color; <ins> } else if (skipQuickPick) { // Reset this tab's color this.shellLaunchConfig.color = ''; this._onIconChanged.fire({ instance: this, userInitiated: true }); return; </ins> } const icon = this._getIcon(); if (!icon) {
title: { value: LOCALIZED_START_INLINE_CHAT_STRING, original: 'Start Inline Chat' }, category: AbstractInlineChatAction.category, f1: true, <del> precondition: CTX_INLINE_CHAT_HAS_PROVIDER, </del> <ins> precondition: ContextKeyExpr.and(CTX_INLINE_CHAT_HAS_PROVIDER, EditorContextKeys.writable), </ins> keybinding: { when: EditorContextKeys.focus, weight: KeybindingWeight.WorkbenchContrib,
import * as perf from 'vs/base/common/performance'; import { WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions'; import { memoize } from 'vs/base/common/decorators'; <del> import { IFilesConfiguration, ExplorerFolderContext, FilesExplorerFocusedContext, ExplorerFocusedContext, ExplorerRootContext, ExplorerResourceReadonlyContext, ExplorerResourceCut, ExplorerResourceMoveableToTrash, ExplorerCompressedFocusContext, ExplorerCompressedFirstFocusContext, ExplorerCompressedLastFocusContext, ExplorerResourceAvailableEditorIdsContext, VIEW_ID, VIEWLET_ID, ExplorerResourceNotReadonlyContext, ViewHasSomeCollapsibleRootItemContext, FoldersViewVisibleContext } from 'vs/workbench/contrib/files/common/files'; </del> <ins> import { IFilesConfiguration, ExplorerFolderContext, FilesExplorerFocusedContext, ExplorerFocusedContext, ExplorerRootContext, ExplorerResourceReadonlyContext, ExplorerResourceCut, ExplorerResourceMoveableToTrash, ExplorerCompressedFocusContext, ExplorerCompressedFirstFocusContext, ExplorerCompressedLastFocusContext, ExplorerResourceAvailableEditorIdsContext, VIEW_ID, ExplorerResourceNotReadonlyContext, ViewHasSomeCollapsibleRootItemContext, FoldersViewVisibleContext } from 'vs/workbench/contrib/files/common/files'; </ins> import { FileCopiedContext, NEW_FILE_COMMAND_ID, NEW_FOLDER_COMMAND_ID } from 'vs/workbench/contrib/files/browser/fileActions'; import * as DOM from 'vs/base/browser/dom'; import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';