} /** <ins> * Impacts the behavior and appearance of the validation message. */ export enum InputBoxValidationSeverity { Info = 1, Warning = 2, Error = 3 } /** * Object to configure the behavior of the validation message. */ export interface InputBoxValidationMessage { /** * The validation message to display. */ readonly message: string; /** * The severity of the validation message. * NOTE: When using `InputBoxValidationSeverity.Error`, the user will not be allowed to accept (hit ENTER) the input. * `Info` and `Warning` will still allow the InputBox to accept the input. */ readonly severity: InputBoxValidationSeverity; } /** </ins> * Options to configure the behavior of the input box UI. */ export interface InputBoxOptions {


condition, hitCondition, logMessage <del> }]); </del> <ins> }], `breakpointWidget`); </ins> } }


let subscription: IDisposable | undefined; if (typeof provider.onDidChange === 'function') { <del> subscription = provider.onDidChange(uri => { </del> <ins> let lastEvent: Promise<void> | undefined; subscription = provider.onDidChange(async uri => { </ins> if (uri.scheme !== scheme) { this._logService.warn(`Provider for scheme '${scheme}' is firing event for schema '${uri.scheme}' which will be IGNORED`); return; } <del> if (this._documentsAndEditors.getDocument(uri)) { this.$provideTextDocumentContent(handle, uri).then(value => { </del> <ins> if (!this._documentsAndEditors.getDocument(uri)) { // ignore event if document isn't open return; } if (lastEvent) { await lastEvent; } const thisEvent = this.$provideTextDocumentContent(handle, uri) .then(async value => { </ins> if (!value && typeof value !== 'string') { return; }


this.onModelChanged(); this.codeEditorService.registerDecorationType('comment-controller', COMMENTEDITOR_DECORATION_KEY, {}); <del> this.commentService.registerContinueOnCommentProvider({ provideContinueOnComments: () => { const pendingComments: languages.PendingCommentThread[] = []; if (this._commentWidgets) { for (const zone of this._commentWidgets) { const zonePendingComments = zone.getPendingComments(); const pendingNewComment = zonePendingComments.newComment; if (!pendingNewComment) { continue; } let lastCommentBody; if (zone.commentThread.comments && zone.commentThread.comments.length) { const lastComment = zone.commentThread.comments[zone.commentThread.comments.length - 1]; if (typeof lastComment.body === 'string') { lastCommentBody = lastComment.body; } else { lastCommentBody = lastComment.body.value; </del> <ins> this.globalToDispose.add( this.commentService.registerContinueOnCommentProvider({ provideContinueOnComments: () => { const pendingComments: languages.PendingCommentThread[] = []; if (this._commentWidgets) { for (const zone of this._commentWidgets) { const zonePendingComments = zone.getPendingComments(); const pendingNewComment = zonePendingComments.newComment; if (!pendingNewComment) { continue; } let lastCommentBody; if (zone.commentThread.comments && zone.commentThread.comments.length) { const lastComment = zone.commentThread.comments[zone.commentThread.comments.length - 1]; if (typeof lastComment.body === 'string') { lastCommentBody = lastComment.body; } else { lastCommentBody = lastComment.body.value; } </ins> } <del> } if (pendingNewComment !== lastCommentBody) { pendingComments.push({ owner: zone.owner, uri: zone.editor.getModel()!.uri, range: zone.commentThread.range, body: pendingNewComment, isReply: (zone.commentThread.comments !== undefined) && (zone.commentThread.comments.length > 0) }); </del> <ins> if (pendingNewComment !== lastCommentBody) { pendingComments.push({ owner: zone.owner, uri: zone.editor.getModel()!.uri, range: zone.commentThread.range, body: pendingNewComment, isReply: (zone.commentThread.comments !== undefined) && (zone.commentThread.comments.length > 0) }); } </ins> } } <ins> return pendingComments; </ins> } <del> return pendingComments; } }); </del> <ins> }) ); </ins> } private registerEditorListeners() {


import { QuickQuestionMode } from 'vs/workbench/contrib/chat/browser/actions/quickQuestionActions/quickQuestionAction'; import { alertFocusChange } from 'vs/workbench/contrib/accessibility/browser/accessibility.contribution'; import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; <ins> import { ChatWelcomeMessageModel } from 'vs/workbench/contrib/chat/common/chatModel'; import { IMarkdownString } from 'vs/base/common/htmlContent'; </ins> // Register configuration const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);


tags: ['accessibility'] }, [AccessibilityAlertSettingId.Format]: { <del> 'markdownDescription': localize('alert.format', "When in screen reader mode, alerts when a file or notebook cell is formatted. Also see {0}", '`#audioCues.format#`'), </del> <ins> 'markdownDescription': localize('alert.format', "When in screen reader mode, alerts when a file or notebook cell is formatted. Note that this will be ignored when {0} is enabled.", '`#audioCues.format#`'), </ins> 'type': 'string', 'enum': ['userGesture', 'always', 'never'], <del> 'default': 'never', </del> <ins> 'default': 'always', </ins> 'enumDescriptions': [ localize('alert.format.userGesture', "Alerts when a file is formatted via user gesture."), localize('alert.format.always', "Alerts whenever is a file is formatted, including auto save, on cell execution, and more."),


// Don't touch processes if the shutdown was a result of reload as they will be reattached const shouldPersistTerminals = this._configHelper.config.enablePersistentSessions && e.reason === ShutdownReason.RELOAD; if (shouldPersistTerminals) { <del> for (const instance of this.instances) { </del> <ins> for (const instance of this._terminalGroupService.instances) { </ins> instance.detachProcessAndDispose(TerminalExitReason.Shutdown); } return; } <del> // Force dispose of all terminal instances const shouldPersistTerminalsForEvent = this._shouldReviveProcesses(e.reason); for (const instance of this.instances) { if (shouldPersistTerminalsForEvent) { instance.shutdownPersistentProcessId = instance.persistentProcessId; } </del> <ins> // Force dispose of all pane terminal instances for (const instance of this._terminalGroupService.instances) { </ins> instance.dispose(TerminalExitReason.Shutdown); }


if (symbol && this._currentProvider) { this.showSymbol(this._currentProvider, symbol); } <del> this._currentProvider = provider; </del> } previous(): void {


this.widget.layout(this.width); this.widget.focus(); <ins> this.widget.value = this.previousPattern; this.widget.select(); </ins> this._onDidChangeOpenState.fire(true); }


private cache = new Map<string, string>(); <del> private readonly flushDelayer = new ThrottledDelayer<void>(Storage.DEFAULT_FLUSH_DELAY); </del> <ins> private readonly flushDelayer = this._register(new ThrottledDelayer<void>(Storage.DEFAULT_FLUSH_DELAY)); </ins> private pendingDeletes = new Set<string>(); private pendingInserts = new Map<string, string>();


import { DiffEditorWidget } from 'vs/editor/browser/widget/diffEditor/diffEditorWidget'; import { LineRange, LineRangeSet } from 'vs/editor/common/core/lineRange'; import { Range } from 'vs/editor/common/core/range'; <ins> import { RangeMapping } from 'vs/editor/common/diff/rangeMapping'; </ins> import { GlyphMarginLane } from 'vs/editor/common/model'; import { localize } from 'vs/nls'; <del> import { RangeMapping } from 'vs/editor/common/diff/rangeMapping'; import { renderIcon } from 'vs/base/browser/ui/iconLabel/iconLabels'; import { Codicon } from 'vs/base/common/codicons'; import { h } from 'vs/base/browser/dom'; </del> export class RevertButtonsFeature extends Disposable { constructor(


/** * Adds new breakpoints to the model for the file specified with the uri. Notifies debug adapter of breakpoint changes. */ <del> addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[]): TPromise<IBreakpoint[]>; </del> <ins> addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[], context: string): TPromise<IBreakpoint[]>; </ins> /** * Updates the breakpoints.


} if (pattern.parsedPattern(relevantPath)) { <del> return this.applyTempate(pattern.template, resource); </del> <ins> return this.applyTempate(pattern.template, resource, relevantPath); </ins> } } return undefined; } <del> private readonly _parsedTemplateExpression = /${(dirname|filename|extname|dirname((d+)))}/g; private applyTempate(template: string, resource: URI): string { </del> <ins> private readonly _parsedTemplateExpression = /${(dirname|filename|extname|dirname(([-+]?d+)))}/g; private applyTempate(template: string, resource: URI, relevantPath: string): string { </ins> let parsedPath: undefined | ParsedPath; return template.replace(this._parsedTemplateExpression, (match: string, variable: string, arg: string) => { parsedPath = parsedPath ?? parsePath(resource.path);


// do nothing } if (stat && stat.isDirectory && (resources.basename(valueUri) !== '.') && this.endsWithSlash(value)) { <ins> valueUri = this.tryAddTrailingSeparatorToDirectory(valueUri, stat); </ins> return await this.updateItems(valueUri) ? UpdateResult.UpdatedWithTrailing : UpdateResult.Updated; } else if (this.endsWithSlash(value)) { // The input box contains a path that doesn't exist on the system.


const [firstPart,] = keybinding.getDispatchParts(); if (firstPart === null) { // cannot be dispatched, probably only modifier keys <ins> this._log(` Keyboard event cannot be dispatched`); </ins> return null; }


if (e.disabled || e.message) { previewProfileAction.enabled = createAction.enabled = !this.newProfileElement?.disabled && !this.newProfileElement?.message; } <ins> if (e.name) { if (this.newProfileElement?.copyFrom && this.userDataProfilesService.profiles.some(p => p.name === this.newProfileElement?.name)) { createAction.label = localize('replace', "Replace"); } else { createAction.label = localize('create', "Create"); } } </ins> })); this._profiles.push([this.newProfileElement, disposables]); this._onDidChange.fire(this.newProfileElement);


position?: EditorPosition; preserveFocus?: boolean; pinned?: boolean; <ins> selection?: IRange; </ins> } export abstract class MainThreadEditorsShape {


}); test('cursorWordAccessibilityRight', () => { <del> const EXPECTED = ['   /* Just| some|   more|   text| a|+= 3| +5|-3| + 7| */  |'].join('n'); </del> <ins> const EXPECTED = ['   /* |Just |some   |more   |text |a+= |3 +|5-|3 + |7 */  |'].join('n'); </ins> const [text,] = deserializePipePositions(EXPECTED); const actualStops = testRepeatedActionAndExtractPositions( text,


disturl "https://electronjs.org/headers" <del> target "25.8.1" ms_build_id "23779380" </del> <ins> target "25.8.2" ms_build_id "23977753" </ins> runtime "electron" build_from_source "true"


} return this.addExtensionToWorkspaceConfig(workspaceConfig, extensionId, shouldRecommend).then(() => { <del> this.notificationService.info(localize('AddToWorkspaceRecommendations.success', 'The extension was successfully added to this workspace's recommendations.')); </del> <ins> this.notificationService.prompt(Severity.Info, localize('AddToWorkspaceRecommendations.success', 'The extension was successfully added to this workspace's recommendations.'), [{ label: localize('viewChanges', "View Changes"), run: () => this.openWorkspaceConfigurationFile(workspaceConfig) }]); </ins> }, err => { this.notificationService.error(localize('AddToWorkspaceRecommendations.failure', 'Failed to write. {0}', err)); });


/** * Create a regular file. * <del> * @param uri Uri of the new file.. </del> <ins> * @param uri Uri of the new file. </ins> * @param options Defines if an existing file should be overwritten or be <del> * ignored. When overwrite and ignoreIfExists are both set overwrite wins. </del> <ins> * ignored. When `overwrite` and `ignoreIfExists` are both set `overwrite` wins. </ins> * When both are unset and when the file already exists then the edit cannot <del> * be applied successfully. </del> <ins> * be applied successfully. The `content`-property allows to set the initial contents * the file is being created with. </ins> * @param metadata Optional metadata for the entry. */ <del> createFile(uri: Uri, options?: { overwrite?: boolean; ignoreIfExists?: boolean }, metadata?: WorkspaceEditEntryMetadata): void; </del> <ins> createFile(uri: Uri, options?: { overwrite?: boolean; ignoreIfExists?: boolean; contents?: Uint8Array }, metadata?: WorkspaceEditEntryMetadata): void; </ins> /** * Delete a file or folder.


.focused.conflict-zone .conflict-zone-root { <del> border: 1px dashed var(--vscode-mergeEditor-conflict-unhandledFocused-border); </del> <ins> border: 1px solid var(--vscode-mergeEditor-conflict-unhandledFocused-border); </ins> }


async participate(workingCopy: IStoredFileWorkingCopy<IStoredFileWorkingCopyModel>, context: { reason: SaveReason }, progress: IProgress<IProgressStep>, _token: CancellationToken): Promise<void> { if (this.configurationService.getValue<boolean>('files.trimFinalNewlines')) { <del> this.doTrimFinalNewLines(workingCopy, context.reason === SaveReason.AUTO, progress); </del> <ins> await this.doTrimFinalNewLines(workingCopy, context.reason === SaveReason.AUTO, progress); </ins> } }


const chatContentHeight = this.widget.contentHeight; const editorHeight = this.editor.getLayoutInfo().height; <del> const contentHeight = Math.min(chatContentHeight, editorHeight * 0.42); </del> <ins> const contentHeight = Math.min(chatContentHeight, Math.max(this.widget.minHeight, editorHeight * 0.42)); </ins> const heightInLines = contentHeight / this.editor.getOption(EditorOption.lineHeight); <del> // console.log('ZONE#_computeHeightInLines', { chatContentHeight, editorHeight, contentHeight, heightInLines }); </del> return heightInLines; }


if (lineHeight === 0) { lineHeight = Math.round(GOLDEN_LINE_HEIGHT_RATIO * fontSize); } <ins> let editorZoomLevelMultiplier = 1 + (browser.getEditorZoomLevel() * 0.1); fontSize *= editorZoomLevelMultiplier; lineHeight *= editorZoomLevelMultiplier; </ins> return InternalEditorOptionsHelper.createInternalEditorOptions( this.getOuterWidth(),


proxy-from-env "^1.1.0" yauzl "^2.9.2" <del> "@vscode/spdlog@^0.13.12": version "0.13.12" resolved "https://registry.yarnpkg.com/@vscode/spdlog/-/spdlog-0.13.12.tgz#8b8e3308468fd7d613c350ecd7fcfaa27064960a" integrity sha512-8Qw8VwBzFkH6AWVKh+ULeVDff0lwTh/PkEKUOwRpyuu7Mr7W2zQoc+oAaGmTWKb1NPmvVeXmo+qF9X+jXuBCOg== </del> <ins> "@vscode/spdlog@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@vscode/spdlog/-/spdlog-0.14.0.tgz#3cdf589ca59b9ce792ef58b5f773e29a732a360f" integrity sha512-mpblZa3v6AGEJC1qTwIkpgTc6NItdiiuTxufGxr6XD14srXCvVAUXFIYNqszxC6RY57qDQMX1d9Wd4/oZDxuUQ== </ins> dependencies: bindings "^1.5.0" mkdirp "^1.0.4"


resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.4.0-beta.3.tgz#f350184155fafd5ad0d6fbf31d13e6ca7dea1efa" integrity sha512-FryZAVwbUjKTmwXnm1trch/2XO60F5JsDvOkZhzobV1hm10sFLVuZpFyHXiUx7TFeeFsvNP+S77LAtWoeT5z+Q== <del> xterm-addon-webgl@0.12.0-beta.28: version "0.12.0-beta.28" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.28.tgz#252f88fd15816c23789659a0e2545682cf1eec9c" integrity sha512-xpqZRYlyv+aNdDl46W2Hi2fxakNvdJDmWhOwGHPjOmex+kOYdBvVn4rRZmJ7xrKFuQVOfzb3SQCmpZ/njCpBJA== </del> <ins> xterm-addon-webgl@0.12.0-beta.29: version "0.12.0-beta.29" resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.29.tgz#7a508595c4521d14d7ed4315a121f9e3f230a0f0" integrity sha512-NcZBsD0ar3ZpQX070hDIsyEBl/StRMNu6U+9crNpiD2rQVfkM1vcWkOv31Zlj3eu6/f8z5aStyZLRMCGFwiRbA== </ins> <del> xterm-headless@4.19.0-beta.24: version "4.19.0-beta.24" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.19.0-beta.24.tgz#17dab68ae1b2600b0926d4c47032599f3b2f24cc" integrity sha512-Coq8gQ9f5/kNr1yhpXTZqatTOHOYDF4XVp93SM12vRROH64bM0rUMec6ukuTAd8DD97UOWYUgR+n7+xD0iTTSg== </del> <ins> xterm-headless@4.19.0-beta.25: version "4.19.0-beta.25" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.19.0-beta.25.tgz#a0a1b59f386c44458f06b8ced64e3567371cc983" integrity sha512-UswSgymk3g9i6XTpFAasnqqIvWhi+AEWT+iO3kkjII6ll+dYEQgeZAv92EnCmeRHp11u5TP+IBAo8jy+aTYbtA== </ins> <del> xterm@4.19.0-beta.24: version "4.19.0-beta.24" resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0-beta.24.tgz#12b62877d4cf133f4626db3a15f6ed267b3bbcb5" integrity sha512-GydvC2ExdsfjkiXhUVuZtDhc89IZfyMLFgw/nwWHrvkyq4iCVsHbMloEObV3lZmv+0oRpcGtTiorfzdWGiHG0A== </del> <ins> xterm@4.19.0-beta.25: version "4.19.0-beta.25" resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0-beta.25.tgz#38f92d0fef1cfdb290ef8994449a04fa1a8c90a7" integrity sha512-pDiMWKN1Cj4+X/K9Xegp0SA0ZDEGVqiq7RPSy8oZO2wo2rze1BF20PAZb3/RSp30eY5WyOKilKnck4yNOsPzHw== </ins> yallist@^4.0.0: version "4.0.0"


}); this._register('vscode.diff', (left: URI, right: URI, label: string, options?: vscode.TextDocumentShowOptions) => { <del> let editorOptions: IEditorOptions; </del> <ins> let editorOptions: ITextEditorOptions; </ins> if (options) { editorOptions = { pinned: typeof options.preview === 'boolean' ? !options.preview : undefined, <del> preserveFocus: options.preserveFocus </del> <ins> preserveFocus: options.preserveFocus, selection: typeof options.selection === 'object' ? typeConverters.fromRange(options.selection) : undefined </ins> }; }


readonly type: string; readonly entrypoint: URI; readonly extensionLocation: URI; <ins> readonly localResourceRoots: readonly URI[]; </ins> constructor(descriptor: { readonly type: string; readonly entrypoint: string; <ins> readonly localResourceRoots: readonly string[]; </ins> readonly extension: IExtensionDescription; }) { this.type = descriptor.type; this.entrypoint = joinPath(descriptor.extension.extensionLocation, descriptor.entrypoint); this.extensionLocation = descriptor.extension.extensionLocation; <ins> this.localResourceRoots = descriptor.localResourceRoots.map(root => joinPath(descriptor.extension.extensionLocation, root)); </ins> } }


const category = nls.localize('preferences', "Preferences"); const registry = Registry.as<IWorkbenchActionRegistry>(Extensions.WorkbenchActions); registry.registerWorkbenchAction(new SyncActionDescriptor(OpenRawDefaultSettingsAction, OpenRawDefaultSettingsAction.ID, OpenRawDefaultSettingsAction.LABEL), 'Preferences: Open Raw Default Settings', category); <ins> registry.registerWorkbenchAction(new SyncActionDescriptor(OpenRawUserSettingsAction, OpenRawUserSettingsAction.ID, OpenRawUserSettingsAction.LABEL), 'Preferences: Open Raw User Settings', category); </ins> registry.registerWorkbenchAction(new SyncActionDescriptor(OpenSettingsAction, OpenSettingsAction.ID, OpenSettingsAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.US_COMMA }), 'Preferences: Open Settings', category); registry.registerWorkbenchAction(new SyncActionDescriptor(OpenSettings2Action, OpenSettings2Action.ID, OpenSettings2Action.LABEL), 'Preferences: Open Settings (Experimental)', category); registry.registerWorkbenchAction(new SyncActionDescriptor(OpenGlobalSettingsAction, OpenGlobalSettingsAction.ID, OpenGlobalSettingsAction.LABEL), 'Preferences: Open User Settings', category);


disturl="https://electronjs.org/headers" <del> target="30.5.0" ms_build_id="10198947" </del> <ins> target="30.5.1" ms_build_id="10262041" </ins> runtime="electron" build_from_source="true" legacy-peer-deps="true"


transform: rotate(-90deg); } <del> .monaco-workbench .part > .title > .title-actions .switch-terminal  { </del> <ins> .monaco-workbench .part.sidebar > .title > .title-actions .switch-terminal, .monaco-pane-view .pane > .pane-header .monaco-action-bar .switch-terminal { border-width: 1px; border-style: solid; } .part.panel > .title > .title-actions .switch-terminal > .monaco-select-box { border-width: 1px; border-style: solid; } .monaco-workbench .part.sidebar > .title > .title-actions .switch-terminal  { </ins> display: flex; align-items: center; font-size: 11px;


}], viewContainer); Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench) <ins> .registerWorkbenchContribution(SCMActiveResourceContextKeyController, LifecyclePhase.Restored); Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench) </ins> .registerWorkbenchContribution(SCMStatusController, LifecyclePhase.Restored); Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).registerConfiguration({


"cssnano": "^6.0.3", "debounce": "^1.0.0", "deemon": "^1.8.0", <del> "electron": "30.5.0", </del> <ins> "electron": "30.5.1", </ins> "eslint": "8.36.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jsdoc": "^46.5.0",


if (this.profileContentHandlers.size === 1) { return this.profileContentHandlers.values().next().value; } <del> const linkHandlers: { id: string; label: string }[] = []; const fileHandlers: { id: string; label: string }[] = []; for (const [id, profileContentHandler] of this.profileContentHandlers) { if (profileContentHandler.extensionId) { linkHandlers.push({ id, label: profileContentHandler.name }); } else { fileHandlers.push({ id, label: profileContentHandler.name }); } } </del> const options: QuickPickItem[] = []; <del> if (linkHandlers.length) { options.push({ label: localize('link', "link"), type: 'separator' }); options.push(...linkHandlers); } if (fileHandlers.length) { options.push({ label: localize('file', "file"), type: 'separator' }); options.push(...fileHandlers); </del> <ins> for (const [id, profileContentHandler] of this.profileContentHandlers) { options.push({ id, label: profileContentHandler.name, description: profileContentHandler.description }); </ins> } <del> const result = await this.quickInputService.pick(options, </del> <ins> const result = await this.quickInputService.pick(options.reverse(), </ins> { title: localize('select profile content handler', "Export '{0}' profile as...", name), hideInput: true


if (!document.equalLines(lines)) { return this._proxy.$onVirtualDocumentChange(uri, value); } <ins> }) .catch(onUnexpectedError) .finally(() => { if (lastEvent === thisEvent) { lastEvent = undefined; } }); </ins> <del> }, onUnexpectedError); } </del> <ins> lastEvent = thisEvent; </ins> }); } return new Disposable(() => {


{ <del> "configuration.validate.enable": "Whether php validation is enabled or not.", "configuration.validate.executablePath": "Points to the php executable.", </del> <ins> "configuration.builtInCompletions.enable": "Enable/disable built-in PHP completions.", "configuration.validate.enable": "Enable/disable built-in PHP validation.", "configuration.validate.executablePath": "Points to the PHP executable.", </ins> "configuration.validate.run": "Whether the linter is run on save or on type.", "configuration.title": "PHP" }  No newline at end of file


const line = getVisibleLine(event.textEditor); if (typeof line === 'number') { this.updateLine(event.textEditor.document.uri, line); <del> this.setPreviousEditorLine({ uri: event.textEditor.document.uri, line: line }); </del> <ins> this.setPreviousTextEditorLine({ uri: event.textEditor.document.uri, line: line }); </ins> } } }));


static id: 'editor.action.accessibleViewNext'; constructor() { super({ <del> id: AccessibleViewNextAction.id, </del> <ins> id: 'editor.action.accessibleViewNext', </ins> precondition: accessibleViewIsShown, keybinding: { primary: KeyMod.Alt | KeyCode.BracketRight,


} this._accessibleBuffer.tabIndex = -1; this._accessibleBuffer.classList.add('active'); <del> this._xtermElement.classList.add('hide'); </del> if (this._lastContentLength !== fragment.length || this._refreshSelection) { let lineNumber = 1; const lineCount = model?.getLineCount();


null, this._contextViewService, { <ins> // width:FIND_INPUT_AREA_WIDTH, </ins> label: NLS_FIND_INPUT_LABEL, placeholder: NLS_FIND_INPUT_", validation: (value: string): InputBoxMessage | null => {


env: GITHUB_TOKEN: "$(github-distro-mixin-password)" displayName: Build server <del> condition: and(succeeded(), ne(variables['VSCODE_ARCH'], 'arm64')) </del> - powershell: | . build/azure-pipelines/win32/exec.ps1


menuId: this._options?.contextMenu, menuActionOptions: { renderShortTitle: true, ...this._options?.menuOptions }, contextKeyService: this._contextKeyService, <del> onHide: () => this.getElement().classList.toggle('config', false), </del> }); })); }


if (!node.hasChildren) { childrenPromise = Promise.resolve(Iterable.empty()); } else { <del> const slowTimeout = timeout(800); </del> <ins> const children = this.doGetChildren(node); if (isIterable(children)) { childrenPromise = Promise.resolve(children); } else { const slowTimeout = timeout(800); </ins> <del> slowTimeout.then(() => { node.slow = true; this._onDidChangeNodeSlowState.fire(node); }, _ => null); </del> <ins> slowTimeout.then(() => { node.slow = true; this._onDidChangeNodeSlowState.fire(node); }, _ => null); </ins> <del> childrenPromise = this.doGetChildren(node) .finally(() => slowTimeout.cancel()); </del> <ins> childrenPromise = children.finally(() => slowTimeout.cancel()); } </ins> } try {


} } <del> const tocHiddenDuringSearch = this.configurationService.getValue('workbench.settings.settingsSearchTocBehavior') === 'hide'; if (!tocHiddenDuringSearch) { // Sort the settings according to internal order if indexed. if (this.settingsOrderByTocIndex) { filterMatches.sort((a, b) => compareTwoNullableNumbers(a.setting.internalOrder, b.setting.internalOrder)); } return filterMatches; </del> <ins> // The search only has filters, so we can sort by the order in the TOC. if (!this._viewState.query) { return filterMatches.sort((a, b) => compareTwoNullableNumbers(a.setting.internalOrder, b.setting.internalOrder)); </ins> } <del> // The table of contents is hidden during the search. // The settings could appear in a more haphazard order. // Sort the settings according to their score. </del> <ins> // Sort the settings according to their relevancy. // https://github.com/microsoft/vscode/issues/197773 </ins> filterMatches.sort((a, b) => { if (a.matchType !== b.matchType) { // Sort by match type if the match types are not the same.


*/ .vscode-light .hljs-function, <del> .vscode-light .hljs-params { </del> <ins> .vscode-light .hljs-params, .vscode-light .hljs-number, .vscode-light .hljs-class  { </ins> color: inherit; }


if [ -n "$RPROMPT" ]; then RPROMPT="$__vsc_prior_rprompt" fi <ins> __vsc_initialized="1" </ins> __vsc_in_command_execution="1" __vsc_command_output_start }


import * as assert from 'assert'; import { join } from 'path'; <del> import { commands, workspace, window, Uri, ViewColumn } from 'vscode'; </del> <ins> import { commands, workspace, window, Uri, ViewColumn, Range, Position } from 'vscode'; </ins> suite('commands namespace tests', () => {


return candidate; } <del> if (element === document.body) { </del> <ins> if (element === this.scrollableElement.getDomNode() || element === document.body) { </ins> return null; } } while (element = element.parentElement);


} }, "node_modules/@xterm/addon-clipboard": { <del> "version": "0.2.0-beta.39", "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.39.tgz", "integrity": "sha512-PeJZP69FHg2p1NJKLGyqUITahvEexqwYoQAgYheu4d9UBhIdP6D/KWGT8DVAEPeeulXhcr2UXgYWMVQAooTvrw==", </del> <ins> "version": "0.2.0-beta.47", "resolved": "https://registry.npmjs.org/@xterm/addon-clipboard/-/addon-clipboard-0.2.0-beta.47.tgz", "integrity": "sha512-mJHV1770gwVckj4mgjdxegt4zLL5WGCoJblTqaLbgEF7xOwsJUzvGk38qsZ4ZpdTa2ti76H0pkb1CpZGrXL9qg==", </ins> "dependencies": { "js-base64": "^3.7.5" }, "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/addon-image": { <del> "version": "0.9.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.56.tgz", "integrity": "sha512-kwE4ZDlPxXsBk4mnQoqMvSwu9aKQclniIybs90t0L2qGPLcI8/7Akm1i9aXbu8eZF2hoLEPfLC3CZPda+4ioOA==", </del> <ins> "version": "0.9.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/addon-image/-/addon-image-0.9.0-beta.64.tgz", "integrity": "sha512-1Aqqytx/z/Khecf5xrO++f/p5EQX4uG87TbbAmE0OQys/JgKMnNggDzqon5bpHboimLfQiFPw716NbTqMphjfw==", </ins> "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/addon-search": { <del> "version": "0.16.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.56.tgz", "integrity": "sha512-f8aoldPGssse1UR2N3f94fRUc7K3eulb+F80MFhim4rP+shX3QO9QdEZtwr+JaPEujjnuBM5tQKQDuRQtbwuMQ==", </del> <ins> "version": "0.16.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/addon-search/-/addon-search-0.16.0-beta.64.tgz", "integrity": "sha512-vUsvTkEOFJwv8nVtiiGr/vTMeQhu62VkUejY2h1+yZagnVEusGVPU1JYoqBTLu5HM4cFiTGsJYXFI/0apASXYA==", </ins> "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/addon-serialize": { <del> "version": "0.14.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.56.tgz", "integrity": "sha512-VGAYJXFfXuY1Ze8CliT28DoYI74s8fdTI9919C0sgWwtzfAa7W43jJ56g0oKVEM0wO20wfdESapwpQ7enMzrHQ==", </del> <ins> "version": "0.14.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/addon-serialize/-/addon-serialize-0.14.0-beta.64.tgz", "integrity": "sha512-0AqVveTV3Pr9Lp+beJYOP5WuRvIrPSDGAK24da7BRGcLIKVq8pok1FdlM9jPeUbkX0DKo6Ortm77qeb2Z+n8+A==", </ins> "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/addon-unicode11": { <del> "version": "0.9.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.56.tgz", "integrity": "sha512-oWa8xLWMDKgJboqOT57PaNAWYz+2INW5aUc24E0Nzv+gKXVy+8lRoqy50m3DhsOb1YtDaPVloqvambKBaXSing==", </del> <ins> "version": "0.9.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/addon-unicode11/-/addon-unicode11-0.9.0-beta.64.tgz", "integrity": "sha512-3+PKu+DXFq32xlsYfnI058/T8dTY2tQhRpJLP2CNR/jVWk5uBkVO0dBV0Srqj5QOAlAhzzZuS6TbsVRXORptqw==", </ins> "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/addon-webgl": { <del> "version": "0.19.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.56.tgz", "integrity": "sha512-aYNRENPJBb1uoV7QifEwCnbjCXmQD5yQmuxNJab3bOZ68aCSGC/EKc4/4Ov0klkXi8ceF4ZnbNiqAX3jw5L1jg==", </del> <ins> "version": "0.19.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/addon-webgl/-/addon-webgl-0.19.0-beta.64.tgz", "integrity": "sha512-cxTkMPAXPQAZnWqahNu7ff9mbJvM1sQqKnZWiFZAHTsZXym4oa3KCB4pjH4didSyYkhkPY/17E8I0UOUpvv0Yw==", </ins> "peerDependencies": { <del> "@xterm/xterm": "^5.6.0-beta.56" </del> <ins> "@xterm/xterm": "^5.6.0-beta.64" </ins> } }, "node_modules/@xterm/xterm": { <del> "version": "5.6.0-beta.56", "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.56.tgz", "integrity": "sha512-gtLrCQNkF1LikB21Bj9JYiBrrXMMvPEZkOIiA7MlXoSd7T7v+GYPumrODB2SBuhPdZ8N66z2rbUOfSRzxGwMtA==" </del> <ins> "version": "5.6.0-beta.64", "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.6.0-beta.64.tgz", "integrity": "sha512-iSKS6tQTFpoN5y487eptlxkUT0jqK5hrvtFQMLugMcQdn7gCUCiFGa4Z1RdqKYSGvAypka+b9gMKPrKWZ7Q3yQ==" </ins> }, "node_modules/js-base64": { "version": "3.7.7",


this.emit('change'); } <ins> private static getUpdateChannel(): string { const channel = settings.manager.getValue('update.channel') || 'default'; return channel === 'none' ? null : env.quality; } </ins> private static getUpdateFeedUrl(channel: string): string { <ins> if (!channel) { return null; } </ins> if (platform.isLinux) { return null; }


})); this.prevBtn = this._register(new SimpleButton({ <del> label: NLS_PREVIOUS_MATCH_BTN_LABEL, </del> <ins> label: NLS_PREVIOUS_MATCH_BTN_LABEL + (options.previousMatchActionId ? this._getKeybinding(options.previousMatchActionId) : ''), </ins> icon: findPreviousMatchIcon, onTrigger: () => { this.find(true);


const previousSelectedRoot = this.storageService.get(DEBUG_SELECTED_ROOT, StorageScope.WORKSPACE); const previousSelectedLaunch = this.launches.find(l => l.uri.toString() === previousSelectedRoot); this.debugConfigurationTypeContext = CONTEXT_DEBUG_CONFIGURATION_TYPE.bindTo(contextKeyService); <del> const storedConfig = this.storageService.get(DEBUG_SELECTED_CONFIG, StorageScope.WORKSPACE); const selectedConfig = typeof storedConfig === 'string' ? JSON.parse(storedConfig) : undefined; </del> if (previousSelectedLaunch && previousSelectedLaunch.getConfigurationNames().length) { <del> this.selectConfiguration(previousSelectedLaunch, this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE), selectedConfig); </del> <ins> this.selectConfiguration(previousSelectedLaunch, this.storageService.get(DEBUG_SELECTED_CONFIG_NAME_KEY, StorageScope.WORKSPACE)); </ins> } else if (this.launches.length > 0) { <del> this.selectConfiguration(undefined, selectedConfig ? selectedConfig.name : undefined, selectedConfig); </del> <ins> this.selectConfiguration(undefined); </ins> } }


setTimeout(() => { dom.addClass(this._innerDomNode, 'visible'); <ins> dom.addClass(this._innerDomNode, 'visible-transition'); </ins> this._innerDomNode.setAttribute('aria-hidden', 'false'); }, 0); } public hide(): void { if (this._isVisible) { <del> this._isVisible = false; dom.removeClass(this._innerDomNode, 'visible'); </del> <ins> dom.removeClass(this._innerDomNode, 'visible-transition'); </ins> this._innerDomNode.setAttribute('aria-hidden', 'true'); <ins> // Need to delay toggling visibility until after Transition, then visibility hidden - removes from tabIndex list setTimeout(() => { this._isVisible = false; dom.removeClass(this._innerDomNode, 'visible'); }, 200); </ins> } }


}); test('Snippets show in inline suggestions even though they are turned off #175190', async function () { <del> const completions: SuggestInlineCompletions = insta.createInstance(SuggestInlineCompletions); </del> <ins> const completions: SuggestInlineCompletions = disposables.add(insta.createInstance(SuggestInlineCompletions)); </ins> { // unfiltered


resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== <del> "@vscode/gulp-electron@^1.35.0": version "1.35.0" resolved "https://registry.yarnpkg.com/@vscode/gulp-electron/-/gulp-electron-1.35.0.tgz#b66aa307b1edefb0b37988faf29b82ab9974c466" integrity sha512-FjRdAlfJBflFs28RYBaJ3gK/LHFZ4T34nP/FnKZrwNjWq5ojDC9WiwOMDHaG7wP7AKBcxh267Gz2epghMeO1ng== </del> <ins> "@vscode/gulp-electron@^1.36.0": version "1.36.0" resolved "https://registry.yarnpkg.com/@vscode/gulp-electron/-/gulp-electron-1.36.0.tgz#b2895c4bafaa0cf2b13042aa654e9fdd1f3a90cd" integrity sha512-zGNnxN2mccAa0fgyjUn0+HUX4sv4syUfoLQru3/QAQYki1oeqnkPpCXZxhismFmWpXwTwsf5sXeh1AOs8uyU0g== </ins> dependencies: "@electron/get" "^2.0.2" "@octokit/rest" "^18.0.14"


} } <ins> export class FocusActiveGroupAction extends Action { public static ID = 'workbench.action.focusActiveEditorGroup'; public static LABEL = nls.localize('focusActiveEditorGroup', "Focus Active Editor Group"); constructor( id: string, label: string, @IWorkbenchEditorService private editorService: IWorkbenchEditorService ) { super(id, label); } public run(): TPromise<any> { const activeEditor = this.editorService.getActiveEditor(); if (activeEditor) { activeEditor.focus(); } return TPromise.as(true); } } </ins> export class FocusFirstGroupAction extends Action { public static ID = 'workbench.action.focusFirstEditorGroup';


dom.append(container, this._domNode); this._pickedColorNode = dom.append(this._domNode, $('.picked-color')); <ins> dom.append(this._pickedColorNode, $('span.codicon.codicon-color-mode')); this._pickedColorPresentation = dom.append(this._pickedColorNode, document.createElement('span')); this._pickedColorPresentation.classList.add('picked-color-presentation'); </ins> const tooltip = localize('clickToToggleColorOptions', "Click to toggle color options (rgb/hsl/hex)"); this._pickedColorNode.setAttribute('title', tooltip);


} active(): void { <del> this.elements.main.classList.add('recording'); </del> <ins> this.domNode.classList.add('recording'); </ins> } hide() { <del> this.elements.main.classList.remove('recording'); </del> <ins> this.domNode.classList.remove('recording'); </ins> this.editor.removeContentWidget(this); } }


'editor.snippetSuggestions', 'editor.selectionHighlight', 'editor.glyphMargin', <del> 'php.validate.run', </del> 'editor.wordSeparators', 'editor.mouseWheelScrollSensitivity', 'editor.suggestOnTriggerCharacters',


export interface IUserDataProfileContentHandler { readonly name: string; <ins> readonly description?: string; </ins> readonly extensionId?: string; saveProfile(name: string, content: string, token: CancellationToken): Promise<ISaveProfileResult | null>; readProfile(idOrUri: string | URI, token: CancellationToken): Promise<string | null>;


return; } <del> // Disable ourselves if there's also a text entry with the same content as our list, </del> <ins> // In some browsers, copying from the address bar sets both text/uri-list and text/plain. // Disable ourselves if there's also a text entry with the same http(s) uri as our list, </ins> // unless we are explicitly requested. <del> if (uriList.entries.length === 1 && !context?.only?.contains(ResourcePasteOrDropProvider.kind)) { </del> <ins> if ( uriList.entries.length === 1 && (uriList.entries[0].uri.scheme === Schemes.http || uriList.entries[0].uri.scheme === Schemes.https) && !context?.only?.contains(ResourcePasteOrDropProvider.kind) ) { </ins> const text = await dataTransfer.get(Mime.textPlain)?.asString(); if (token.isCancellationRequested) { return;


const snippets: Promise<IReference<ITextEditorModel>>[] = []; let i = 0; <del> const renderer = new marked.Renderer(); renderer.code = ({ lang }: Tokens.Code) => { </del> <ins> const renderer = new marked.marked.Renderer(); renderer.code = ({ lang }: marked.Tokens.Code) => { </ins> i++; const resource = this.options.resource.with({ scheme: Schemas.walkThroughSnippet, fragment: `${i}.${lang}` }); snippets.push(this.textModelResolverService.createModelReference(resource)); return `<div id="snippet-${resource.fragment}" class="walkThroughEditorContainer" ></div>`; }; <del> content = marked(content, { async: false, renderer }); </del> <ins> const m = new marked.Marked({ renderer }, markedGfmHeadingIdPlugin()); content = m.parse(content, { async: false }); </ins> return Promise.all(snippets) .then(refs => new WalkThroughModel(content, refs)); });


try { const userDataProfilesExportState = disposables.add(this.instantiationService.createInstance(UserDataProfileExportState, this.userDataProfileService.currentProfile)); const barrier = new Barrier(); <del> const exportAction = new BarrierAction(barrier, new Action('export', localize('export', "Export"), undefined, true, () => { </del> <ins> const exportAction = new BarrierAction(barrier, new Action('export', localize('export', "Export"), undefined, true, async () => { </ins> exportAction.enabled = false; <del> return this.doExportProfile(userDataProfilesExportState); })); const closeAction = new BarrierAction(barrier, new Action('close', localize('close', "Close"))); </del> <ins> try { await this.doExportProfile(userDataProfilesExportState); } catch (error) { this.notificationService.error(error); throw error; } }), this.notificationService); const closeAction = new BarrierAction(barrier, new Action('close', localize('close', "Close")), this.notificationService); </ins> await this.showProfilePreviewView(EXPORT_PROFILE_PREVIEW_VIEW, userDataProfilesExportState.profile.name, exportAction, closeAction, true, userDataProfilesExportState); disposables.add(this.userDataProfileService.onDidChangeCurrentProfile(e => barrier.open())); await barrier.wait();


} })); <ins> this._configureForScreenReader(); this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(() => this._configureForScreenReader())); this._register(this._configurationService.onDidChangeConfiguration((e) => { if (e.affectedKeys.has(AccessibilityVerbositySettingId.Chat)) { this._configureForScreenReader(); } })); </ins> const editorElement = dom.append(this.element, $('.interactive-result-editor')); this.editor = this._register(scopedInstantiationService.createInstance(CodeEditorWidget, editorElement, { ...getSimpleEditorOptions(),


newValue = 'overviewRuler'; } await this._configurationService.updateValue(TerminalSettingId.ShellIntegrationDecorationsEnabled, newValue); <del> }); </del> <ins> })); </ins> quickPick.ok = false; quickPick.show(); }


return; } <del> // This can happen when focus is in the details-panel and when // arrow keys are pressed to select next/prev items this._setState(State.Open); </del> <ins> if (this._state === State.Details) { // This can happen when focus is in the details-panel and when // arrow keys are pressed to select next/prev items this._setState(State.Open); } </ins> if (!e.elements.length) { if (this._currentSuggestionDetails) {


} public static collectResultsFromEvent(event: Event<ISerializedSearchProgressItem | ISerializedSearchComplete>): PPromise<ISearchComplete, ISearchProgressItem> { <ins> let listener: IDisposable; </ins> const promise = new PPromise<ISerializedSearchSuccess, ISerializedSearchProgressItem>((c, e, p) => { setTimeout(() => { <del> const listener = event(ev => { </del> <ins> listener = event(ev => { </ins> if (isSerializedSearchComplete(ev)) { if (isSerializedSearchSuccess(ev)) { c(ev);


export const conflictBorderUnhandledUnfocused = registerColor( 'mergeEditor.conflict.unhandledUnfocused.border', <del> { dark: '#ffa6007a', light: '#ffa6007a', hcDark: '#ffa6007a', hcLight: '#ffa6007a', }, </del> <ins> { dark: '#ffa6007a', light: '#ffa600FF', hcDark: '#ffa6007a', hcLight: '#ffa6007a', }, </ins> localize('mergeEditor.conflict.unhandledUnfocused.border', 'The border color of unhandled unfocused conflicts.') );


this.proxy = context.getProxy(ExtHostContext.ExtHostProfileContentHandlers); } <del> async $registerProfileContentHandler(id: string, name: string, extensionId: string): Promise<void> { </del> <ins> async $registerProfileContentHandler(id: string, name: string, description: string | undefined, extensionId: string): Promise<void> { </ins> this.registeredHandlers.set(id, this.userDataProfileImportExportService.registerProfileContentHandler(id, { name, <ins> description, </ins> extensionId, saveProfile: async (name: string, content: string, token: CancellationToken) => { const result = await this.proxy.$saveProfile(id, name, content, token);


registry.registerWorkbenchAction(new SyncActionDescriptor(CloseEditorsInOtherGroupsAction, CloseEditorsInOtherGroupsAction.ID, CloseEditorsInOtherGroupsAction.LABEL), 'View: Close Editors in Other Groups', category); registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorAction, SplitEditorAction.ID, SplitEditorAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.US_BACKSLASH }), 'View: Split Editor', category); registry.registerWorkbenchAction(new SyncActionDescriptor(NavigateBetweenGroupsAction, NavigateBetweenGroupsAction.ID, NavigateBetweenGroupsAction.LABEL), 'View: Navigate Between Editor Groups', category); <ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusActiveGroupAction, FocusActiveGroupAction.ID, FocusActiveGroupAction.LABEL), 'View: Focus Active Editor Group', category); </ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusFirstGroupAction, FocusFirstGroupAction.ID, FocusFirstGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_1 }), 'View: Focus Left Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusSecondGroupAction, FocusSecondGroupAction.ID, FocusSecondGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_2 }), 'View: Focus Center Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusThirdGroupAction, FocusThirdGroupAction.ID, FocusThirdGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_3 }), 'View: Focus Right Editor Group', category);


<del> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.784 8L13 11.217 11.215 13 8.001 9.786 4.785 13 3 11.216l3.214-3.215L3 4.785 4.784 3 8 6.216 11.216 3 13 4.785 9.784 8.001z" fill="#424242"/></svg> </del>  No newline at end of file <ins> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.428 8L12 10.573 10.572 12 8 9.428 5.428 12 4 10.573 6.572 8 4 5.428 5.427 4 8 6.572 10.573 4 12 5.428 9.428 8z" fill="#424242"/></svg> </ins>  No newline at end of file


type, extension: extension.description, entrypoint: notebookContribution.entrypoint, <ins> localResourceRoots: notebookContribution.localResourceRoots ?? [], </ins> })); } }


"background": "#DDFFDD", "foreground": "#434343" } <del> } </del> <ins> }, { "name": "JSX: Tags", "scope": [ "punctuation.definition.tag.js", "punctuation.definition.tag.begin.js", "punctuation.definition.tag.end.js" ], "settings": { "foreground": "#91B3E0" } }, { "name": "JSX: InnerText", "scope": "meta.jsx.children.js", "settings": { "foreground": "#333333ff" } } </ins> ], "colors": { "focusBorder": "#A6B39B",


*--------------------------------------------------------------------------------------------*/ import { asArray, coalesce, isNonEmptyArray } from 'vs/base/common/arrays'; <del> import { VSBuffer } from 'vs/base/common/buffer'; </del> <ins> import { encodeBase64, VSBuffer } from 'vs/base/common/buffer'; </ins> import * as htmlContent from 'vs/base/common/htmlContent'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { ResourceSet } from 'vs/base/common/map';


private setViewState(state: IViewState): void { this.viewState = state; this.stylesheet.textContent = ` <del> .monaco-editor .dirty-diff-modified,.monaco-editor .dirty-diff-added{border-left-width:${state.width}px;} </del> <ins> .monaco-editor .dirty-diff-modified { background-size: ${state.width}px 4.5px; } .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added{border-left-width:${state.width}px;} </ins> .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added, .monaco-editor .dirty-diff-deleted { opacity: ${state.visibility === 'always' ? 1 : 0}; }


return; } if (!this._configurationService.getValue(TerminalSettingId.AccessibleViewFocusOnCommandExecution)) { <del> this._onCommandExecutedShowListener.clear(); </del> <ins> this._onDidRunCommand.clear(); </ins> return; <del> } else if (this._onCommandExecutedShowListener.value) { </del> <ins> } else if (this._onDidRunCommand.value) { </ins> return; } const capability = this._instance.capabilities.get(TerminalCapability.CommandDetection)!; <del> this._onCommandExecutedShowListener.value = this._register(capability.onCommandExecuted(() => { </del> <ins> this._onDidRunCommand.value = this._register(capability.onCommandExecuted(() => { </ins> if (this._instance.hasFocus) { this.show(); }


*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import type * as vscode from 'vscode'; import { createCancelablePromise, firstParallel, timeout } from '../../../base/common/async.js'; import { IDisposable } from '../../../base/common/lifecycle.js'; </del> <ins> import * as vscode from 'vscode'; import { createCancelablePromise, disposableTimeout, firstParallel, RunOnceScheduler, timeout } from '../../../base/common/async.js'; import { DisposableStore, IDisposable } from '../../../base/common/lifecycle.js'; </ins> import * as platform from '../../../base/common/platform.js'; import * as nls from '../../../nls.js'; import { IExternalTerminalService } from '../../../platform/externalTerminal/common/externalTerminal.js';


import { DisposableStore, MutableDisposable } from 'vs/base/common/lifecycle'; import { extname, isEqual } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; <ins> import { generateUuid } from 'vs/base/common/uuid'; </ins> import { ITextResourceConfigurationService } from 'vs/editor/common/services/textResourceConfiguration'; import { localize } from 'vs/nls'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';


return super.getActionViewItem(action, options); } <ins> /** * Actions might be of type Action (disposable) or Separator or SubmenuAction, which don't extend Disposable */ private _registerDisposableActions(dropdownAction: IAction, dropdownMenuActions: IAction[]): void { this._disposableStore.clear(); if (dropdownAction instanceof Action) { this._disposableStore.add(dropdownAction); } dropdownMenuActions.filter(a => a instanceof Action).forEach(a => this._disposableStore.add(a)); } </ins> private _getDefaultProfileName(): string { let defaultProfileName; try {


} canNavigate(): boolean { <del> return this.widget?.index === -1 || (!!this.model && this.model.changes.length > 1); </del> <ins> return !this.widget || (this.widget?.index === -1) || (!!this.model && this.model.changes.length > 1); </ins> } refresh(): void {


const target = mouseEvent.target; const stopKey = env.isMacintosh ? 'metaKey' : 'ctrlKey'; <ins> if (!this.altPressed) { if (target.type === MouseTargetType.GUTTER_GLYPH_MARGIN) { this.editor.updateOptions({ hover: { enabled: true } }); this.gutterIsHovered = true; } else if (this.gutterIsHovered) { this.gutterIsHovered = false; this.updateHoverConfiguration(); } } </ins> if (target.type === MouseTargetType.CONTENT_WIDGET && target.detail === DebugHoverWidget.ID && !(<any>mouseEvent.event)[stopKey]) { // mouse moved on top of debug hover widget return; } if (target.type === MouseTargetType.CONTENT_TEXT) { if (target.position && !Position.equals(target.position, this.hoverPosition)) { this.hoverPosition = target.position;


} <del> abstract updateOptions(e: NotebookOptionsChangeEvent): void; </del> <ins> updateOptions(e: NotebookOptionsChangeEvent): void { if (this._textEditor && typeof e.readonly === 'boolean') { this._textEditor.updateOptions({ readOnly: e.readonly }); } if (typeof e.readonly === 'boolean') { this._isReadonly = e.readonly; } } </ins> abstract getHeight(lineHeight: number): number; abstract onDeselect(): void; abstract layoutChange(change: CellLayoutChangeEvent, source?: string): void;


return position; } <del> private static _doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </del> <ins> public static doHitTest(ctx: HitTestContext, request: BareHitTestRequest): HitTestResult { </ins> let result: HitTestResult = new UnknownHitTestResult(); if (typeof (<any>ctx.viewDomNode.ownerDocument).caretRangeFromPoint === 'function') {


showInStatusBar: 'never' | 'always' | 'onFirstSessionStart'; internalConsoleOptions: 'neverOpen' | 'openOnSessionStart' | 'openOnFirstSessionStart'; extensionHostDebugAdapter: boolean; <ins> enableAllHovers: boolean; </ins> } export interface IGlobalConfig {


} if (node.hasAttribute('recentlyScrolled')) { <del> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 300) { </del> <ins> if (lastTimeScrolled && Date.now() - lastTimeScrolled > 400) { </ins> // it has been a while since we actually scrolled <del> // if scroll velocity increases, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 2) { </del> <ins> // if scroll velocity increases significantly, it's likely a new scroll event if (!!previousDelta && deltaY < 0 && deltaY < previousDelta - 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false; <del> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 2) { </del> <ins> } else if (!!previousDelta && deltaY > 0 && deltaY > previousDelta + 8) { </ins> clearTimeout(scrollTimeout); scrolledElement?.removeAttribute('recentlyScrolled'); return false;


group: 'navigation', isHiddenByDefault: true, }, <del> keybinding: { </del> <ins> keybinding: [{ </ins> primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Enter, mac: { primary: KeyMod.WinCtrl | KeyCode.Enter, }, weight: KeybindingWeight.EditorContrib, <del> when: CONTEXT_IN_CHAT_SESSION } </del> <ins> when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate()), }, { primary: KeyMod.CtrlCmd | KeyCode.Slash, mac: { primary: KeyMod.WinCtrl | KeyCode.Slash }, weight: KeybindingWeight.WorkbenchContrib, when: ContextKeyExpr.and(CONTEXT_IN_CHAT_SESSION, CONTEXT_ACCESSIBILITY_MODE_ENABLED), }] </ins> }); }


@IClipboardService private readonly _clipboardService: IClipboardService, @ISuggestMemoryService private readonly _suggestMemoryService: ISuggestMemoryService, @ICodeEditorService private readonly _editorService: ICodeEditorService, <del> ) { } </del> <ins> ) { super(); this._store.add(_languageFeatureService.inlineCompletionsProvider.register('*', this)); } </ins> async provideInlineCompletions(model: ITextModel, position: Position, context: InlineCompletionContext, token: CancellationToken): Promise<InlineCompletionResults | undefined> {


}; function getTarget() { <del> return document.getElementById('_target'); </del> <ins> return document.getElementById('_target');; </ins> }; const ipcRenderer = require('electron').ipcRenderer;


const isServerless = platform.isWeb && !accessor.get(IWorkbenchEnvironmentService).remoteAuthority; return ` ## Interactive Editor Playground <del> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](command:workbench.action.openDocumentationUrl). </del> <ins> The core editor in VS Code is packed with features.  This page highlights a number of them and lets you interactively try them out through the use of a number of embedded editors.  For full details on the editor features for VS Code and more head over to our [documentation](https://code.visualstudio.com/docs). </ins> * [Multi-cursor Editing](#multi-cursor-editing) - block selection, select all occurrences, add additional cursors and more. * [IntelliSense](#intellisense) - get code assistance and parameter suggestions for your code and external modules.


} } <del> private doGetChildren(node: IAsyncDataTreeNode<TInput, T>): Promise<Iterable<T>> { </del> <ins> private doGetChildren(node: IAsyncDataTreeNode<TInput, T>): Promise<Iterable<T>> | Iterable<T> { </ins> let result = this.refreshPromises.get(node); if (result) { return result; } <del> result = createCancelablePromise(async () => { const children = await this.dataSource.getChildren(node.element!); </del> <ins> const children = this.dataSource.getChildren(node.element!); if (isIterable(children)) { </ins> return this.processChildren(children); <del> }); this.refreshPromises.set(node, result); return result.finally(() => { this.refreshPromises.delete(node); }); </del> <ins> } else { result = createCancelablePromise(async () => this.processChildren(await children)); this.refreshPromises.set(node, result); return result.finally(() => { this.refreshPromises.delete(node); }); } </ins> } private _onDidChangeCollapseState({ node, deep }: ICollapseStateChangeEvent<IAsyncDataTreeNode<TInput, T> | null, any>): void {


const originalHeaderOpen = md.renderer.rules.heading_open; md.renderer.rules.heading_open = (tokens: MarkdownItToken[], idx: number, options, env, self) => { const title = tokens[idx + 1].children!.reduce<string>((acc, t) => acc + t.content, ''); <del> let slug = slugFromHeading(title); </del> <ins> let slug = slugify(title); </ins> if (slugCounter.has(slug)) { const count = slugCounter.get(slug)!; slugCounter.set(slug, count + 1); <del> slug = slugFromHeading(slug + '-' + (count + 1)); </del> <ins> slug = slugify(slug + '-' + (count + 1)); </ins> } else { slugCounter.set(slug, 0); }


}; } async function main(arch = process.arch) { <del> const version = product.electronRepository ? '22.4.5' : util.getElectronVersion(); </del> <ins> const version = product.electronRepository ? '22.4.6' : util.getElectronVersion(); </ins> const electronPath = path.join(root, '.build', 'electron'); const versionFile = path.join(electronPath, 'version'); const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;


import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> import { INotificationService } from 'vs/platform/notification/common/notification'; type RunnableCommand = string | { command: string; args: any[] };


"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "typescript": { <del> "version": "2.1.5-insiders.20161229", "from": "typescript@2.1.5-insiders.20161229", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5-insiders.20161229.tgz" </del> <ins> "version": "2.1.5", "from": "typescript@2.1.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.1.5.tgz" </ins> }, "vscode-extension-telemetry": { "version": "0.0.5",


return 99; }; <del> // Assign priority (current > remote > base > color > name) const ref1Priority = getHistoryItemRefPriority(ref1); const ref2Priority = getHistoryItemRefPriority(ref2); </del> <ins> // Assign order (current > remote > base > color) const ref1Order = getHistoryItemRefOrder(ref1); const ref2Order = getHistoryItemRefOrder(ref2); </ins> <del> if (ref1Priority !== ref2Priority) { return ref1Priority - ref2Priority; } else { return ref1.name.localeCompare(ref2.name); } </del> <ins> return ref1Order - ref2Order; </ins> }


import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { IDisposable } from 'vs/base/common/lifecycle'; import { IExtensionIdWithVersion, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; <ins> import { ILogService } from 'vs/platform/log/common/log'; </ins> @extHostNamedCustomer(MainContext.MainThreadStorage) export class MainThreadStorage implements MainThreadStorageShape {


import { MANAGE_TRUST_COMMAND_ID, WorkspaceTrustContext } from 'vs/workbench/contrib/workspace/common/workspace'; import { IQuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiff'; import { QuickDiffService } from 'vs/workbench/contrib/scm/common/quickDiffService'; <del> import { getActiveElement } from 'vs/base/browser/dom'; </del> <ins> import { getActiveElement, isActiveElement } from 'vs/base/browser/dom'; </ins> import { SCMWorkingSetController } from 'vs/workbench/contrib/scm/browser/workingSet'; import { IViewsService } from 'vs/workbench/services/views/common/viewsService'; <ins> import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService'; import { isSCMRepository } from 'vs/workbench/contrib/scm/browser/util'; </ins> ModesRegistry.registerLanguage({ id: 'scminput',


return this.configurationService.getValue<boolean>('notebook.diff.ignoreOutputs') || !!(this.mainDocumentTextModel?.transientOptions.transientOutputs); } <ins> private get ignoreMetadata() { return this.configurationService.getValue<boolean>('notebook.diff.ignoreMetadata'); } </ins> private _sourceEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null; private _outputEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null; private _metadataEditorViewState: editorCommon.ICodeEditorViewState | editorCommon.IDiffEditorViewState | null = null;


state: getIEditor(activeEditorPane.getControl())?.saveViewState() ?? undefined, }; } } /**


private async pickContinueEditSessionDestination(): Promise<URI | undefined> { const quickPick = this.quickInputService.createQuickPick<ContinueEditSessionItem>(); <del> quickPick.title = localize('continueEditSessionPick.title', 'Continue Edit Session...'); </del> <ins> const workspaceContext = this.contextService.getWorkbenchState() === WorkbenchState.FOLDER ? this.contextService.getWorkspace().folders[0].name : this.contextService.getWorkspace().folders.map((folder) => folder.name).join(', '); quickPick.title = localize('continueEditSessionPick.title', "Continue {0} on", `'${workspaceContext}'`); </ins> quickPick.placeholder = localize('continueEditSessionPick.placeholder', 'Choose how you would like to continue working'); quickPick.items = this.createPickItems();


if (compressedNode) { for (let i = 0; i < compressedNode.elements.length; i++) { const id = getId(compressedNode.elements[i].element as T); <ins> const element = compressedNode.elements[compressedNode.elements.length - 1].element as T; </ins> <del> if (oldSelection.has(id)) { selection.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> // github.com/microsoft/vscode/issues/85938 if (oldSelection.has(id) && selection.indexOf(element) === -1) { selection.push(element); </ins> didChangeSelection = true; } <del> if (oldFocus.has(id)) { focus.push(compressedNode.elements[compressedNode.elements.length - 1].element as T); </del> <ins> if (oldFocus.has(id) && focus.indexOf(element) === -1) { focus.push(element); </ins> didChangeFocus = true; } }


const outDir = path.join(outputRoot, 'media'); async function build() { <del> fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), path.join(outDir, 'codicon.css')); fs.copyFileSync( path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.ttf'), path.join(outDir, 'codicon.ttf')); </del> await esbuild.build({ <del> entryPoints: [ path.join(srcDir, 'index.ts') ], </del> <ins> entryPoints: { 'index': path.join(srcDir, 'index.ts'), 'codicon': path.join(__dirname, 'node_modules', 'vscode-codicons', 'dist', 'codicon.css'), }, loader: { '.ttf': 'dataurl', }, </ins> bundle: true, minify: true, sourcemap: false,


IgnoreBracketedPasteMode = 'terminal.integrated.ignoreBracketedPasteMode', FocusAfterRun = 'terminal.integrated.focusAfterRun', AccessibleViewPreserveCursorPosition = 'terminal.integrated.accessibleViewPreserveCursorPosition', <ins> AccessibleViewFocusOnCommandExecution = 'terminal.integrated.accessibleViewFocusOnCommandExecution', </ins> // Debug settings that are hidden from user


} } <del> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest, domHitTestExecuted: boolean): IMouseTarget { </del> <ins> private static _createMouseTarget(ctx: HitTestContext, request: HitTestRequest): IMouseTarget { </ins> // console.log(`${domHitTestExecuted ? '=>' : ''}CAME IN REQUEST: ${request}`); <del> // First ensure the request has a target </del> if (request.target === null) { <del> if (domHitTestExecuted) { // Still no target... and we have already executed hit test... return request.fulfillUnknown(); } const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // No target return request.fulfillUnknown(); </ins> } // we know for a fact that request.target is not null


} private static _getLineDecorations(editor: IActiveCodeEditor, anchor: HoverAnchor): IModelDecoration[] { <del> if (anchor.type !== HoverAnchorType.Range) { </del> <ins> if (anchor.type !== HoverAnchorType.Range && !anchor.supportsMarkerHover) { </ins> return []; }


import { compareIgnoreCase } from 'vs/base/common/strings'; import { IExtensionIdentifier, IGalleryExtension, ILocalExtension, getTargetPlatform } from 'vs/platform/extensionManagement/common/extensionManagement'; <del> import { ExtensionIdentifier, IExtension, TargetPlatform } from 'vs/platform/extensions/common/extensions'; </del> <ins> import { ExtensionIdentifier, IExtension, TargetPlatform, UNDEFINED_PUBLISHER } from 'vs/platform/extensions/common/extensions'; </ins> import { IFileService } from 'vs/platform/files/common/files'; import { isLinux, platform } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri';


import { localize } from 'vs/nls'; import { URI } from 'vs/base/common/uri'; import { IResourceEditorInput, IEditorOptions } from 'vs/platform/editor/common/editor'; <del> import { IEditorPane, IEditorCloseEvent, EditorResourceAccessor, IEditorIdentifier, GroupIdentifier, EditorsOrder, SideBySideEditor, IUntypedEditorInput, isResourceEditorInput, isEditorInput, isSideBySideEditorInput, EditorCloseContext, IEditorPaneSelection, EditorPaneSelectionCompareResult, EditorPaneSelectionChangeReason, isEditorPaneWithSelection, IEditorPaneSelectionChangeEvent, IEditorPaneWithSelection, IEditorWillMoveEvent } from 'vs/workbench/common/editor'; </del> <ins> import { IEditorPane, IEditorCloseEvent, EditorResourceAccessor, IEditorIdentifier, GroupIdentifier, EditorsOrder, SideBySideEditor, IUntypedEditorInput, isResourceEditorInput, isEditorInput, isSideBySideEditorInput, EditorCloseContext, IEditorPaneSelection, EditorPaneSelectionCompareResult, EditorPaneSelectionChangeReason, isEditorPaneWithSelection, IEditorPaneSelectionChangeEvent, IEditorPaneWithSelection, IEditorWillMoveEvent, GroupModelChangeKind } from 'vs/workbench/common/editor'; </ins> import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { GoFilter, GoScope, IHistoryService } from 'vs/workbench/services/history/common/history';


this._terminalTabs = []; this._configHelper = this._instantiationService.createInstance(TerminalConfigHelper); ipc.on('vscode:openFiles', (_event: any, request: IOpenFileRequest) => { // if the request to open files is coming in from the integrated terminal (identified though // the termProgram variable) and we are instructed to wait for editors close, wait for the


import { NotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookProvider'; import { NotebookPerfMarks } from 'vs/workbench/contrib/notebook/common/notebookPerformance'; import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; <ins> import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { localize } from 'vs/nls'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; </ins> export interface NotebookEditorInputOptions { startDirty?: boolean;


} this._textEditor = editor; <ins> if (this._isReadonly) { editor.updateOptions({ readOnly: this._isReadonly }); } </ins> if (this._editorViewStates) { this._restoreViewState(this._editorViewStates); } else {


resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.207.tgz#9c3310ebace2952903d05dcaba8abe3a4ed44c01" integrity sha512-piH7MJDJp4rJCduWbVvmUd59AUne1AFBJ8JaRQvk0KzNTSUnZrVXHCZc+eg+CGE4OujkcLJznhGKD6tuAshj5Q== <del> electron@25.8.1: version "25.8.1" resolved "https://registry.yarnpkg.com/electron/-/electron-25.8.1.tgz#092fab5a833db4d9240d4d6f36218cf7ca954f86" integrity sha512-GtcP1nMrROZfFg0+mhyj1hamrHvukfF6of2B/pcWxmWkd5FVY1NJib0tlhiorFZRzQN5Z+APLPr7aMolt7i2AQ== </del> <ins> electron@25.8.2: version "25.8.2" resolved "https://registry.yarnpkg.com/electron/-/electron-25.8.2.tgz#5e8ea742b68a7d1427bf78902ec40a5b7231a58b" integrity sha512-AM1ra6b16EQuO1bJtiA8ZiWqqFLLgVfxD56ykiy+EA5C63Hkx8OmIbe+5JAsLiTwRVvBZ4oCAj6wa2qT+iq8ww== </ins> dependencies: "@electron/get" "^2.0.0" "@types/node" "^18.11.18"


this.repositoryDisposables.clear(); } } <ins> export class SCMActiveResourceContextKeyController implements IWorkbenchContribution { private contextKey: IContextKey<boolean>; private disposables = new DisposableStore(); private repositoryDisposables = new Set<IDisposable>(); constructor( @IContextKeyService readonly contextKeyService: IContextKeyService, @IEditorService private readonly editorService: IEditorService, @ISCMService private readonly scmService: ISCMService, @IUriIdentityService private readonly uriIdentityService: IUriIdentityService ) { this.contextKey = contextKeyService.createKey('scmActiveResourceHasChanges', false); this.scmService.onDidAddRepository(this.onDidAddRepository, this, this.disposables); for (const repository of this.scmService.repositories) { this.onDidAddRepository(repository); } editorService.onDidActiveEditorChange(this.updateContextKey, this, this.disposables); } private onDidAddRepository(repository: ISCMRepository): void { const onDidChange = Event.any(repository.provider.onDidChange, repository.provider.onDidChangeResources); const changeDisposable = onDidChange(() => this.updateContextKey()); const onDidRemove = Event.filter(this.scmService.onDidRemoveRepository, e => e === repository); const removeDisposable = onDidRemove(() => { disposable.dispose(); this.repositoryDisposables.delete(disposable); this.updateContextKey(); }); const disposable = combinedDisposable(changeDisposable, removeDisposable); this.repositoryDisposables.add(disposable); } private updateContextKey(): void { const activeResource = EditorResourceAccessor.getOriginalUri(this.editorService.activeEditor); if (activeResource && activeResource.scheme === Schemas.file) { for (const repository of this.scmService.repositories) { for (const resourceGroup of repository.provider.groups.elements) { if (resourceGroup.elements.find(scmResource => { return this.uriIdentityService.extUri.isEqual(activeResource, scmResource.sourceUri); })) { this.contextKey.set(true); return; } } } } this.contextKey.set(false); } dispose(): void { this.disposables = dispose(this.disposables); dispose(this.repositoryDisposables.values()); this.repositoryDisposables.clear(); } } </ins>


<del> db3e9eb9f47f465bb63d15de486ea1d9274233b24bbe451038bfbaf48f9b0e39 *electron-v25.8.4-darwin-arm64-symbols.zip 5d83e2094a26bfe22e4c80e660ab088ec94ae3cc2d518c6efcac338f48cc0266 *electron-v25.8.4-darwin-arm64.zip 6fdd506328c65a9d8205425a463098210743c9ef79a546738b91a91d56100447 *electron-v25.8.4-darwin-x64-symbols.zip d4015cd251e58ef074d1f7f3e99bfbbe4cd6b690981f376fc642b2de955e8750 *electron-v25.8.4-darwin-x64.zip b46da627829a84cdf84b5570f95e044d38660fb0e58712757e834ff13b43c72d *electron-v25.8.4-linux-arm64-symbols.zip fbb6e06417b1741b94d59a6de5dcf3262bfb3fc98cffbcad475296c42d1cbe94 *electron-v25.8.4-linux-arm64.zip 2569c260b4bb90894c5e63e175d3ee9665525e928d7c70158c6a9d98cb82f6a9 *electron-v25.8.4-linux-armv7l-symbols.zip 6301e6fde3e7c8149a5eca84c3817ba9ad3ffcb72e79318a355f025d7d3f8408 *electron-v25.8.4-linux-armv7l.zip 63580a081a4481eec2773606e9cd50c3468758741f11a14d6c47ab716c064896 *electron-v25.8.4-linux-x64-symbols.zip 0cbbcaf90f3dc79dedec97d073ffe954530316523479c31b11781a141f8a87f6 *electron-v25.8.4-linux-x64.zip 8860faaaabcc15a531733dd164c858a1cc1bffefdbba7ec54f7687db796f93f3 *electron-v25.8.4-win32-arm64-pdb.zip e909628b4c984b3472c58b3897214e59f55ce69bee99229cdf1451a281865176 *electron-v25.8.4-win32-arm64-symbols.zip 1355293a73da3e5d3f06a6c95c81a5124c4f26be2ec1035ccfcfeccd4c766f5d *electron-v25.8.4-win32-arm64.zip fef9e5ec4d146e6b310137140cee2a1172964e7584540088b1bc7fd1df15f1ff *electron-v25.8.4-win32-x64-pdb.zip 1227ec90ae2fb30e01d4c6814af1adae983b78ea832dea0520caaa8a05ac0390 *electron-v25.8.4-win32-x64-symbols.zip 0bbe72439cab1e72dee5fb850fdb1b17ea16fef61aa3dae93c562687737084f1 *electron-v25.8.4-win32-x64.zip 41e5b5392efcb1b47826f20e2f867dac6026dd435b92f50acb58bfae99b96e08 *ffmpeg-v25.8.4-darwin-arm64.zip bad5ed7f10eef768c95a134cbd6754e9c347eb8bfae871e65975afb96cc49b86 *ffmpeg-v25.8.4-darwin-x64.zip bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.8.4-linux-arm64.zip 9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.8.4-linux-armv7l.zip edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.8.4-linux-x64.zip 84ec373f124f628ce7d8964e000e79cd1448acec05b92417207baecf9b0f039a *ffmpeg-v25.8.4-win32-arm64.zip 7506346ff7a98377eca26464370a7c5a8c44d010d5c46a8357fa107980582fac *ffmpeg-v25.8.4-win32-x64.zip </del> <ins> 4a472f48b54e92855ad77606f11a620523f3abe4ee1bc2997a300ae72da4b2f5 *electron-v25.9.1-darwin-arm64-symbols.zip 247daa6c9faf711162dc623832fcb189d3c1ef6a15884084cb45c8da3a037b6b *electron-v25.9.1-darwin-arm64.zip 7d8ec9d3272dbe356deb09b47ccfda30c421b32f7e906f1186ea26f894b22dc1 *electron-v25.9.1-darwin-x64-symbols.zip 35fc99808ea026a21afeca537c218ace398d299fba7ab73d2630be513f1e1617 *electron-v25.9.1-darwin-x64.zip bfcd6ac66f067cfec08b6d18ed80b519e6d70a96d9b1d31dc2cfcf86f4a9af96 *electron-v25.9.1-linux-arm64-symbols.zip 1c8aa3f13ade23858664b687ad334634ccd698ec7d627554d16cbb596ffa7a0f *electron-v25.9.1-linux-arm64.zip dcfb4a1d6b2ceffa7a8d9a60b9de027d006753eae1278f07de907c474e71c270 *electron-v25.9.1-linux-armv7l-symbols.zip f4320f1888354e17595fb6901c03c383f45325bfba5e6e1b91b4200ff696049f *electron-v25.9.1-linux-armv7l.zip 772dd276d328549e0111b93b43d395de51ff46eba550be48c649c386997125a8 *electron-v25.9.1-linux-x64-symbols.zip 35529c411275791abf9aa46f0a2e216b0affa542757583afb438a76047f6b90c *electron-v25.9.1-linux-x64.zip 5b0b4595691da19258ce0b2c09f58ba969987d24ae8160661a715eaadf42c16b *electron-v25.9.1-win32-arm64-pdb.zip 1e67a35b41927962765a8d8cb01ce73e8c28db6453323f2661e63afd8fdf49e8 *electron-v25.9.1-win32-arm64-symbols.zip a378f5fc44e872f05d037c3ca7f03802ed3a9b2611f59741ce933f500557af7c *electron-v25.9.1-win32-arm64.zip b50f8675b12eda5d0717f83179e40b411ba3254f81bd7142821745c00b566560 *electron-v25.9.1-win32-x64-pdb.zip 8ddaa416e51bac1e93c63d1223bec37b6dd78b00c860e5b91912da09af7ff7b5 *electron-v25.9.1-win32-x64-symbols.zip f6762a98193baa9877f443c9414b1f825f99b7cf1094be579d5202b72442b5be *electron-v25.9.1-win32-x64.zip a0c2566efff0a796f751cfc63cddd52d6c4153b35b6ad582bbdd15a2c4317bc9 *ffmpeg-v25.9.1-darwin-arm64.zip b8cd9d93cdf8ebbd3caf68581b6504529b8bf2dea984b6e5f637343ea9d61946 *ffmpeg-v25.9.1-darwin-x64.zip bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.9.1-linux-arm64.zip 9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.9.1-linux-armv7l.zip edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.9.1-linux-x64.zip 2467f6567356340e8d9872753a3df486555334b7c868c0d12991f80f2353ce1f *ffmpeg-v25.9.1-win32-arm64.zip fe4676a13bf9d6f87353f3496e0fb37cd3db151fcea13dad7610a2835d238062 *ffmpeg-v25.9.1-win32-x64.zip </ins>


margin: 0px; } <del> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-trust-description a:focus </del> <ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-trust-description a:focus, </ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a:focus { outline: 1px solid -webkit-focus-ring-color; outline-offset: -1px; text-decoration: underline; } <del> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-trust-description a:hover </del> <ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-trust-description a:hover, </ins> .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-markdown a:hover { <ins> cursor: pointer; </ins> text-decoration: underline; }


command: 'git.commit', title: l10n.t('{0} Commit', '$(check)'), tooltip: this.state.isCommitInProgress ? l10n.t('Committing Changes...') : l10n.t('Commit Changes'), <del> arguments: [this.repository.sourceControl, ''] </del> <ins> arguments: [this.repository.sourceControl, null] </ins> }; }


adjustWhitespace: !(item.completion.insertTextRules! & CompletionItemInsertTextRule.KeepWhitespace) }); <del> scrollState.restoreRelativeVerticalPositionOfCursor(this.editor); </del> if (!(flags & InsertFlags.NoAfterUndoStop)) { this.editor.pushUndoStop(); }


const systemShellUnix = await getSystemShell(OS, env); logService.trace('getUnixShellEnvironment#shell', systemShellUnix); <del> let command = `'${process.execPath}' -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`; let shellArgs = ['-ilc']; </del> // handle popular non-POSIX shells const name = path.basename(systemShellUnix); <ins> let command: string, shellArgs: Array<string>; </ins> if (/^pwsh(-preview)?$/.test(name)) { <del> command = `& ${command}`; </del> <ins> // Older versions of PowerShell removes double quotes sometimes so we use "double single quotes" which is how // you escape single quotes inside of a single quoted string. command = `& '${process.execPath}' -p '''${mark}'' + JSON.stringify(process.env) + ''${mark}'''`; </ins> shellArgs = ['-Login', '-Command']; <ins> } else { command = `'${process.execPath}' -p '"${mark}" + JSON.stringify(process.env) + "${mark}"'`; shellArgs = ['-ilc']; </ins> } logService.trace('getUnixShellEnvironment#spawn', JSON.stringify(shellArgs), command);


const labelService = accessor.get(ILabelService); const uri = part instanceof ChatRequestDynamicVariablePart && part.data.map(d => d.value).find((d): d is URI => d instanceof URI) || undefined; <del> const title = uri ? labelService.getUriLabel(uri, { relative: true }) : ''; </del> <ins> const title = uri ? encodeURIComponent(labelService.getUriLabel(uri, { relative: true })) : ''; </ins> result += `[${part.text}](${variableRefUrl}${title})`; }


return this.viewDescriptorService.getViewContainersByLocation(this.location); } <del> private onDidPinnedViewContainersStorageValueChange(e: IProfileStorageValueChangeEvent): void { if (this.pinnedViewContainersValue !== this.getStoredPinnedViewContainersValue() /* This checks if current window changed the value or not */) { this._placeholderViewContainersValue = undefined; this._pinnedViewContainersValue = undefined; this._cachedViewContainers = undefined; </del> <ins> private updateCompositeBarItemsFromStorage(retainExisting: boolean): void { if (this.pinnedViewContainersValue === this.getStoredPinnedViewContainersValue()) { return; } </ins> <del> const newCompositeItems: ICompositeBarItem[] = []; const compositeItems = this.compositeBar.getCompositeBarItems(); </del> <ins> this._placeholderViewContainersValue = undefined; this._pinnedViewContainersValue = undefined; this._cachedViewContainers = undefined; </ins> <del> for (const cachedViewContainer of this.cachedViewContainers) { newCompositeItems.push({ id: cachedViewContainer.id, name: cachedViewContainer.name, order: cachedViewContainer.order, pinned: cachedViewContainer.pinned, visible: cachedViewContainer.visible && !!this.getViewContainer(cachedViewContainer.id), }); } </del> <ins> const newCompositeItems: ICompositeBarItem[] = []; const compositeItems = this.compositeBar.getCompositeBarItems(); </ins> <del> for (const viewContainer of this.getViewContainers()) { // Add missing view containers if (!newCompositeItems.some(({ id }) => id === viewContainer.id)) { const index = compositeItems.findIndex(({ id }) => id === viewContainer.id); if (index !== -1) { const compositeItem = compositeItems[index]; newCompositeItems.splice(index, 0, { id: viewContainer.id, name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value, order: compositeItem.order, pinned: compositeItem.pinned, visible: compositeItem.visible, }); } else { newCompositeItems.push({ id: viewContainer.id, name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value, order: viewContainer.order, pinned: true, visible: !this.shouldBeHidden(viewContainer), }); } </del> <ins> for (const cachedViewContainer of this.cachedViewContainers) { newCompositeItems.push({ id: cachedViewContainer.id, name: cachedViewContainer.name, order: cachedViewContainer.order, pinned: cachedViewContainer.pinned, visible: cachedViewContainer.visible && !!this.getViewContainer(cachedViewContainer.id), }); } for (const viewContainer of this.getViewContainers()) { // Add missing view containers if (!newCompositeItems.some(({ id }) => id === viewContainer.id)) { const index = compositeItems.findIndex(({ id }) => id === viewContainer.id); if (index !== -1) { const compositeItem = compositeItems[index]; newCompositeItems.splice(index, 0, { id: viewContainer.id, name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value, order: compositeItem.order, pinned: compositeItem.pinned, visible: compositeItem.visible, }); } else { newCompositeItems.push({ id: viewContainer.id, name: typeof viewContainer.title === 'string' ? viewContainer.title : viewContainer.title.value, order: viewContainer.order, pinned: true, visible: !this.shouldBeHidden(viewContainer), }); </ins> } } <ins> } </ins> <del> this.compositeBar.setCompositeBarItems(newCompositeItems); </del> <ins> if (retainExisting) { for (const compositeItem of compositeItems) { const newCompositeItem = newCompositeItems.find(({ id }) => id === compositeItem.id); if (!newCompositeItem) { newCompositeItems.push(compositeItem); } } </ins> } <ins> this.compositeBar.setCompositeBarItems(newCompositeItems); </ins> } private saveCachedViewContainers(): void {


const result = { primary, secondary, menu }; createAndFillInContextMenuActions(menu, { shouldForwardArgs: true }, result, 'inline'); if (listen) { <del> this._register(menu.onDidChange(() => this._onDidChange.fire(element))); </del> <ins> listen.add(menu.onDidChange(() => this._onDidChange.fire(element))); listen.add(menu); </ins> } else { menu.dispose(); } return result; } <del> override dispose() { </del> <ins> dispose() { </ins> this.contextKeyService = undefined; <del> super.dispose(); </del> } }


import { localize } from 'vs/nls'; import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; <del> import { AccessibilityVerbositySettingId, registerAccessibilityConfiguration } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; </del> <ins> import { AccessibilityVerbositySettingId, accessibleViewIsShown, registerAccessibilityConfiguration } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; </ins> import * as strings from 'vs/base/common/strings'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';


// Write content if it differs if (content && this._currentContent !== content) { this._stickyScrollOverlay.resize(this._stickyScrollOverlay.cols, stickyScrollLineCount); <ins> // Clear attrs, reset cursor position, clear right </ins> this._stickyScrollOverlay.write('x1b[0mx1b[Hx1b[2J'); this._stickyScrollOverlay.write(content); this._currentContent = content;


disturl "https://electronjs.org/headers" <del> target "19.0.11" </del> <ins> target "19.0.12" </ins> runtime "electron" build_from_source "true"


} // Auxiliary Panel to restore <del> if (this.isVisible(Parts.AUXILIARYBAR_PART)) { </del> <ins> const auxiliaryBarVisible = this.isVisible(Parts.AUXILIARYBAR_PART); if (auxiliaryBarVisible || (isNewWindow && activityBarNotDefault)) { </ins> const viewContainerToRestore = this.storageService.get(AuxiliaryBarPart.activePanelSettingsKey, StorageScope.WORKSPACE, this.viewDescriptorService.getDefaultViewContainer(ViewContainerLocation.AuxiliaryBar)?.id); if (viewContainerToRestore) { this.state.initialization.views.containerToRestore.auxiliaryBar = viewContainerToRestore; <del> } else { this.stateModel.setRuntimeValue(LayoutStateKeys.AUXILIARYBAR_HIDDEN, true); </del> <ins> } if (auxiliaryBarVisible !== !!viewContainerToRestore) { this.stateModel.setRuntimeValue(LayoutStateKeys.AUXILIARYBAR_HIDDEN, !auxiliaryBarVisible); </ins> } }


class FileUserDataProfileContentHandler implements IUserDataProfileContentHandler { readonly name = localize('local', "Local"); <ins> readonly description = localize('file', "file"); </ins> constructor( @IFileDialogService private readonly fileDialogService: IFileDialogService,


keybinding: { primary: KeyMod.Alt | KeyCode.KeyC, mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KeyC }, <del> when: ContextKeyExpr.or(TerminalContextKeys.focusInAny, TerminalContextKeys.findFocus), </del> <ins> when: TerminalContextKeys.findVisible, </ins> weight: KeybindingWeight.WorkbenchContrib }, precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),


constructor() { super({ id: REVEAL_RUNNING_CELL, <del> title: localize('revealRunningCell', "Go To Running Cell"), tooltip: localize('revealRunningCell', "Go To Running Cell"), </del> <ins> title: localize('revealRunningCell', "Go to Running Cell"), tooltip: localize('revealRunningCell', "Go to Running Cell"), </ins> shortTitle: localize('revealRunningCellShort', "Go To"), precondition: NOTEBOOK_HAS_RUNNING_CELL, menu: [


} .settings-editor > .settings-body .settings-tree-container .setting-item-contents .setting-item-title .setting-item-overrides a.modified-scope { <del> text-decoration: underline; </del> <ins> color: var(--vscode-textLink-foreground); text-decoration: var(--text-link-decoration); </ins> cursor: pointer; }


ignoreIfExists?: boolean; ignoreIfNotExists?: boolean; recursive?: boolean; <ins> contents?: Uint8Array; </ins> } export const enum FileEditType {


Platform::DarwinARM64 => "server-darwin-arm64", Platform::WindowsX64 => "server-win32-x64", Platform::WindowsX86 => "server-win32", <del> Platform::WindowsARM64 => "server-win32-x64", // we don't publish an arm64 server build yet </del> <ins> Platform::WindowsARM64 => "server-win32-arm64", </ins> } .to_owned() }


{ "name": "code-oss-dev", "version": "1.91.0", <del> "distro": "170beceb9849568b8f7159757bc3fc3964af1986", </del> <ins> "distro": "361fc45f5932b161db29080d5b19bc5afb9baae6", </ins> "author": { "name": "Microsoft Corporation" },


import { PositionAffinity } from 'vs/editor/common/model'; import { InjectedText } from 'vs/editor/common/modelLineProjectionData'; import { Mutable } from 'vs/base/common/types'; <ins> import { Lazy } from 'vs/base/common/lazy'; </ins> const enum HitTestResultType { Unknown,


const name = await this.quickInputService.input({ placeHolder: localize('name', "Profile name"), title: localize('create new title', "Create New Profile"), <del> value: `${profileTemplate.name} ${this.getProfileNameIndex(profileTemplate.name)}`, </del> <ins> value: `${profileName} ${this.getProfileNameIndex(profileName)}`, </ins> validateInput: async (value: string) => { if (this.userDataProfilesService.profiles.some(p => p.name === value)) { return localize('profileExists', "Profile with name {0} already exists.", value);


"scss.lint.emptyRules.desc": "Do not use empty rulesets.", "scss.lint.float.desc": "Avoid using `float`. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes.", "scss.lint.fontFaceProperties.desc": "`@font-face` rule must define `src` and `font-family` properties.", <del> "scss.lint.hexColorLength.desc": "Hex colors must consist of three or six hex numbers.", </del> <ins> "scss.lint.hexColorLength.desc": "Hex colors must consist of 3, 4, 6 or 8 hex numbers.", </ins> "scss.lint.idSelector.desc": "Selectors should not contain IDs because these rules are too tightly coupled with the HTML.", "scss.lint.ieHack.desc": "IE hacks are only necessary when supporting IE7 and older.", "scss.lint.important.desc": "Avoid using `!important`. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored.",


constructor( private readonly _editor: ICodeEditor, @IInstantiationService instaService: IInstantiationService, <ins> @IContextKeyService contextKeyService: IContextKeyService, </ins> ) { this._defaultChatModel = this._store.add(instaService.createInstance(ChatModel, `inlineChatDefaultModel/editorContentWidgetPlaceholder`, undefined)); <del> this._widget = instaService.createInstance( </del> <ins> const scopedInstaService = instaService.createChild( new ServiceCollection([ IContextKeyService, this._store.add(contextKeyService.createScoped(this._domNode)) ]) ); this._widget = scopedInstaService.createInstance( </ins> ChatWidget, ChatAgentLocation.Editor, { resource: true },


const matcher = outputMatcher.lineMatcher; const linesToCheck = typeof matcher === 'string' ? 1 : outputMatcher.length || countNewLines(matcher); const lines: string[] = []; <del> let wrappedLines = 1; </del> let match: RegExpMatchArray | null | undefined; if (outputMatcher.anchor === 'bottom') { for (let i = endLine - (outputMatcher.offset || 0); i >= startLine; i--) {


} ); this._store.add(this._widget); <del> this._store.add(this._widget.onDidChangeHeight(() => _editor.layoutContentWidget(this))); </del> this._widget.render(this._inputContainer); this._widget.setModel(this._defaultChatModel, {}); <ins> this._store.add(this._widget.inputEditor.onDidContentSizeChange(() => _editor.layoutContentWidget(this))); </ins> this._domNode.tabIndex = -1; this._domNode.className = 'inline-chat-content-widget interactive-session';


this._layoutCancellationTokenSource = new CancellationTokenSource(); this._modifiedResourceDisposableStore.add(Event.any(this._model.original.notebook.onDidChangeContent, this._model.modified.notebook.onDidChangeContent)(e => { <del> if (this._model !== null) { </del> <ins> // If the user has made changes to the notebook whilst in the diff editor, // then do not re-compute the diff of the notebook, // As change will result in re-computing diff and re-building entire diff view. if (this._model !== null && this.editorService.activeEditor !== input) { </ins> this._layoutCancellationTokenSource?.dispose(); this._layoutCancellationTokenSource = new CancellationTokenSource(); this.updateLayout(this._layoutCancellationTokenSource.token);


<ins> { "registrations": [ { "component": { "type": "git", "git": { "name": "dart-lang/dart-syntax-highlight", "repositoryUrl": "https://github.com/dart-lang/dart-syntax-highlight", "commitHash": "65f211722c85e9fdf0aa658d5663e6ccaf2ebe25" } }, "licenseDetail": [ "Copyright 2020, the Dart project authors.", "", "Redistribution and use in source and binary forms, with or without", "modification, are permitted provided that the following conditions are", "met:", "", "    * Redistributions of source code must retain the above copyright", "    notice, this list of conditions and the following disclaimer.", "    * Redistributions in binary form must reproduce the above", "    copyright notice, this list of conditions and the following", "    disclaimer in the documentation and/or other materials provided", "    with the distribution.", "    * Neither the name of Google LLC nor the names of its", "    contributors may be used to endorse or promote products derived", "    from this software without specific prior written permission.", "", "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS", ""AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT", "LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR", "A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT", "OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,", "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT", "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,", "DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY", "THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT", "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE", "OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "license": "BSD", "version": "0.0.0" } ], "version": 1 } </ins>


const text = data.contents.join('n'); const newDocument = new DOMParser().parseFromString(text, 'text/html'); <ins> newDocument.querySelectorAll('a').forEach(a => { if (!a.title) { a.title = a.href; } }); </ins> // set base-url if applicable if (initData.baseUrl && newDocument.head.getElementsByTagName('base').length === 0) { const baseElement = newDocument.createElement('base');


], "settings": { "fontStyle": "italic", <del> "foreground": "#91B3E0" </del> <ins> "foreground": "#8190A0" </ins> } }, {


} } // check with 'label' <del> if (a.completion.label < b.completion.label) { </del> <ins> if (a.textLabel < b.textLabel) { </ins> return -1; <del> } else if (a.completion.label > b.completion.label) { </del> <ins> } else if (a.textLabel > b.textLabel) { </ins> return 1; } // check with 'type'


.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@')) .pipe(rename('DEBIAN/postinst')); <del> const all = es.merge(control, postinst, postrm, prerm, desktops, appdata, icon, bash_completion, zsh_completion, code); </del> <ins> const all = es.merge(control, postinst, postrm, prerm, desktops, appdata, workspaceMime, icon, bash_completion, zsh_completion, code); </ins> return all.pipe(vfs.dest(destination)); };


margin-top: 7px; } <del> .monaco-workbench.mac .part > .title > .title-actions .switch-output { </del> <ins> .monaco-workbench.mac .part.sidebar > .title > .title-actions .switch-output { </ins> border-radius: 4px; } <del> .monaco-workbench .part > .title > .title-actions .switch-output > .monaco-select-box { </del> <ins> .monaco-workbench .part.sidebar > .title > .title-actions .switch-output > .monaco-select-box { </ins> border: none !important; display: block !important; background-color: unset !important;


} } <del> const LINK_REGEX = /[([^]]+)](((?:https?://|command:|file:)[^)s]+)(?: ("|')([^3]+)(3))?)/gi; </del> <ins> const LINK_REGEX = /[([^]]+)](((?:https?://|command:|file:)[^)s]+)(?: (["'])(.+?)(3))?)/gi; </ins> export function parseLinkedText(text: string): LinkedText { const result: LinkedTextNode[] = [];


return request.fulfillContentEmpty(new Position(lineCount, maxLineColumn), EMPTY_CONTENT_AFTER_LINES); } <del> if (domHitTestExecuted) { // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { const lineWidth = ctx.getLineWidth(lineNumber); const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); } </del> <ins> // Check if we are hitting a view-line (can happen in the case of inline decorations on empty lines) // See https://github.com/microsoft/vscode/issues/46942 if (ElementPath.isStrictChildOfViewLines(request.targetPath)) { const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset); if (ctx.viewModel.getLineLength(lineNumber) === 0) { </ins> const lineWidth = ctx.getLineWidth(lineNumber); <del> if (request.mouseContentHorizontalOffset >= lineWidth) { const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </del> <ins> const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); return request.fulfillContentEmpty(new Position(lineNumber, 1), detail); </ins> } <del> // We have already executed hit test... return request.fulfillUnknown(); </del> <ins> const lineWidth = ctx.getLineWidth(lineNumber); if (request.mouseContentHorizontalOffset >= lineWidth) { // TODO: This is wrong for RTL const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth); const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber)); return request.fulfillContentEmpty(pos, detail); } </ins> } <del> const hitTestResult = MouseTargetFactory._doHitTest(ctx, request); </del> <ins> // Do the hit test (if not already done) const hitTestResult = request.hitTestResult.value; </ins> if (hitTestResult.type === HitTestResultType.Content) { return MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText); } <del> return this._createMouseTarget(ctx, request.withTarget(hitTestResult.hitTarget), true); </del> <ins> // We didn't hit content... if (request.wouldBenefitFromHitTestTargetSwitch) { // We actually hit something different... Give it one last change by trying again with this new target request.switchToHitTestTarget(); return this._createMouseTarget(ctx, request); } // We have tried everything... return request.fulfillUnknown(); </ins> } private static _hitTestMinimap(ctx: HitTestContext, request: ResolvedHitTestRequest): IMouseTarget | null {


* workbench command such as `workbench.action.terminal.runSelectedText` * ```typescript * const terminalRenderer = window.createTerminalRenderer('test'); <del> * terminalRenderer.onInput(data => { </del> <ins> * terminalRenderer.onDidAcceptInput(data => { </ins> *   cosole.log(data); // 'Hello world' * }); * terminalRenderer.terminal.then(t => t.sendText('Hello world')); * ``` */ <del> onInput: Event<string>; </del> <ins> onDidAcceptInput: Event<string>; </ins> /** * An event which fires when the [maximum dimensions](#TerminalRenderer.maimumDimensions) of


import { IEditorMemento, IEditorOpenContext, IEditorPane } from 'vs/workbench/common/editor'; import { SuggestEnabledInput } from 'vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput'; import { SettingsTarget, SettingsTargetsWidget } from 'vs/workbench/contrib/preferences/browser/preferencesWidgets'; <del> import { getCommonlyUsedData, tocData } from 'vs/workbench/contrib/preferences/browser/settingsLayout'; </del> <ins> import { ITOCEntry, getCommonlyUsedData, tocData } from 'vs/workbench/contrib/preferences/browser/settingsLayout'; </ins> import { AbstractSettingRenderer, HeightChangeParams, ISettingLinkClickEvent, resolveConfiguredUntrustedSettings, createTocTreeForExtensionSettings, resolveSettingsTree, SettingsTree, SettingTreeRenderers } from 'vs/workbench/contrib/preferences/browser/settingsTree'; import { ISettingsEditorViewState, parseQuery, SearchResultIdx, SearchResultModel, SettingsTreeElement, SettingsTreeGroupChild, SettingsTreeGroupElement, SettingsTreeModel, SettingsTreeSettingElement } from 'vs/workbench/contrib/preferences/browser/settingsTreeModels'; import { createTOCIterator, TOCTree, TOCTreeModel } from 'vs/workbench/contrib/preferences/browser/tocTree';