tags: ['notebookLayout', 'notebookOutputLayout'] }, [NotebookSetting.outputScrolling]: { <del> markdownDescription: nls.localize('notebook.outputScrolling', "Use a scrollable region for notebook output when longer than the limit"), </del> <ins> markdownDescription: nls.localize('notebook.outputScrolling', "Initially render notebook outputs in a scrollable region when longer than the limit"), </ins> type: 'boolean', tags: ['notebookLayout', 'notebookOutputLayout'], default: typeof product.quality === 'string' && product.quality !== 'stable' // only enable as default in insiders


if (action.class) { this.label.classList.add(action.class); } if (!action.icon) { const reactionLabel = dom.append(this.label, dom.$('span.reaction-label')); reactionLabel.innerText = action.label; } else { const reactionIcon = dom.append(this.label, dom.$('.reaction-icon')); <del> reactionIcon.style.display = ''; </del> const uri = URI.revive(action.icon); reactionIcon.style.backgroundImage = dom.asCSSUrl(uri); reactionIcon.title = action.label;


}; } async function main(arch = process.arch) { <del> const version = product.electronRepository ? '22.5.3' : util.getElectronVersion(); </del> <ins> const version = product.electronRepository ? '22.5.4' : 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}`;


} public run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void { <ins> const useLogicalLine = (args && args.logicalLine === true); </ins> const cursors = editor._getCursors(); const context = cursors.context;


"textCodeBlock.background": "#2B2B2B", "textLink.activeForeground": "#4daafc", "textLink.foreground": "#4daafc", <del> "textPreformat.foreground": "#D0D0D0", </del> <ins> "textPreformat.foreground": "#D7BA7D", </ins> "textPreformat.background": "#3C3C3C", "textSeparator.foreground": "#21262D", "titleBar.activeBackground": "#181818",


} } <del> const didCompression = compressStreamBuffer(buffers); const data = formatStreamText(VSBuffer.concat(buffers.map(buffer => VSBuffer.wrap(buffer)))); </del> <ins> let didCompression = compressStreamBuffer(buffers); const concatenated = VSBuffer.concat(buffers.map(buffer => VSBuffer.wrap(buffer))); const data = formatStreamText(concatenated); didCompression = didCompression || data.byteLength !== concatenated.byteLength; </ins> return { data, didCompression }; }


'use strict'; <del> import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit } from 'vscode'; </del> <ins> import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit, workspace } from 'vscode'; </ins> import phpGlobals = require('./phpGlobals'); export default class PHPCompletionItemProvider implements CompletionItemProvider {


SymbolInformation, SymbolKind, CompletionItem, Location, SignatureHelp, SignatureInformation, ParameterInformation, Definition, TextEdit, TextDocument, Diagnostic, DiagnosticSeverity, Range, CompletionItemKind, Hover, MarkedString, DocumentHighlight, DocumentHighlightKind, CompletionList, Position, FormattingOptions, FoldingRange, FoldingRangeKind, SelectionRange, <del> LanguageMode, Settings, SemanticTokenData </del> <ins> LanguageMode, Settings, SemanticTokenData, Workspace </ins> } from './languageModes'; import { getWordAtText, startsWith, isWhitespaceOnly, repeat } from '../utils/strings'; import { HTMLDocumentRegions } from './embeddedSupport';


<del> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><defs><style>.icon-canvas-transparent,.icon-vs-out{fill:#f6f6f6;}.icon-canvas-transparent{opacity:0;}.icon-vs-action-green{fill:#388a34;}</style></defs><title>restart</title><g id="canvas"><path class="icon-canvas-transparent" d="M16,0V16H0V0Z"/></g><g id="outline" style="display: none;"><path class="icon-vs-out" d="M8.5,1A7.5,7.5,0,0,0,4,2.527V1H0V9H3.068l-2.057.583.272.962A7.5,7.5,0,1,0,8.5,1Zm0,11A3.515,3.515,0,0,1,5.131,9.455L5,9H8V5.036A3.6,3.6,0,0,1,8.5,5a3.5,3.5,0,0,1,0,7Z"/></g><g id="iconBg"><path class="icon-vs-action-green" d="M15,8.5A6.5,6.5,0,0,1,2.245,10.272l1.924-.544A4.509,4.509,0,1,0,4.764,6H7V8H1V2H3V5.07A6.486,6.486,0,0,1,15,8.5Z"/></g></svg> </del>  No newline at end of file <ins> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><style>.st0{fill:#f6f6f6;fill-opacity:0}.st1{display:none}.st2{display:inline;fill:#f6f6f6}.st3{fill:#388a34}</style><title>restart</title><path class="st0" d="M16 0v16H0V0h16z" id="canvas"/><g id="outline" class="st1" style="display: none;"><path class="st2" d="M8.5 1C6.9 1 5.3 1.5 4 2.5V1H0v8h3.1L1 9.6l.3 1c1.1 4 5.3 6.3 9.3 5.2s6.3-5.3 5.2-9.3C14.8 3.2 11.9 1 8.5 1zm0 11c-1.6 0-2.9-1-3.4-2.5L5 9h3V5h.5C10.4 5 12 6.6 12 8.5S10.4 12 8.5 12z"/></g><path class="st3" d="M15 8c0 3.6-2.9 6.5-6.5 6.5-2.9 0-5.5-1.9-6.3-4.7l1.9-.5c.7 2.4 3.2 3.8 5.6 3.1 2.4-.7 3.8-3.2 3.1-5.6S9.7 3 7.3 3.7c-1 .3-1.9.9-2.5 1.8H7v2H1v-6h2v3.1c1.9-3 5.9-4 8.9-2.1C13.8 3.7 15 5.7 15 8z" id="iconBg"/></svg> </ins>  No newline at end of file


"@iktakahiro/markdown-it-katex@mjbvz/markdown-it-katex": version "4.0.3" <del> resolved "https://codeload.github.com/mjbvz/markdown-it-katex/tar.gz/17509eaeb7d48887d62ca02eb5eee9e6372b80ac" </del> <ins> resolved "https://codeload.github.com/mjbvz/markdown-it-katex/tar.gz/58f6637b5883caa8a811f1736bc90b34cd26b395" </ins> dependencies: katex "^0.16.2"


if (!isUndefined(e.enabled)) { button.enabled = action.enabled; } <ins> if (!isUndefined(e.label)) { button.label = action.label; } </ins> })); disposables.add(profileElement.onDidChange(e => { if (e.message) {


resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== <del> "@xterm/addon-canvas@0.6.0-beta.16": version "0.6.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/addon-canvas/-/addon-canvas-0.6.0-beta.16.tgz#d22ba7f1b211882215c5206ca07ce177378a898f" integrity sha512-o89xcm0Tqy1ksEYMq3EIqxJNDUWJBaS9QUggc7i5vKUL2unw9TMa5IiiNzc3CsBOlBQDlITwEXoHDEbOMxoZPQ== "@xterm/addon-image@0.7.0-beta.14": version "0.7.0-beta.14" resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.7.0-beta.14.tgz#39b123dd0a0390766aff631cf43cb2e51b3b2174" integrity sha512-oCOIupROzkb5p2vZarY6HrX74OqvtbmjnkC6uuGEJXQ75XL2CX+uTUl2DlgeSTvvR0S8ZVB3hQlp4hrtoNNelA== "@xterm/addon-search@0.14.0-beta.16": version "0.14.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.14.0-beta.16.tgz#5fa21d2b993970e8ced1e0ada3dcca5f7581c314" integrity sha512-e6l5jCJIULQ6nzRcc0gp9obZsqd76qubAr0HZF6Ebxf3KOGRz4UX6g+kgt6RB1liWgG94WD8vI1rGB1z5bMSEg== "@xterm/addon-serialize@0.12.0-beta.16": version "0.12.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.12.0-beta.16.tgz#68c4d68dba7ff17a231650cc0d07dcc77721877b" integrity sha512-F6ngtvTC5VDLn585uJro7V1xjM43TbjPQjQ6Fn0Uic3+dsQrbPFxZmNZuQOjMZDoYj/febFsuspKjXdpoxo21w== "@xterm/addon-unicode11@0.7.0-beta.16": version "0.7.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.7.0-beta.16.tgz#c4c640cb119290e1d0a6401ac018aba1d71287f9" integrity sha512-sP81NX13madSeATjlBReZbaay17DgatR7dZP6OF8aMyJf6cBVaHMYjTipyw3NnsmjUtBfLc3Alu+JKv8NFteiw== "@xterm/addon-webgl@0.17.0-beta.16": version "0.17.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.17.0-beta.16.tgz#75466614bf8ea02a3fcb0900df48724c2344d081" integrity sha512-+/eTLvSgYjvRX7oAKfpCDZdotrE8P/asCKXQtXjkbOtYRToI7kWEYfJzfgdFKFgDLKOpDdgY6Bgq384wEewlTA== "@xterm/headless@5.4.0-beta.16": version "5.4.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.4.0-beta.16.tgz#d12097c6c2082f14f5650169471eb120ed7600e7" integrity sha512-5GTEzrZzpjfoQrFexULq20Mqc5jbTmhkTBYk0XaE4jeZVdCvsw1yiZNDVj7/66cKOmhQMCxV809p2jQZ/BJ0ww== "@xterm/xterm@5.4.0-beta.16": version "5.4.0-beta.16" resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.4.0-beta.16.tgz#eb00506e56ba78c587fcacbada096c2af3693992" integrity sha512-ARzWYQ8LfuZIn47TS8c+XKQhn/1ZVvbHdwlpolZIrT2pTarP+71U1b6cSpF7fV+OIV6tAPA8+q4g/1ZKHuOX8g== </del> <ins> "@xterm/addon-canvas@0.6.0-beta.17": version "0.6.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/addon-canvas/-/addon-canvas-0.6.0-beta.17.tgz#0bc968a42bcfd477e26cdacd9b1624e3296df97a" integrity sha512-I5qTtbxqXO3vEBzRuEXHjU9tpLABlMxmaoQ43TkSIO5I4jCQ3EIgnLGNTrDf7BQ6H3OxxsxlMp9Ui0jQRxUuSg== "@xterm/addon-image@0.7.0-beta.15": version "0.7.0-beta.15" resolved "https://registry.yarnpkg.com/@xterm/addon-image/-/addon-image-0.7.0-beta.15.tgz#5d18f0702ca7dc1b80c4696448eca949d9a04d4b" integrity sha512-ymt2cbG1P56EamETSKNNLxr0mI8yWnyUxHC6lRFA6mB0PYO++EePSzulrAC/Clk8X3BPbXIZmhBwoxp0VqWAGg== "@xterm/addon-search@0.14.0-beta.17": version "0.14.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/addon-search/-/addon-search-0.14.0-beta.17.tgz#1f39f02edfa20c3e7f898ddcf73d6b4c8a764e23" integrity sha512-zM/X41hcHu3FNqPOxlzElGdPkOlkCMI8CWKXSlVfUe7EydzJcRDOUvIE1rE+rCumry79O7ThEK7/6FVTH9k3bQ== "@xterm/addon-serialize@0.12.0-beta.17": version "0.12.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/addon-serialize/-/addon-serialize-0.12.0-beta.17.tgz#cf4ada9104f22427fde915644638d84f8fe45ff9" integrity sha512-OUV0f1fnqJK8oooJ3J8dGfDxDpqf5s8UU7LWNmuGkcJYkfkltMKlo4DHfQ2DaLxdnb+JT0rfu5LojtRi3bvVaw== "@xterm/addon-unicode11@0.7.0-beta.17": version "0.7.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/addon-unicode11/-/addon-unicode11-0.7.0-beta.17.tgz#0cc609574ccffc683902020f549671e4c36dcf1c" integrity sha512-VLwnBy3OlzdUy6NGQwS95qDHkgzDfSRssjxJc9YTqOBCz87LD00oKRVDJOa6SMhxXYm7nPyVlC6J6CBSivcLmQ== "@xterm/addon-webgl@0.17.0-beta.17": version "0.17.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/addon-webgl/-/addon-webgl-0.17.0-beta.17.tgz#aa4dd17c9e8b57185b001e8fac1e23cd1fc5a456" integrity sha512-XvCpPb+jZfb6aHFf+DhgtRcvDz8VA+ZnPa0YfrZWszGoBzNJ4tqWXy6gerRulk20SGilY0UBCfV1f4DIs/HQPg== "@xterm/headless@5.4.0-beta.17": version "5.4.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/headless/-/headless-5.4.0-beta.17.tgz#13ff28cf8708d1d7668ecf27008a837f4002af94" integrity sha512-5Os8Wa+5+9/KA8FdHvAgdzmFGUTZv9DtHjZgtXB1hX0/yx2sCaDQgPYSwt5w52GYhh5HOxx6Olo4exb9lrKvAw== "@xterm/xterm@5.4.0-beta.17": version "5.4.0-beta.17" resolved "https://registry.yarnpkg.com/@xterm/xterm/-/xterm-5.4.0-beta.17.tgz#08897de7274a3431accf525a147a7e6034a64573" integrity sha512-EhQsTHeO7VhCOnYLdrowWAqEbmZKf6k6Z/Rd3GriikB394jivux6OBcJbt7QdewIOAKqFah53d4rNXfz3/6mwQ== </ins> "@xtuc/ieee754@^1.2.0": version "1.2.0"


return false; } <del> async createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<ITerminalProfile | undefined> { const detectedProfile = this._terminalService.availableProfiles?.find(p => p.path === shell); </del> <ins> async createProfileFromShellAndShellArgs(shell?: unknown, shellArgs?: unknown): Promise<ITerminalProfile | string> { const detectedProfile = this._terminalService.availableProfiles?.find(p => { if (p.path !== shell) { return false; } if (p.args === undefined || typeof p.args === 'string') { return p.args === shellArgs; } return p.path === shell && equals(p.args, (shellArgs || []) as string[]); }); </ins> const fallbackProfile = (await this.getDefaultProfile({ remoteAuthority: this._remoteAgentService.getConnection()?.remoteAuthority, os: this._primaryBackendOs! })); <ins> fallbackProfile.profileName = `${fallbackProfile.path} (migrated)`; </ins> const profile = detectedProfile || fallbackProfile; const args = this._isValidShellArgs(shellArgs, this._primaryBackendOs!) ? shellArgs : profile.args; const createdProfile = {


} update(): void { <del> this.enabled = !!this.extension && !this.extension.isBuiltin && !!this.extension.gallery && !!this.extension.local && !!this.extension.server && this.extension.state === ExtensionState.Installed; </del> <ins> this.enabled = !!this.extension && !this.extension.isBuiltin && !!this.extension.gallery && !!this.extension.local && !!this.extension.server && this.extension.state === ExtensionState.Installed && !this.extension.deprecationInfo; </ins> } override async run(): Promise<any> {


class ContentHitTestResult { readonly type = HitTestResultType.Content; <ins> get hitTarget(): HTMLElement { return this.spanNode; } </ins> constructor( readonly position: Position, readonly spanNode: HTMLElement,


resource ); this._disposables.push(disposables.add(ref.object.notebook.onDidChangeContent(e => { <del> if (result && e.rawEvents.some(event => event.kind === NotebookCellsChangeType.ChangeCellMetadata && event.index === cellIndex)) { </del> <ins> if (result && e.rawEvents.some(event => (event.kind === NotebookCellsChangeType.ChangeCellMetadata || event.kind === NotebookCellsChangeType.ChangeCellLanguage) && event.index === cellIndex)) { </ins> const value = getFormattedMetadataJSON(ref.object.notebook, cell.metadata, cell.language); if (result.getValue() !== value) { result.setValue(getFormattedMetadataJSON(ref.object.notebook, cell.metadata, cell.language));


} export const config = { <del> version: product.electronRepository ? '22.4.5' : util.getElectronVersion(), </del> <ins> version: product.electronRepository ? '22.4.6' : util.getElectronVersion(), </ins> productAppName: product.nameLong, companyName: 'Microsoft Corporation', copyright: 'Copyright (C) 2023 Microsoft. All rights reserved',


"when": "config.git.enabled && scmProvider == git && gitState == idle" }, { <ins> "command": "git.pullFrom", "when": "config.git.enabled && scmProvider == git && gitState == idle" }, { </ins> "command": "git.push", "when": "config.git.enabled && scmProvider == git && gitState == idle" },


return Promise.resolve(null); } if (debugService.getConfigurationManager().canSetBreakpointsIn(widget.getModel())) { <del> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column > 1 ? position.column : undefined }]); </del> <ins> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber, column: position.column > 1 ? position.column : undefined }], 'debugCommands.inlineBreakpointCommand'); </ins> } }


title: 'Debug', icon: Codicon.debug, order: 1, <del> when: ContextKeyExpr.and(CONTEXT_DEBUG_STATE.notEqualsTo('inactive'), ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')) </del> <ins> when: ContextKeyExpr.and(CONTEXT_IN_DEBUG_MODE, ContextKeyExpr.equals('config.debug.toolBarLocation', 'commandCenter')) </ins> }); registerDebugToolBarItem(CONTINUE_ID, CONTINUE_LABEL, 10, icons.debugContinue, CONTEXT_DEBUG_STATE.isEqualTo('stopped'));


Config = '5_config' } <del> export const enum TerminalTabContextMenuGroup { Default = '1_create_default', Profile = '2_create_profile', Configure = '3_configure' } </del> export const enum TerminalMenuBarGroup { Create = '1_create', Run = '2_run',


static readonly ID: string = 'workbench.explorer.emptyView'; static readonly NAME = nls.localize('noWorkspace', "No Folder Opened"); <ins> private _disposed: boolean = false; </ins> constructor( options: IViewletViewOptions,


} } <ins> // If any candidates end with special characters that are likely to not be part of the // link, add a candidate excluding them. const specialEndCharRegex = /[[]]$/; const trimRangeMap: Map<string, number> = new Map(); const specialEndLinkCandidates: string[] = []; for (const candidate of linkCandidates) { let previous = candidate; let removed = previous.replace(specialEndCharRegex, ''); let trimRange = 0; while (removed !== previous) { trimRange++; specialEndLinkCandidates.push(removed); trimRangeMap.set(removed, trimRange); previous = removed; removed = removed.replace(specialEndCharRegex, ''); } } linkCandidates.push(...specialEndLinkCandidates); </ins> const linkStat = await this._validateLinkCandidates(linkCandidates); // Create the link if validated


"values": [ { "name": "center", <del> "desc": "Places the center of the Grid Item's margin box at the center of the the Grid Item's column." </del> <ins> "desc": "Places the center of the Grid Item's margin box at the center of the Grid Item's column." </ins> }, { "name": "end",


const possibleChangesLength = possibleChanges.length; if (inclusive) { <del> if ((getModifiedEndLineNumber(change.change) >= lineNumber) && (change.change.modifiedStartLineNumber <= lineNumber)) { </del> <ins> if (getModifiedEndLineNumber(change.change) >= lineNumber) { </ins> if (preferredProvider && change.label !== preferredProvider) { possibleChanges.push(i); } else {


<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import { IListRenderer, IListVirtualDelegate } from 'vs/base/browser/ui/list/list'; import { List } from 'vs/base/browser/ui/list/listWidget'; import { range } from 'vs/base/common/arrays'; import { timeout } from 'vs/base/common/async'; suite('ListWidget', function () { test('Page up and down', async function () { const element = document.createElement('div'); element.style.height = '200px'; element.style.width = '200px'; const delegate: IListVirtualDelegate<number> = { getHeight() { return 20; }, getTemplateId() { return 'template'; } }; let templatesCount = 0; const renderer: IListRenderer<number, void> = { templateId: 'template', renderTemplate() { templatesCount++; }, renderElement() { }, disposeTemplate() { templatesCount--; } }; const listWidget = new List<number>('test', element, delegate, [renderer]); listWidget.layout(200); assert.strictEqual(templatesCount, 0, 'no templates have been allocated'); listWidget.splice(0, 0, range(100)); listWidget.focusFirst(); listWidget.focusNextPage(); assert.strictEqual(listWidget.getFocus()[0], 9, 'first page down moves focus to element at bottom'); // scroll to next page is async listWidget.focusNextPage(); await timeout(0); assert.strictEqual(listWidget.getFocus()[0], 19, 'page down to next page'); listWidget.focusPreviousPage(); assert.strictEqual(listWidget.getFocus()[0], 10, 'first page up moves focus to element at top'); // scroll to previous page is async listWidget.focusPreviousPage(); await timeout(0); assert.strictEqual(listWidget.getFocus()[0], 0, 'page down to previous page'); listWidget.dispose(); }); test('Page up and down with item taller than viewport #149502', async function () { const element = document.createElement('div'); element.style.height = '200px'; element.style.width = '200px'; const delegate: IListVirtualDelegate<number> = { getHeight() { return 200; }, getTemplateId() { return 'template'; } }; let templatesCount = 0; const renderer: IListRenderer<number, void> = { templateId: 'template', renderTemplate() { templatesCount++; }, renderElement() { }, disposeTemplate() { templatesCount--; } }; const listWidget = new List<number>('test', element, delegate, [renderer]); listWidget.layout(200); assert.strictEqual(templatesCount, 0, 'no templates have been allocated'); listWidget.splice(0, 0, range(100)); listWidget.focusFirst(); assert.strictEqual(listWidget.getFocus()[0], 0, 'initial focus is first element'); // scroll to next page is async listWidget.focusNextPage(); await timeout(0); assert.strictEqual(listWidget.getFocus()[0], 1, 'page down to next page'); // scroll to previous page is async listWidget.focusPreviousPage(); await timeout(0); assert.strictEqual(listWidget.getFocus()[0], 0, 'page up to next page'); listWidget.dispose(); }); }); </ins>


} private async computeAndUpdateEnablement(): Promise<void> { <ins> this.enabled = false; this.class = UpdateAction.DisabledClass; this.label = this.getLabel(); </ins> if (!this.extension) { <del> this.enabled = false; this.class = UpdateAction.DisabledClass; this.label = this.getLabel(); </del> <ins> return; } if (this.extension.deprecationInfo) { </ins> return; }


export class SettingsChangeRelauncher extends Disposable implements IWorkbenchContribution { <del> private titleBarStyle: 'native' | 'custom' | undefined; private windowControlsOverlayEnabled: boolean | undefined; private windowSandboxEnabled: boolean | undefined; private nativeTabs: boolean | undefined; private nativeFullScreen: boolean | undefined; private clickThroughInactive: boolean | undefined; private updateMode: string | undefined; </del> <ins> private readonly titleBarStyle = new ChangeObserver<'native' | 'custom'>('string'); private readonly windowControlsOverlayEnabled = new ChangeObserver('boolean'); private readonly windowSandboxEnabled = new ChangeObserver('boolean'); private readonly nativeTabs = new ChangeObserver('boolean'); private readonly nativeFullScreen = new ChangeObserver('boolean'); private readonly clickThroughInactive = new ChangeObserver('boolean'); private readonly updateMode = new ChangeObserver('string'); </ins> private accessibilitySupport: 'on' | 'off' | 'auto' | undefined; <del> private workspaceTrustEnabled: boolean | undefined; private settingsProfilesEnabled: boolean | undefined; private experimentsEnabled: boolean | undefined; private enablePPEExtensionsGallery: boolean | undefined; </del> <ins> private readonly workspaceTrustEnabled = new ChangeObserver('boolean'); private readonly settingsProfilesEnabled = new ChangeObserver('boolean'); private readonly experimentsEnabled = new ChangeObserver('boolean'); private readonly enablePPEExtensionsGallery = new ChangeObserver('boolean'); </ins> constructor( @IHostService private readonly hostService: IHostService,


let waitMarkerError: Error; const randomTmpFile = paths.join(os.tmpdir(), Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 10)); try { <del> writeFileAndFlushSync(randomTmpFile, ''); </del> <ins> fs.writeFileSync(randomTmpFile, ''); </ins> waitMarkerFilePath = randomTmpFile; argv.push('--waitMarkerFilePath', waitMarkerFilePath); } catch (error) {


/* No Tab Close Button */ .monaco-workbench > .part.editor > .content > .one-editor-silo > .container > .title .tabs-container > .tab.close-button-off { <del> padding-right: 28px; /* make room for dirty indication when we are running without close button */ </del> <ins> padding-right: 12px; transition: padding-right ease-in-out 100ms; </ins> } .monaco-workbench > .part.editor > .content > .one-editor-silo > .container > .title .tabs-container > .tab.close-button-off.dirty { background-repeat: no-repeat; background-position-y: center; background-position-x: calc(100% - 6px); /* to the right of the tab label */ <ins> padding-right: 28px; /* make room for dirty indication when we are running without close button */ </ins> } .vs .monaco-workbench > .part.editor > .content > .one-editor-silo > .container > .title .tabs-container > .tab.close-button-off.dirty {


resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.207.tgz#9c3310ebace2952903d05dcaba8abe3a4ed44c01" integrity sha512-piH7MJDJp4rJCduWbVvmUd59AUne1AFBJ8JaRQvk0KzNTSUnZrVXHCZc+eg+CGE4OujkcLJznhGKD6tuAshj5Q== <del> electron@19.0.11: version "19.0.11" resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.11.tgz#0c0a52abc08694fd38916d9270baf45bb7752a27" integrity sha512-GPM6C1Ze17/gR4koTE171MxrI5unYfFRgXQdkMdpWM2Cd55LMUrVa0QHCsfKpsaloufv9T65lsOn0uZuzCw5UA== </del> <ins> electron@19.0.12: version "19.0.12" resolved "https://registry.yarnpkg.com/electron/-/electron-19.0.12.tgz#73d11cc2a3e4dbcd61fdc1c39561e7a7911046e9" integrity sha512-GOvG0t2NCeJYIfmC3g/dnEAQ71k3nQDbRVqQhpi2YbsYMury0asGJwqnVAv2uZQEwCwSx4XOwOQARTFEG/msWw== </ins> dependencies: "@electron/get" "^1.14.1" "@types/node" "^16.11.26"


import { editorBackground, editorForeground, inputBackground } from 'vs/platform/theme/common/colorRegistry'; import { ChatModel } from 'vs/workbench/contrib/chat/common/chatModel'; import { Range } from 'vs/editor/common/core/range'; <ins> import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; </ins> export class InlineChatContentWidget implements IContentWidget {


} else if (minimapSide === 'right') { this._rootDomNode.style.marginLeft = '0px'; } <ins> this._rootDomNode.style.zIndex = '11'; </ins> } public getId(): string {


.monaco-action-bar .action-item .monaco-select-box { cursor: pointer; <del> min-width: 110px; </del> <ins> min-width: 70px; </ins> min-height: 18px; padding: 2px 23px 2px 8px; }


__vsc_command_complete() { builtin local __vsc_history_id=$(builtin history | tail -n1 | awk '{print $1;}') <del> if [[ "$__vsc_history_id" == "$__vsc_last_history_id" ]]; then builtin printf "033]633;D007" else builtin printf "033]633;D;%s007" "$__vsc_status" __vsc_last_history_id=$__vsc_history_id </del> <ins> # Don't write the command complete sequence for the first prompt without an associated command if [[ "$__vsc_initialized" == "1" ]]; then if [[ "$__vsc_history_id" == "$__vsc_last_history_id" ]]; then builtin printf "033]633;D007" else builtin printf "033]633;D;%s007" "$__vsc_status" __vsc_last_history_id=$__vsc_history_id fi </ins> fi __vsc_update_cwd }


public fulfillOverlayWidget(detail: string): IMouseTargetOverlayWidget { return MouseTarget.createOverlayWidget(this.target, this._getMouseColumn(), detail); } <del> public withTarget(target: HTMLElement | null): HitTestRequest { return new HitTestRequest(this._ctx, this.editorPos, this.pos, this.relativePos, target); } </del> } interface ResolvedHitTestRequest extends HitTestRequest {


let uninitializedPromise: TPromise<any> | null = null; const emitter = new Emitter<any>({ onFirstListenerAdd: () => { <del> uninitializedPromise = this.whenInitialized().then(() => { </del> <ins> uninitializedPromise = this.whenInitialized(); uninitializedPromise.then(() => { </ins> uninitializedPromise = null; this.send(request.raw); });


.settings-editor > .settings-body .settings-tree-container .setting-item.setting-item-list .setting-list-sibling, .settings-editor > .settings-body .settings-tree-container .setting-item.setting-item-list .setting-list-object-widget .setting-list-object-key, .settings-editor > .settings-body .settings-tree-container .setting-item.setting-item-list .setting-list-object-widget .setting-list-object-value { <del> white-space: normal; overflow-wrap: normal; </del> <ins> white-space: nowrap; text-overflow: ellipsis; overflow: hidden; </ins> } .settings-editor > .settings-body .settings-tree-container .setting-item-bool .setting-value-checkbox {


"vscode-debugprotocol": "1.10.0", "vscode-textmate": "2.0.1", "winreg": "1.2.0", <del> "xterm": "git+https://github.com/sourcelair/xterm.js.git#55fb5db", </del> <ins> "xterm": "git+https://github.com/sourcelair/xterm.js.git#5e662d0", </ins> "yauzl": "2.3.1" }, "devDependencies": {


} protected abstract _showTerminalCloseConfirmation(): TPromise<boolean>; <ins> protected abstract _showNotEnoughSpaceToast(): void; </ins> public abstract createTerminal(shell?: IShellLaunchConfig, wasNewTerminalAction?: boolean): ITerminalInstance; public abstract createTerminalRenderer(name: string): ITerminalInstance; public abstract createInstance(terminalFocusContextKey: IContextKey<boolean>, configHelper: ITerminalConfigHelper, container: HTMLElement, shellLaunchConfig: IShellLaunchConfig, doCreateProcess: boolean): ITerminalInstance;


accessor.get(IAccessibleViewService).next(); } } <ins> registerAction2(AccessibleViewNextAction); </ins> class AccessibleViewPreviousAction extends Action2 { static id: 'editor.action.accessibleViewPrevious'; constructor() { super({ <del> id: AccessibleViewPreviousAction.id, </del> <ins> id: 'editor.action.accessibleViewPrevious', </ins> precondition: accessibleViewIsShown, keybinding: { primary: KeyMod.Alt | KeyCode.BracketLeft,


}); }); <del> test('updateElementHeight with anchor #121723: focus element out of viewport', async function () { </del> <ins> test('updateElementHeight with no scrolling', async function () { config.setUserConfiguration(NotebookSetting.scrollToRevealCell, 'none'); await withTestNotebook( [ ['# header a', 'markdown', CellKind.Markup, [], {}], ['var b = 1;', 'javascript', CellKind.Code, [], {}], ['# header b', 'markdown', CellKind.Markup, [], {}], ['var b = 2;', 'javascript', CellKind.Code, [], {}], ['# header c', 'markdown', CellKind.Markup, [], {}] ], async (editor, viewModel, disposables) => { viewModel.restoreEditorViewState({ editingCells: [false, false, false, false, false], editorViewStates: [null, null, null, null, null], cellTotalHeights: [50, 100, 50, 100, 50], cellLineNumberStates: {}, collapsedInputCells: {}, collapsedOutputCells: {}, }); const cellList = createNotebookCellList(instantiationService, disposables); cellList.attachViewModel(viewModel); // render height 210, it can render 3 full cells and 1 partial cell cellList.layout(210, 100); // init scrollTop and scrollBottom assert.deepStrictEqual(cellList.scrollTop, 0); assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); // scroll to 5 cellList.updateElementHeight2(viewModel.cellAt(0)!, 50); cellList.scrollTop = 5; assert.deepStrictEqual(cellList.scrollTop, 5); assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); cellList.setFocus([1]); cellList.updateElementHeight2(viewModel.cellAt(0)!, 100); assert.deepStrictEqual(cellList.scrollHeight, 400); // Any change in cell size should not affect the scroll height with scrollToReveal set to none assert.deepStrictEqual(cellList.scrollTop, 5); cellList.updateElementHeight2(viewModel.cellAt(0)!, 50); assert.deepStrictEqual(cellList.scrollTop, 5); cellList.updateElementHeight2(viewModel.cellAt(0)!, 250); assert.deepStrictEqual(cellList.scrollTop, 5); }); }); test('updateElementHeight with no scroll setting and cell editor focused', async function () { config.setUserConfiguration(NotebookSetting.scrollToRevealCell, 'none'); await withTestNotebook( [ ['# header a', 'markdown', CellKind.Markup, [], {}], ['var b = 1;', 'javascript', CellKind.Code, [], {}], ['# header b', 'markdown', CellKind.Markup, [], {}], ['var b = 2;', 'javascript', CellKind.Code, [], {}], ['# header c', 'markdown', CellKind.Markup, [], {}] ], async (editor, viewModel, disposables) => { viewModel.restoreEditorViewState({ editingCells: [false, false, false, false, false], editorViewStates: [null, null, null, null, null], cellTotalHeights: [50, 100, 50, 100, 50], cellLineNumberStates: {}, collapsedInputCells: {}, collapsedOutputCells: {}, }); const cellList = createNotebookCellList(instantiationService, disposables); cellList.attachViewModel(viewModel); // render height 210, it can render 3 full cells and 1 partial cell cellList.layout(210, 100); // init scrollTop and scrollBottom assert.deepStrictEqual(cellList.scrollTop, 0); assert.deepStrictEqual(cellList.getViewScrollBottom(), 210); cellList.setFocus([1]); editor.focusNotebookCell(cellList.viewModel?.cellAt(1)!, 'editor'); cellList.updateElementHeight2(viewModel.cellAt(0)!, 100); assert.deepStrictEqual(cellList.scrollHeight, 400); // We have the cell editor focused, so we should anchor to that cell assert.deepStrictEqual(cellList.scrollTop, 50); cellList.updateElementHeight2(viewModel.cellAt(0)!, 50); assert.deepStrictEqual(cellList.scrollTop, 0); cellList.updateElementHeight2(viewModel.cellAt(0)!, 250); assert.deepStrictEqual(cellList.scrollTop, 250 + 100 - cellList.renderHeight); }); }); test('updateElementHeight with focused element out of viewport', async function () { </ins> await withTestNotebook( [ ['# header a', 'markdown', CellKind.Markup, [], {}],


} this.handlers.set(id, handler); <del> this.proxy.$registerProfileContentHandler(id, handler.name, extension.identifier.value); </del> <ins> this.proxy.$registerProfileContentHandler(id, handler.name, handler.description, extension.identifier.value); </ins> return toDisposable(() => { this.handlers.delete(id);


"@microsoft/1ds-post-js": "^3.2.13", "@vscode/iconv-lite-umd": "0.7.0", "@vscode/vscode-languagedetection": "1.0.21", <del> "@xterm/addon-canvas": "0.6.0-beta.16", "@xterm/addon-image": "0.7.0-beta.14", "@xterm/addon-search": "0.14.0-beta.16", "@xterm/addon-serialize": "0.12.0-beta.16", "@xterm/addon-unicode11": "0.7.0-beta.16", "@xterm/addon-webgl": "0.17.0-beta.16", "@xterm/xterm": "5.4.0-beta.16", </del> <ins> "@xterm/addon-canvas": "0.6.0-beta.17", "@xterm/addon-image": "0.7.0-beta.15", "@xterm/addon-search": "0.14.0-beta.17", "@xterm/addon-serialize": "0.12.0-beta.17", "@xterm/addon-unicode11": "0.7.0-beta.17", "@xterm/addon-webgl": "0.17.0-beta.17", "@xterm/xterm": "5.4.0-beta.17", </ins> "jschardet": "3.0.0", "tas-client-umd": "0.1.8", "vscode-oniguruma": "1.7.0",


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


] }, [TerminalSettingId.EnablePersistentSessions]: { <del> description: localize('terminal.integrated.enablePersistentSessions', "Persist terminal sessions for the workspace across window reloads."), </del> <ins> description: localize('terminal.integrated.enablePersistentSessions', "Persist terminal sessions/history for the workspace across window reloads."), </ins> type: 'boolean', default: true }, [TerminalSettingId.PersistentSessionReviveProcess]: { <del> markdownDescription: localize('terminal.integrated.persistentSessionReviveProcess', "When the terminal process must be shutdown (eg. on window or application close), this determines when the previous terminal session contents should be restored and processes be recreated when the workspace is next opened.nnCaveats:nn- Restoring of the process current working directory depends on whether it is supported by the shell.n- Time to persist the session during shutdown is limited, so it may be aborted when using high-latency remote connections."), </del> <ins> markdownDescription: localize('terminal.integrated.persistentSessionReviveProcess', "When the terminal process must be shutdown (eg. on window or application close), this determines when the previous terminal session contents/history should be restored and processes be recreated when the workspace is next opened.nnCaveats:nn- Restoring of the process current working directory depends on whether it is supported by the shell.n- Time to persist the session during shutdown is limited, so it may be aborted when using high-latency remote connections."), </ins> type: 'string', enum: ['onExit', 'onExitAndWindowClose', 'never'], markdownEnumDescriptions: [


} this._register(browser.onDidChangeZoomLevel(_ => this._recomputeOptions())); <ins> this._register(browser.onDidChangeEditorZoomLevel(_ => this._recomputeOptions())); </ins> } private _onReferenceDomElementSizeChanged(): void {


} const originalProfile = this.userDataProfileService.currentProfile; <del> await this.userDataProfileImportExportService.createTemporaryProfile(this.userDataProfileService.currentProfile, localize('troubleshoot issue', "Troubleshoot Issue"), true); </del> <ins> await this.userDataProfileImportExportService.createTroubleshootProfile(); </ins> this.state = new TroubleShootState(TroubleshootStage.EXTENSIONS, originalProfile.id); await this.resume(); }


return; } runAccessibilityHelpAction(accessor, codeEditor, 'panelChat'); <del> }, CONTEXT_IN_CHAT_INPUT)); </del> <ins> }, CONTEXT_IN_CHAT_SESSION)); </ins> } }


if (settingId !== this.currentColorTheme.settingsId) { await this.internalSetColorTheme(theme.id, undefined); } else if (theme !== this.currentColorTheme) { <ins> await theme.ensureLoaded(this.extensionResourceLoaderService); </ins> theme.setCustomizations(this.settings); await this.applyTheme(theme, undefined, true); }


this.toDispose.push(this.editor.onMouseDown((e: IEditorMouseEvent) => this.onEditorMouseDown(e))); this.toDispose.push(this.editor.onMouseMove((e: IEditorMouseEvent) => this.onEditorMouseMove(e))); this.toDispose.push(this.editor.onMouseLeave((e: IEditorMouseEvent) => { <ins> this.provideNonDebugHoverScheduler.cancel(); </ins> const hoverDomNode = this.hoverWidget.getDomNode(); if (!hoverDomNode) { return;


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.4: version "25.8.4" resolved "https://registry.yarnpkg.com/electron/-/electron-25.8.4.tgz#b50877aac7d96323920437baf309ad86382cb455" integrity sha512-hUYS3RGdaa6E1UWnzeGnsdsBYOggwMMg4WGxNGvAoWtmRrr6J1BsjFW/yRq4WsJHJce2HdzQXtz4OGXV6yUCLg== </del> <ins> electron@25.9.1: version "25.9.1" resolved "https://registry.yarnpkg.com/electron/-/electron-25.9.1.tgz#cc4baecbebe346b050b9cf9db9882d3d00fc4abd" integrity sha512-Uo/Fh7igjoUXA/f90iTATZJesQEArVL1uLA672JefNWTLymdKSZkJKiCciu/Xnd0TS6qvdIOUGuJFSTQnKskXQ== </ins> dependencies: "@electron/get" "^2.0.0" "@types/node" "^18.11.18"


"config.inputValidation": "Controls when to show commit message input validation.", "config.detectSubmodules": "Controls whether to automatically detect git submodules.", "config.detectSubmodulesLimit": "Controls the limit of git submodules detected.", <ins> "config.alwaysSignOff": "Controls the signoff flag for all commits", </ins> "colors.modified": "Color for modified resources.", "colors.deleted": "Color for deleted resources.", "colors.untracked": "Color for untracked resources.",


private _updateTabActionBar(profiles: ITerminalProfile[]): void { const actions = getTerminalActionBarArgs(TerminalLocation.Panel, profiles, this._getDefaultProfileName(), this._terminalProfileService.contributedProfiles, this._terminalService, this._dropdownMenu); <ins> this._registerDisposableActions(actions.dropdownAction, actions.dropdownMenuActions); </ins> this._newDropdown?.update(actions.dropdownAction, actions.dropdownMenuActions); }


const newCellListHeight = Math.max(newBodyHeight - topInserToolbarHeight, 0); if (this._list.getRenderHeight() < newCellListHeight) { // the new dimension is larger than the list viewport, update its additional height first, otherwise the list view will move down a bit (as the `scrollBottom` will move down) <del> this._list.updateOptions({ additionalScrollHeight: this._allowScrollBeyondLastLine() ? Math.max(0, (newCellListHeight - 50)) : topInserToolbarHeight, overrideStyles: this._listStyleOverride }); </del> <ins> this._list.updateOptions({ additionalScrollHeight: this._allowScrollBeyondLastLine() ? Math.max(0, (newCellListHeight - 50)) : topInserToolbarHeight }); </ins> this._list.layout(newCellListHeight, dimension.width); } else { // the new dimension is smaller than the list viewport, if we update the additional height, the `scrollBottom` will move up, which moves the whole list view upwards a bit. So we run a layout first. this._list.layout(newCellListHeight, dimension.width); <del> this._list.updateOptions({ additionalScrollHeight: this._allowScrollBeyondLastLine() ? Math.max(0, (newCellListHeight - 50)) : topInserToolbarHeight, overrideStyles: this._listStyleOverride }); </del> <ins> this._list.updateOptions({ additionalScrollHeight: this._allowScrollBeyondLastLine() ? Math.max(0, (newCellListHeight - 50)) : topInserToolbarHeight }); </ins> } this._overlayContainer.style.visibility = 'visible';


if (action instanceof MenuItemAction) { const location = { viewColumn: ACTIVE_GROUP }; const actions = getTerminalActionBarArgs(location, this._terminalProfileService.availableProfiles, this._getDefaultProfileName(), this._terminalProfileService.contributedProfiles, this._terminalService, this._dropdownMenu); <ins> this._registerDisposableActions(actions.dropdownAction, actions.dropdownMenuActions); </ins> const button = this._instantiationService.createInstance(DropdownWithPrimaryActionViewItem, action, actions.dropdownAction, actions.dropdownMenuActions, actions.className, this._contextMenuService, { hoverDelegate: options.hoverDelegate }); return button; }


} public show(top: number, newContent: string | undefined, metadata: NotebookCellMetadata | undefined): void { <del> this.element.style.visibility = 'visible'; </del> <ins> this.element.style.visibility = ''; </ins> this.element.style.top = `${top}px`; if (typeof newContent === 'string' || metadata) { this.updateContentAndRender(newContent ?? this._content.value, metadata ?? this._content.metadata);


"dependencies": { "@vscode/extension-telemetry": "0.5.1", "request-light": "^0.5.8", <del> "vscode-languageclient": "^8.0.1", </del> <ins> "vscode-languageclient": "^8.0.2-next.4", </ins> "vscode-nls": "^5.0.1" }, "devDependencies": {


result.edits.push(<languages.IWorkspaceFileEdit>{ oldResource: entry.from, newResource: entry.to, <del> options: entry.options, </del> <ins> options: { ...entry.options, contentsBase64: entry.options?.contents && encodeBase64(VSBuffer.wrap(entry.options.contents)) }, </ins> metadata: entry.metadata });


showMethods: true, showFunctions: true, showConstructors: true, <ins> showDeprecated: true, </ins> showFields: true, showVariables: true, showClasses: true,


}); test('fuzzyScore2 (matching)', function () { <del> const target = 'HeLlo-World'; </del> <ins> const target = 'HelLo-World'; </ins> for (const offset of [0, 3]) { <del> let [score, matches] = _doScore2(offset === 0 ? target : `123${target}`, 'HeLlo-World', offset); </del> <ins> let [score, matches] = _doScore2(offset === 0 ? target : `123${target}`, 'HelLo-World', offset); </ins> assert.ok(score); assert.strictEqual(matches.length, 1);


setCompositeBarItems(items: ICompositeBarItem[]): void { this.model.setItems(items); <del> this.updateCompositeSwitcher(); </del> <ins> this.updateCompositeSwitcher(true); </ins> } getPinnedComposites(): ICompositeBarItem[] {


//#endregion //#region Task <del> /** * Controls how the task is presented in the UI. */ export interface TaskPresentationOptions { /** * Controls whether the terminal is cleared before executing the task. */ clear?: boolean; } </del> export enum RerunBehavior { reevaluate = 1, useEvaluated = 2,


"textCodeBlock.background": "#F8F8F8", "textLink.activeForeground": "#005FB8", "textLink.foreground": "#005FB8", <del> "textPreformat.foreground": "#3B3B3B", </del> <ins> "textPreformat.foreground": "#A31515", </ins> "textPreformat.background":	"#0000001F", "textSeparator.foreground": "#21262D", "titleBar.activeBackground": "#F8F8F8",


} const { result } = await this.dialogService.prompt<ImportProfileChoice>({ type: Severity.Info, <del> message: localize('profile already exists', "Profile with name '{0}' already exists. Do you want to overwrite it?", profileTemplate.name), </del> <ins> message: localize('profile already exists', "Profile with name '{0}' already exists. Do you want to overwrite it?", profileName), </ins> buttons: [ { label: localize({ key: 'overwrite', comment: ['&& denotes a mnemonic'] }, "&&Overwrite"),


private _removeCellDecoration(decorationId: string) { const options = this._resolvedCellDecorations.get(decorationId); <ins> this._resolvedCellDecorations.delete(decorationId); </ins> if (options) { <ins> for (const existingOptions of this._resolvedCellDecorations.values()) { // don't remove decorations that are applied from other entries if (options.className === existingOptions.className) { options.className = undefined; } if (options.outputClassName === existingOptions.outputClassName) { options.outputClassName = undefined; } if (options.gutterClassName === existingOptions.gutterClassName) { options.gutterClassName = undefined; } if (options.topClassName === existingOptions.topClassName) { options.topClassName = undefined; } } </ins> this._cellDecorationsChanged.fire({ added: [], removed: [options] }); <del> this._resolvedCellDecorations.delete(decorationId); </del> } }


} private _isDisposed = false; <ins> private _isReadonly = false; </ins> constructor( readonly viewType: string,


} } }); <ins> this.threads.forEach(t => { // Remove all old threads which are no longer part of the update #75980 if (threadIds.indexOf(t.threadId) === -1) { this.threads.delete(t.threadId); } }); </ins> const stoppedDetails = data.stoppedDetails; if (stoppedDetails) {


}, "autoCloseBefore": ";:.,={}])>` nt$", "wordPattern": { <del> "pattern": "(p{Alphabetic}|p{Number}|p{Nonspacing_Mark}){2,}", </del> <ins> "pattern": "(p{Alphabetic}|p{Number}|p{Nonspacing_Mark}){1,}", </ins> "flags": "u" } }


return ancestor; } <del> // TODO@lszomoru - Return first commit </del> <ins> // First commit const commits = await this.repository.log({ maxParents: 0, refNames: ['HEAD'] }); if (commits.length > 0) { return commits[0].hash; } </ins> } else if (historyItemGroupIds.length > 1) { const ancestor = await this.repository.getMergeBase(historyItemGroupIds[0], historyItemGroupIds[1], ...historyItemGroupIds.slice(2)); return ancestor;


} model.setLanguage(provider.options.language ?? 'markdown'); container.appendChild(this._editorContainer); <del> let ariaLabel = undefined; const label = provider.options.ariaLabel; const navigationHint = this._getNavigationAriaHint(provider.verbositySettingKey); const disableHint = this._getDisableVerbosityHint(provider.verbositySettingKey); if (label && navigationHint && disableHint) { ariaLabel = localize('ariaLabelAll', '{0}, {1}, {2}', label, navigationHint, disableHint); } else if (label && navigationHint) { ariaLabel = localize('ariaLabelLabelNavigation', '{0}, {1}', label, navigationHint); } else if (label && disableHint) { ariaLabel = localize('ariaLabelLabelDisable', '{0}, {1}', label, disableHint); } else if (navigationHint && disableHint) { ariaLabel = localize('ariaLabelNavigationDisable', '{0}, {1}', navigationHint, disableHint); </del> <ins> let ariaLabel = ''; let helpHint = ''; if (this._configurationService.getValue(provider.verbositySettingKey) && provider.options.type !== 'help') { const accessibilityHelpKeybinding = this._keybindingService.lookupKeybinding('editor.action.accessibilityHelp')?.getLabel(); if (accessibilityHelpKeybinding) { helpHint = localize('ariaAccessibilityHelp', "Use {0} for accessibility help", accessibilityHelpKeybinding); } } if (helpHint) { ariaLabel = provider.options.ariaLabel ? localize('helpAriaKb', "{0}, {1}", provider.options.ariaLabel, helpHint) : localize('accessible-view', "Accessible View, {0}", helpHint); } else { ariaLabel = provider.options.ariaLabel ? provider.options.ariaLabel : localize('helpAriaNoKb', "Accessible View"); </ins> } this._editorWidget.updateOptions({ ariaLabel }); this._editorWidget.focus();


"engines": { "vscode": "0.10.x" }, <del> "categories": [ </del> <ins> "categories": [ </ins> "Other" ], "activationEvents": [


}); } <del> public setWidgetManager(widgetManager: TerminalWidgetManager) { </del> <ins> public setWidgetManager(widgetManager: TerminalWidgetManager): void { </ins> this._widgetManager = widgetManager; }


sbomBuildDropPath: $(Agent.BuildDirectory)/vscode-server-win32-$(VSCODE_ARCH)-web sbomPackageName: "VS Code Windows $(VSCODE_ARCH) Web" sbomPackageVersion: $(Build.SourceVersion) <del> condition: and(succeededOrFailed(), ne(variables['WEB_PATH'], ''), ne(variables['VSCODE_ARCH'], 'arm64')) </del> <ins> condition: and(succeededOrFailed(), ne(variables['WEB_PATH'], '')) </ins> displayName: Publish web server archive - task: 1ES.PublishPipelineArtifact@1


get contentHeight(): number { const data = { followUpsHeight: getTotalHeight(this._elements.followUps), <del> chatWidgetHeight: this._chatWidget.contentHeight, </del> <ins> chatWidgetContentHeight: this._chatWidget.contentHeight, </ins> progressHeight: getTotalHeight(this._elements.progress), statusHeight: getTotalHeight(this._elements.status), extraHeight: this._getExtraHeight() }; <del> const result = data.progressHeight + data.chatWidgetHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; // console.log(`InlineChat#contentHeight ${result}`, data); </del> <ins> const result = data.progressHeight + data.chatWidgetContentHeight + data.followUpsHeight + data.statusHeight + data.extraHeight; </ins> return result; } <ins> get minHeight(): number { // The chat widget is variable height and supports scrolling. It // should be at least 100px high and at most the content height. let value = this.contentHeight; value -= this._chatWidget.contentHeight; value += Math.min(100, this._chatWidget.contentHeight); return value; } </ins> protected _getExtraHeight(): number { return 12 /* padding */ + 2 /*border*/ + 12 /*shadow*/; }


import { DebugAdapterExecutable, DebugAdapterNamedPipeServer, DebugAdapterServer, ThemeIcon } from '../common/extHostTypes.js'; import { IExtHostVariableResolverProvider } from '../common/extHostVariableResolverService.js'; import { IExtHostWorkspace } from '../common/extHostWorkspace.js'; <ins> import { IExtHostTerminalShellIntegration } from '../common/extHostTerminalShellIntegration.js'; </ins> export class ExtHostDebugService extends ExtHostDebugServiceBase {


import * as viewEvents from 'vs/editor/common/view/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorIndentGuides } from 'vs/editor/common/view/editorColorRegistry'; <del> import * as dom from 'vs/base/browser/dom'; </del> import { Position } from 'vs/editor/common/core/position'; export class IndentGuidesOverlay extends DynamicViewOverlay {


"default": false, "description": "%config.rebaseWhenSync%" }, <del> "git.fetchBeforeCheckout": { </del> <ins> "git.pullBeforeCheckout": { </ins> "type": "boolean", "scope": "resource", "default": false, <del> "description": "%config.fetchBeforeCheckout%" </del> <ins> "description": "%config.pullBeforeCheckout%" </ins> }, "git.fetchOnPull": { "type": "boolean",


return this._validationMessage; } <del> set validationMessage(validationMessage: string | undefined) { </del> <ins> set validationMessage(validationMessage: string | InputBoxValidationMessage | undefined) { </ins> this._validationMessage = validationMessage; <del> this.update({ validationMessage, severity: validationMessage ? Severity.Error : Severity.Ignore }); } get validationMessage2() { return this._validationMessage2; } set validationMessage2(validationMessage: string | InputBoxValidationMessage | undefined) { checkProposedApiEnabled(this.extension, 'inputBoxSeverity'); this._validationMessage2 = validationMessage; </del> if (!validationMessage) { this.update({ validationMessage: undefined, severity: Severity.Ignore }); } else if (typeof validationMessage === 'string') {


*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { URI } from '../../../../base/common/uri.js'; </del> <ins> import { Dimension } from '../../../../base/browser/dom.js'; </ins> import { DisposableStore, IReference } from '../../../../base/common/lifecycle.js'; <del> import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; import { marked, Tokens } from '../../../../base/common/marked/marked.js'; </del> <ins> import * as marked from '../../../../base/common/marked/marked.js'; import { Schemas } from '../../../../base/common/network.js'; </ins> import { isEqual } from '../../../../base/common/resources.js'; <del> import { moduleToContent } from '../common/walkThroughContentProvider.js'; import { Dimension } from '../../../../base/browser/dom.js'; import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; </del> <ins> import { URI } from '../../../../base/common/uri.js'; import { ITextEditorModel, ITextModelService } from '../../../../editor/common/services/resolverService.js'; </ins> import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js'; <del> import { Schemas } from '../../../../base/common/network.js'; </del> <ins> import { EditorInputCapabilities, IUntypedEditorInput } from '../../../common/editor.js'; import { EditorInput } from '../../../common/editor/editorInput.js'; import { EditorModel } from '../../../common/editor/editorModel.js'; import { markedGfmHeadingIdPlugin } from '../../markdown/browser/markedGfmHeadingIdPlugin.js'; import { moduleToContent } from '../common/walkThroughContentProvider.js'; </ins> class WalkThroughModel extends EditorModel {


import { AccessibilitySupport, IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { TabFocus, TabFocusContext } from 'vs/editor/browser/config/tabFocus'; <ins> import { accessibilityHelpIsShown } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; </ins> const CONTEXT_ACCESSIBILITY_WIDGET_VISIBLE = new RawContextKey<boolean>('accessibilityHelpWidgetVisible', false);


const actionsElement = $('div.actions'); this._actions.forEach(action => this._renderAction(actionsElement, action)); statusBarElement.appendChild(actionsElement); <del> this._domNode.appendChild(statusBarElement); </del> <ins> this._containerDomNode.appendChild(statusBarElement); </ins> } this._mouseTracker = new CompositeMouseTracker([this._containerDomNode, ..._target.targetElements]);


return this.editorService.openEditor({ resource: this.defaultSettingsRawResource }, EditorPosition.ONE) as TPromise<any>; } <ins> openRawUserSettings(): TPromise<void> { return this.editorService.openEditor({ resource: this.userSettingsResource }) as TPromise<any>; } </ins> openSettings(): TPromise<IEditor> { const editorInput = this.getActiveSettingsEditorInput() || this.lastOpenedSettingsInput; const resource = editorInput ? editorInput.master.getResource() : this.userSettingsResource;


editorMargin: 0, metadataHeight: 0, cellStatusHeight, <del> metadataStatusHeight: 25, </del> <ins> metadataStatusHeight: this.ignoreMetadata ? 0 : 25, </ins> rawOutputHeight: 0, outputTotalHeight: 0, <del> outputStatusHeight: 25, </del> <ins> outputStatusHeight: this.ignoreOutputs ? 0 : 25, </ins> outputMetadataHeight: 0, bodyMargin: 32, totalHeight: 82 + cellStatusHeight + editorHeight,


window.localStorage.removeItem(WebLocaleService._LOCAL_STORAGE_LOCALE_KEY); window.localStorage.removeItem(WebLocaleService._LOCAL_STORAGE_EXTENSION_ID_KEY); <del> if (Language.value() === navigator.language) { </del> <ins> if (Language.value() === navigator.language.toLowerCase()) { </ins> return; }


picker.items = makeSnippetPicks(); }); picker.items = makeSnippetPicks(); <ins> if (!picker.items.length) { picker.validationMessage = nls.localize('pick.noSnippetAvailable', "No snippet available"); } </ins> picker.show(); // wait for an item to be picked or the picker to become hidden


this.updateActions(); if (!shouldShowFilterInHeader) { append(this.filterContainer!, this.filterWidget.element); <del> height = height - 44; </del> } } <ins> if (!shouldShowFilterInHeader) { height = height - 44; } </ins> this.filterWidget.layout(width); this.layoutBodyContent(height, width); }


cursors.setStates( args.source, CursorChangeReason.Explicit, <del> CursorMoveCommands.addCursorUp(context, cursors.getAll()) </del> <ins> CursorMoveCommands.addCursorUp(context, cursors.getAll(), useLogicalLine) </ins> ); cursors.reveal(true, RevealTarget.TopMost, ScrollType.Smooth); } } export class InsertCursorBelow extends EditorAction { constructor() { super({ id: 'editor.action.insertCursorBelow',


bugsUrl: manifest.bugs && manifest.bugs.url, displayName: manifest.displayName, id: extension.identifier.id, <del> isTheme: isTheme </del> <ins> isTheme, isBuiltin, </ins> }; }); const theme = this.themeService.getColorTheme(); const issueReporterData: IssueReporterData = assign({ styles: getIssueReporterStyles(theme), zoomLevel: webFrame.getZoomLevel(), <del> enabledExtensions: extensionData </del> <ins> enabledExtensions: extensionData, </ins> }, dataOverrides); return this.issueService.openReporter(issueReporterData); }


category, keybinding: { weight: KeybindingWeight.WorkbenchContrib, <del> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, Constants.FirstMatchFocusKey), </del> <ins> when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, ContextKeyExpr.or(Constants.FirstMatchFocusKey, CONTEXT_ACCESSIBILITY_MODE_ENABLED)), </ins> primary: KeyMod.CtrlCmd | KeyCode.UpArrow, }, });


import { CancellationToken } from 'vs/base/common/cancellation'; import { isUNC } from 'vs/base/common/extpath'; import { Schemas } from 'vs/base/common/network'; <del> import { sep } from 'vs/base/common/path'; </del> <ins> import { normalize, sep } from 'vs/base/common/path'; </ins> import { URI } from 'vs/base/common/uri'; import { FileOperationError, FileOperationResult, IFileService } from 'vs/platform/files/common/files'; import { ILogService } from 'vs/platform/log/common/log';


[deltaY, deltaX] = [deltaX, deltaY]; } <del> if (this._options.scrollYToX && !deltaX) { </del> <ins> // Convert vertical scrolling to horizontal if shift is held, this // is handled at a higher level on Mac const shiftConvert = !Platform.isMacintosh && e.browserEvent.shiftKey; if ((this._options.scrollYToX || shiftConvert) && !deltaX) { </ins> deltaX = deltaY; deltaY = 0; }


import { IPagedRenderer } from 'vs/base/browser/ui/list/listPaging'; import { Event } from 'vs/base/common/event'; import { IExtension, ExtensionContainers, ExtensionState, IExtensionsWorkbenchService } from 'vs/workbench/contrib/extensions/common/extensions'; <del> import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; </del> <ins> import { UpdateAction, ManageExtensionAction, ReloadAction, ExtensionStatusLabelAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction, MigrateDeprecatedExtension } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; </ins> import { areSameExtensions } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { RatingsWidget, InstallCountWidget, RecommendationWidget, RemoteBadgeWidget, ExtensionPackCountWidget as ExtensionPackBadgeWidget, SyncIgnoredWidget, ExtensionHoverWidget, ExtensionActivationStatusWidget, PreReleaseBookmarkWidget, extensionVerifiedPublisherIconColor } from 'vs/workbench/contrib/extensions/browser/extensionsWidgets'; import { IExtensionService, toExtension } from 'vs/workbench/services/extensions/common/extensions';


return TPromise.as(true); } <del> } </del>  No newline at end of file <ins> } </ins>


// Avoid adding cache busting if there is already a query string if (resource.query) { <del> return webviewEditor.webview.asWebviewUri(resource).toString(true); </del> <ins> return webviewEditor.webview.asWebviewUri(resource).toString(); </ins> } <del> return webviewEditor.webview.asWebviewUri(resource).with({ query: `version=${version}` }).toString(true); </del> <ins> return webviewEditor.webview.asWebviewUri(resource).with({ query: `version=${version}` }).toString(); </ins> } private extensionResource(path: string) {


import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleWholeWordKeybinding } from 'vs/editor/contrib/find/browser/findModel'; import { category, getSearchView, openSearchView } from 'vs/workbench/contrib/search/browser/searchActionsBase'; <ins> import { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from 'vs/platform/accessibility/common/accessibility'; </ins> //#region Actions: Changing Search Input Options registerAction2(class ToggleQueryDetailsAction extends Action2 {


this.inSelectionToggle = this._register(new Toggle({ icon: findSelectionIcon, <del> title: NLS_FIND_IN_CELL_SELECTION_BTN_LABEL, </del> <ins> title: NLS_TOGGLE_SELECTION_FIND_TITLE, </ins> isChecked: false, inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground), inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),


"An existing tunnel is running on this machine, connecting to it..." ); <del> let stdin_handle = rpc.get_caller(msg_tx.clone()); thread::spawn(move || { let mut input = String::new(); loop { input.truncate(0); match std::io::stdin().read_line(&mut input) { Err(_) | Ok(0) => return, // EOF or not a tty _ => {} }; match input.chars().next().map(|c| c.to_ascii_lowercase()) { Some('x') => { stdin_handle.notify(protocol::singleton::METHOD_SHUTDOWN, EmptyObject {}); return; </del> <ins> if *IS_INTERACTIVE_CLI { let stdin_handle = rpc.get_caller(msg_tx.clone()); thread::spawn(move || { let mut input = String::new(); loop { input.truncate(0); println!("reading line"); match std::io::stdin().read_line(&mut input) { Err(_) | Ok(0) => return, // EOF or not a tty _ => {} }; match input.chars().next().map(|c| c.to_ascii_lowercase()) { Some('x') => { stdin_handle.notify(protocol::singleton::METHOD_SHUTDOWN, EmptyObject {}); return; } Some('r') => { stdin_handle.notify(protocol::singleton::METHOD_RESTART, EmptyObject {}); } Some(_) | None => {} </ins> } <del> Some('r') => { stdin_handle.notify(protocol::singleton::METHOD_RESTART, EmptyObject {}); } Some(_) | None => {} </del> } <del> } }); </del> <ins> }); } </ins> let caller = rpc.get_caller(msg_tx); let mut rpc = rpc.methods(SingletonServerContext {


import { LinkDetector } from 'vs/editor/contrib/links/browser/links'; import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; <ins> import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; </ins> import { IContextViewDelegate, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IOpenerService } from 'vs/platform/opener/common/opener';


this._last = null; } <ins> public length(): number { let result = 0; let current = this._first; while (current) { current = current.next; result++; } return result; } </ins> public peek(): T | null { if (!this._first) { return null;


extHostContext: IExtHostContext, @IStorageService storageService: IStorageService, @IExtensionsStorageSyncService extensionsStorageSyncService: IExtensionsStorageSyncService, <ins> @ILogService private readonly _logService: ILogService </ins> ) { this._storageService = storageService; this._extensionsStorageSyncService = extensionsStorageSyncService;


>> And, they can be nested 1. A numbered list <ins> > Block quotes in list </ins> 2. Which is numbered 3. With periods and a space


override async run(accessor: ServicesAccessor, match: RenderableMatch | undefined): Promise<any> { const quickInputService = accessor.get(IQuickInputService); const searchText = getSearchText(accessor) ?? ''; <del> quickInputService.quickAccess.show(TEXT_SEARCH_QUICK_ACCESS_PREFIX + searchText); </del> <ins> quickInputService.quickAccess.show(TEXT_SEARCH_QUICK_ACCESS_PREFIX + searchText, { preserveValue: !!searchText }); </ins> } });


DOM.addStandardDisposableListener(inputBox.inputElement, DOM.EventType.KEY_DOWN, (e: IKeyboardEvent) => { if (e.equals(KeyCode.Enter)) { if (inputBox.validate()) { <del> done(true); </del> <ins> done(true, true); </ins> } } else if (e.equals(KeyCode.Escape)) { <del> done(false); </del> <ins> done(false, true); </ins> } }), blurDisposable,


const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); const NLS_FIND_INPUT_" = nls.localize('placeholder.find', "Find"); const NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', "Previous Match"); <del> // const NLS_FILTER_BTN_LABEL = nls.localize('label.findFilterButton', "Search in View"); </del> const NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', "Next Match"); <del> const NLS_FIND_IN_CELL_SELECTION_BTN_LABEL = nls.localize('label.findInCellSelectionButton', "Find in Cell Selection"); </del> <ins> const NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', "Find in Selection"); </ins> const NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', "Close"); const NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', "Toggle Replace"); const NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', "Replace");


import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; export class InsertCursorAbove extends EditorAction { constructor() { super({ id: 'editor.action.insertCursorAbove',


} } for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } if (env) { command += '"';


const wrapper = this.wrapper = dom.$('.testing-filter-wrapper'); container.appendChild(wrapper); <ins> const history = this.history.get([]); if (history.length) { this.state.setText(history[history.length - 1]); } </ins> const input = this.input = this._register(this.instantiationService.createInstance(ContextScopedSuggestEnabledInputWithHistory, { id: 'testing.explorer.filter', ariaLabel: localize('testExplorerFilterLabel', "Filter text for tests in the explorer"),


* provides access to the raw data stream from the process running within the terminal, * including VT sequences. */ <del> onData: Event<string>; </del> <ins> onDidWriteData: Event<string>; </ins> } /**


await this.model.pull(true); } <ins> @command('git.pullFrom') async pullFrom(): Promise<void> { const remotes = this.model.remotes; if (remotes.length === 0) { window.showWarningMessage(localize('no remotes to pull', "Your repository has no remotes configured to pull from.")); return; } const picks = remotes.map(r => ({ label: r.name, description: r.url })); const placeHolder = localize('pick remote pull', "Pick a remote to pull from"); const pickRemote = await window.showQuickPick(picks, { placeHolder }); const pickBranch = await window.showInputBox({ prompt: localize('pick pull branch', "Type a branch to pull"), ignoreFocusOut: true }); if (!pickRemote || !pickBranch) { return; } this.model.pull(false, pickRemote.label, pickBranch); } </ins> @command('git.push') async push(): Promise<void> { const remotes = this.model.remotes;


}).then(res => !res.confirmed); } <ins> protected _showNotEnoughSpaceToast(): void { this._notificationService.warn(nls.localize('terminal.minWidth', "Not enough space to split terminal.")); } </ins> public setContainers(panelContainer: HTMLElement, terminalContainer: HTMLElement): void { this._configHelper.panelContainer = panelContainer; this._terminalContainer = terminalContainer;


} } <del> async pull(rebase?: boolean): Promise<void> { </del> <ins> async pull(rebase?: boolean, remote?: string, branch?: string): Promise<void> { </ins> const args = ['pull']; if (rebase) { args.push('-r'); } <ins> if (remote && branch) { args.push(remote, branch); } </ins> try { await this.run(args);


/** * Sanitizes the given `value` and reset the given `node` with it. */ <del> export function safeInnerHtml(node: HTMLElement, value: string): void { </del> <ins> export function safeInnerHtml(node: HTMLElement, value: string, extraDomPurifyConfig?: dompurify.Config): void { </ins> const hook = hookDomPurifyHrefAndSrcSanitizer(defaultSafeProtocols); try { <del> const html = dompurify.sanitize(value, defaultDomPurifyConfig); </del> <ins> const html = dompurify.sanitize(value, { ...defaultDomPurifyConfig, ...extraDomPurifyConfig }); </ins> node.innerHTML = html as unknown as string; } finally { hook.dispose();


if (activeEditor) { groupActiveEditorCanSplitInGroupContext.set(activeEditor.hasCapability(EditorInputCapabilities.CanSplitInGroup)); <del> sideBySideEditorContext.set(activeEditor.typeId === SideBySideEditorInput.ID); </del> <ins> groupActiveEditorIsSideBySideEditorContext.set(activeEditor.typeId === SideBySideEditorInput.ID); </ins> groupActiveEditorDirtyContext.set(activeEditor.isDirty() && !activeEditor.isSaving()); activeEditorListener.value = activeEditor.onDidChangeDirty(() => {


quickPick.show(); quickPick.onDidAccept(() => { this._accessibleView.showSymbol(provider, quickPick.selectedItems[0]); <ins> quickPick.hide(); </ins> }); quickPick.onDidHide(() => { if (quickPick.selectedItems.length === 0) {


const characterLinesVisibleRanges = this._visibleRangeProvider.linesVisibleRangesForRange(characterViewRange, true) ?? []; const characterVerticalOffset = this._context.viewLayout.getVerticalOffsetForLineNumber(characterViewRange.startLineNumber); const editorScrollTop = this._context.viewLayout.getCurrentScrollTop(); <ins> const editorScrollLeft = this._context.viewLayout.getCurrentScrollLeft(); </ins> const top = parentBounds.top + characterVerticalOffset - editorScrollTop; let left = 0;


this.instantiationService.createInstance(InstallingLabelAction), this.instantiationService.createInstance(ActionWithDropDownAction, 'extensions.uninstall', UninstallAction.UninstallLabel, [ [ <ins> this.instantiationService.createInstance(MigrateDeprecatedExtension, false), </ins> this.instantiationService.createInstance(UninstallAction), this.instantiationService.createInstance(InstallAnotherVersionAction), ]


"tas-client-umd": "0.1.4", "vscode-oniguruma": "1.6.1", "vscode-textmate": "7.0.1", <del> "xterm": "4.19.0-beta.24", "xterm-addon-search": "0.9.0-beta.21", </del> <ins> "xterm": "4.19.0-beta.25", "xterm-addon-search": "0.9.0-beta.22", </ins> "xterm-addon-unicode11": "0.4.0-beta.3", <del> "xterm-addon-webgl": "0.12.0-beta.28" </del> <ins> "xterm-addon-webgl": "0.12.0-beta.29" </ins> } }


} layout(maxHeight?: number): void { <del> this.list.getHTMLElement().style.maxHeight = maxHeight ? `calc(${Math.floor(maxHeight / 44) * 44}px)` : ''; </del> <ins> this.list.getHTMLElement().style.maxHeight = maxHeight ? `${ // Make sure height aligns with list item heights Math.floor(maxHeight / 44) * 44 // Add some extra height so that it's clear there's more to scroll + 6 }px` : ''; </ins> this.list.layout(); }


export const suggestMemoryService = define(ISuggestMemoryService, (o) => new SuggestMemoryService(storageService.get(o), configurationService.get(o))); <ins> export const codeLensCacheService = define(ICodeLensCache, (o) => new CodeLensCache(storageService.get(o))); </ins> } export class DynamicStandaloneServices extends Disposable {


} // Workspace trust <del> if (typeof config?.security?.workspace?.trust?.enabled === 'boolean' && config.security?.workspace.trust.enabled !== this.workspaceTrustEnabled) { this.workspaceTrustEnabled = config.security.workspace.trust.enabled; changed = true; } </del> <ins> processChanged(this.workspaceTrustEnabled.handleChange(config?.security?.workspace?.trust?.enabled)); </ins> } // Profiles <del> if (this.productService.quality === 'stable' && typeof config.workbench?.experimental?.settingsProfiles?.enabled === 'boolean' && config.workbench.experimental.settingsProfiles.enabled !== this.settingsProfilesEnabled) { this.settingsProfilesEnabled = config.workbench.experimental.settingsProfiles.enabled; changed = true; } </del> <ins> processChanged(this.productService.quality === 'stable' && this.settingsProfilesEnabled.handleChange(config.workbench?.experimental?.settingsProfiles?.enabled)); </ins> // Experiments <del> if (typeof config.workbench?.enableExperiments === 'boolean' && config.workbench.enableExperiments !== this.experimentsEnabled) { this.experimentsEnabled = config.workbench.enableExperiments; changed = true; } </del> <ins> processChanged(this.experimentsEnabled.handleChange(config.workbench?.enableExperiments)); </ins> // Profiles <del> if (this.productService.quality !== 'stable' && typeof config._extensionsGallery?.enablePPE === 'boolean' && config._extensionsGallery?.enablePPE !== this.enablePPEExtensionsGallery) { this.enablePPEExtensionsGallery = config._extensionsGallery?.enablePPE; changed = true; } </del> <ins> processChanged(this.productService.quality !== 'stable' && this.enablePPEExtensionsGallery.handleChange(config._extensionsGallery?.enablePPE)); </ins> // Notify only when changed and we are the focused window (avoids notification spam across windows) if (notify && changed) {


this.toDispose.push(this.editor.onDidChangeModelContent(() => this.update())); this.toDispose.push(this.inlineChatService.onDidChangeProviders(() => this.update())); this.toDispose.push(this.editor.onDidChangeModelDecorations(() => this.update())); <ins> this.toDispose.push(this.editor.onDidChangeConfiguration((e: ConfigurationChangedEvent) => { if (e.hasChanged(EditorOption.readOnly)) { this.update(); } })); </ins> this.toDispose.push(this.configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration(emptyTextEditorHintSetting)) { this.update();


scrollbar: { alwaysConsumeMouseWheel: false }, <del> ariaLabel: this._configurationService.getValue(AccessibilityVerbositySettingId.Chat) ? localize('chat.codeBlockHelp', 'Code block, to discover ways this can be interacted with, search the command palette for Chat: Insert and Chat: Run.') : localize('chat.codeBlock', 'Code block'), </del> <ins> ariaLabel: localize('chat.codeBlockHelp', 'Code block'), </ins> ...this.getEditorOptionsFromConfig() }, { isSimpleWidget: true,


"dependencies": { "vscode-css-languageservice": "^6.0.1", "vscode-html-languageservice": "^5.0.0", <del> "vscode-languageserver": "^8.0.1", </del> <ins> "vscode-languageserver": "^8.0.2-next.4", </ins> "vscode-languageserver-textdocument": "^1.0.4", "vscode-nls": "^5.0.1", "vscode-uri": "^3.0.3"


vertical-align: middle; } <del> .monaco-workbench .part.editor > .content .editor-group-container > .editor-group-watermark > .shortcuts dt, .monaco-workbench .part.editor > .content .editor-group-container > .editor-group-watermark > .shortcuts dl { color: rgba(0,0,0,.68); } .monaco-workbench.vs-dark .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt, .monaco-workbench.vs-dark .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl { color: rgba(255,255,255,.6); } .monaco-workbench.hc-black .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt, .monaco-workbench.hc-light .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dt { color: var(--vscode-editor-foreground); } .monaco-workbench.hc-black .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl, .monaco-workbench.hc-light .part.editor > .content .editor-group-container .editor-group-watermark > .shortcuts dl { color: var(--vscode-editor-foreground); opacity: 1; } </del> /* Title */ .monaco-workbench .part.editor > .content .editor-group-container > .title {


import electron = require('electron'); import platform = require('vs/base/common/platform'); import env = require('vs/workbench/electron-main/env'); <del> import storage = require('vs/workbench/electron-main/storage'); </del> import settings = require('vs/workbench/electron-main/settings'); import {Win32AutoUpdaterImpl} from 'vs/workbench/electron-main/win32/auto-updater.win32'; import {manager as Lifecycle} from 'vs/workbench/electron-main/lifecycle';


: importAction; const secondaryAction = isWeb ? importAction <del> : new BarrierAction(barrier, new Action('close', localize('close', "Close"))); </del> <ins> : new BarrierAction(barrier, new Action('close', localize('close', "Close")), this.notificationService); </ins> const view = await this.showProfilePreviewView(IMPORT_PROFILE_PREVIEW_VIEW, importedProfile.name, primaryAction, secondaryAction, false, userDataProfileImportState); const message = new MarkdownString();


if (_sticky) { return; } <del> this._hideWidgets(); </del> <ins> if (this._mouseWasOverWidget) { // The mouse just left the content widget and a timeout is trigerred to hide the widget // This timeout will be cancelled if the mouse re-enters the content widget this._hideWidgetsTimeout = setTimeout(() => { this._hideWidgets(); this._hideWidgetsTimeout = undefined; }, this._hidingDelay); this._mouseWasOverWidget = false; } else { this._hideWidgets(); } </ins> } private _onKeyDown(e: IKeyboardEvent): void {


*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> .monaco-workbench .part > .title > .title-actions .switch-output  { </del> <ins> .monaco-workbench .part.sidebar > .title > .title-actions .switch-output, .monaco-pane-view .pane > .pane-header .monaco-action-bar .switch-output { border-width: 1px; border-style: solid; } .part.panel > .title > .title-actions .switch-output > .monaco-select-box { border-width: 1px; border-style: solid; } .monaco-workbench .part.sidebar > .title > .title-actions .switch-output  { </ins> display: flex; align-items: center; font-size: 11px;


this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', "Type to filter") : localize('type to search', "Type to search")); } <ins> get value(): string { return this.findInput.inputBox.value; } set value(value: string) { this.findInput.inputBox.value = value; } </ins> private readonly modeToggle: ModeToggle; private readonly findInput: FindInput; private readonly actionbar: ActionBar;


template.onChange = undefined; template.inputBox.value = typeof dataElement.value === 'number' ? <del> dataElement.value.toLocaleString(language) : ''; </del> <ins> dataElement.value.toString() : ''; </ins> template.inputBox.step = dataElement.valueType.includes('integer') ? '1' : 'any'; template.inputBox.setAriaLabel(dataElement.setting.key); template.onChange = value => {


} private _onMouseWheel(e: StandardMouseWheelEvent): void { <ins> let browserEvent = e.browserEvent; if (browserEvent.ctrlKey){ let zoomLevel:number = Browser.getEditorZoomLevel(); let delta = e.deltaY > 0 ? 1 : -1; zoomLevel += delta; Browser.setEditorZoomLevel(zoomLevel); return; } </ins> if (Platform.isMacintosh && e.browserEvent && this._options.saveLastScrollTimeOnClassName) { // Mark dom node with timestamp of wheel event let target = <HTMLElement>e.browserEvent.target;


public setDetailsProvider(provider: (index: number) => { details: string, isMarkdown: boolean }): void { this.detailsProvider = provider; <ins> if (this.options) { const currentOptions = this.options; this.options = []; this.setOptions(currentOptions, this.selected, this.disabledOptionIndex); } </ins> } public focus(): void {


constructor( public readonly label: string, public readonly command: string, <ins> public readonly description?: string, </ins> public readonly when?: ContextKeyExpression, ) { } }


const activeTextEditor = window.activeTextEditor; // Must extract these now because opening a new document will change the activeTextEditor reference <del> const previousVisibleRange = activeTextEditor?.visibleRanges[0]; </del> <ins> const previousVisibleRanges = activeTextEditor?.visibleRanges; </ins> const previousURI = activeTextEditor?.document.uri; const previousSelection = activeTextEditor?.selection;


<ins> 3af1be2861b5de836b35e7a2e5eeaffa2b4517c3024ebd8658033be5aa98c3ce *electron-v22.3.11-darwin-arm64-symbols.zip 5441f785aefc23d53466872b8f1836a172b20f0a0ddf019dfe6cfc498e9e8e19 *electron-v22.3.11-darwin-arm64.zip 473ba98236a945113f3ea5e3b7d3c3d1bc108bb8c99c5d35917c4ee01c0bb4be *electron-v22.3.11-darwin-x64-symbols.zip 8bd965b00c19de5e880feeff92e01cb0570c436ff6a97e271123e340fee157c3 *electron-v22.3.11-darwin-x64.zip 689281dc20066f98673261b77337d018237f8b0d11f6e3b14dedec24d90f2df4 *electron-v22.3.11-linux-arm64-symbols.zip d9ade7f28e10c3ca0ddc5ada982574a3d84f30fb9f92a82608666608b801ca8a *electron-v22.3.11-linux-arm64.zip 926a0adfb9bf1d2ed3cd26b0bcc8efe66eb793ddc309dff8e6f230abf12ca6e5 *electron-v22.3.11-linux-armv7l-symbols.zip 857eadea9ba34dacf7822d4bb58fd62fd585cc5c5a5b81c0ac32e55108038382 *electron-v22.3.11-linux-armv7l.zip 529057b7fe9be5958bd56b2d18b32d85cb9337ccb76878c67afb799b0f166130 *electron-v22.3.11-linux-x64-symbols.zip 6b5d2a18eab1d14b9f60180c246fb07cd09b298e4e8da1bf517b83ca6c0d0242 *electron-v22.3.11-linux-x64.zip 472a3a15ee7e94ba4cc47052ec4be90fa1072955367bdf135591f12e623af167 *electron-v22.3.11-win32-arm64-pdb.zip 104a685a78556c61c3f7c6fe33f84a3091199150e44e701e513a5d49afef0c55 *electron-v22.3.11-win32-arm64-symbols.zip 3debd92e3be6b74c6b8f25ec7963e8ab94fb877c50c06026aea4bac308311604 *electron-v22.3.11-win32-arm64.zip 38617bd350dd5f757be2cd43afb2238ac42d97714f96a1f27839d04447a31d82 *electron-v22.3.11-win32-ia32-pdb.zip 12b8a47ddae57eb55dcf8aa1fdf39b9575fcb150de1c9bb2444d8702a7d3efec *electron-v22.3.11-win32-ia32-symbols.zip 463062b6bdc09c11ab083c667aae2d6b677f945449ff7bf482059c6086a28e7b *electron-v22.3.11-win32-ia32.zip 3f5bf196a4de1c2b8efedc5f0ef690a41645b33a36e62c307164cb66e20cfaa7 *electron-v22.3.11-win32-x64-pdb.zip b4edb586a021013333badb6e1974e42e0b673f5f49bc7909a338b3e9ad46f7ef *electron-v22.3.11-win32-x64-symbols.zip 7944be5db19c2fa16aa887ec0ca287e84dfe8676d8223165b811ffec1dd57b3d *electron-v22.3.11-win32-x64.zip f2e3db6dc9c7b6e779a034bc4ede297213a05f1a80e0d5fc7fa02e6f8438ecd2 *ffmpeg-v22.3.11-darwin-arm64.zip 5b1732b2f67aa98cb5a0ad9b5caf085c11449bc9710971a2344c10f471cc986f *ffmpeg-v22.3.11-darwin-x64.zip 8233e865973bed62bb1d16011a29eb1e39851725509523bb3c54281b9ecad7e0 *ffmpeg-v22.3.11-linux-arm64.zip 18464ab29adc06c72602b30b4c101ed27edadccee9476f3bd54411e791b415ee *ffmpeg-v22.3.11-linux-armv7l.zip 4467c2e6c5b45cf11d8c2e06bfed76982c95fc50701cf13350b19d100080addd *ffmpeg-v22.3.11-linux-x64.zip 8abc4dddf1e105a3375f56a8dd804101c014919a87dcd231cdb3b19ad6c30f7a *ffmpeg-v22.3.11-win32-arm64.zip 295d3d628460c4b25f751ebc3763bf7ec72a57a337f89ed1ef6f666e3dcfecf5 *ffmpeg-v22.3.11-win32-ia32.zip 17c5e7ec2248521d7064cfa91e9d894981e53a6391e65b83e35ff4f30001b2c5 *ffmpeg-v22.3.11-win32-x64.zip </ins>


<del> 2024-07-04T16:31:11.121Z </del> <ins> 2024-08-06T11:06:57.600Z </ins>


"icon": "images/icon.png", "activationEvents": [ "onProfile", <del> "onProfile:github" </del> <ins> "onProfile:github", "onLanguage:json", "onLanguage:jsonc" </ins> ], "enabledApiProposals": [ "profileContentHandlers"


@IInstantiationService private readonly _instantiationService: IInstantiationService, @ILabelService labelService: ILabelService, @IFileService fileService: IFileService, <del> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService </del> <ins> @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService, @IExtensionService extensionService: IExtensionService, @IEditorService editorService: IEditorService </ins> ) { super(resource, undefined, labelService, fileService, filesConfigurationService); this._defaultDirtyState = !!options.startDirty;


newDocument.body.appendChild(defaultScripts); styleBody(newDocument.body); <ins> const frame = getTarget(); frame.setAttribute('id', '_oldTarget') </ins> // keep current scrollTop around and use later <del> const scrollTop = getTarget().contentDocument.body.scrollTop; </del> <ins> const scrollTop = frame.contentDocument.body.scrollTop; const newFrame = document.createElement('iframe'); newFrame.setAttribute('id', '_target'); newFrame.setAttribute('frameborder', '0'); newFrame.style.cssText = "margin: 0; overflow: hidden; position: absolute; width: 100%; height: 100%; display: none"; document.body.appendChild(newFrame); </ins> // write new content onto iframe <del> getTarget().contentDocument.open('text/html', 'replace'); </del> <ins> newFrame.contentDocument.open('text/html', 'replace'); </ins> // set DOCTYPE for newDocument explicitly as DOMParser.parseFromString strips it off // and DOCTYPE is needed in the iframe to ensure that the user agent stylesheet is correctly overridden <del> getTarget().contentDocument.write('<!DOCTYPE html>'); getTarget().contentDocument.write(newDocument.documentElement.innerHTML); getTarget().contentDocument.close(); </del> <ins> newFrame.contentDocument.write('<!DOCTYPE html>'); newFrame.contentDocument.write(newDocument.documentElement.innerHTML); newFrame.contentDocument.close(); </ins> // workaround for https://github.com/Microsoft/vscode/issues/12865 // check new scrollTop and reset if neccessary <del> setTimeout(function () { if (scrollTop !== getTarget().contentDocument.body.scrollTop) { getTarget().contentDocument.body.scrollTop = scrollTop; </del> <ins> setTimeout(() => { if (scrollTop !== newFrame.contentDocument.body.scrollTop) { newFrame.contentDocument.body.scrollTop = scrollTop; </ins> } <ins> document.body.removeChild(frame); newFrame.style.display = 'block'; </ins> }, 0); ipcRenderer.sendToHost('did-set-content', stats);


} } case 'server': <del> if (arch === 'arm64') { throw new Error(`Unrecognized: ${product} ${os} ${arch} ${type}`); } </del> return `server-win32-${arch}`; case 'web': <del> if (arch === 'arm64') { throw new Error(`Unrecognized: ${product} ${os} ${arch} ${type}`); } </del> return `server-win32-${arch}-web`; case 'cli': return `cli-win32-${arch}`;


}); }); <del> test('Expand abbreviation with no self closing tags for html', () => { </del> <ins> test.skip('Expand abbreviation with no self closing tags for html', () => { </ins> return withRandomFileEditor('img', 'html', async (editor, _doc) => { editor.selection = new Selection(0, 6, 0, 6); await expandEmmetAbbreviation({ language: 'html' });


private _hide(): void { this._accessibleBuffer.classList.remove('active'); <del> this._xtermElement.classList.remove('hide'); </del> this._xterm.raw.focus(); }


} } <del> public $executeTask(value: TaskDTO): Promise<TaskExecutionDTO> { </del> <ins> // Passing in a TaskHandleDTO will cause the task to get re-resolved, which is important for tasks are coming from the core, // such as those gotten from a fetchTasks, since they can have missing configuration properties. public $executeTask(value: TaskHandleDTO | TaskDTO): Promise<TaskExecutionDTO> { </ins> return new Promise<TaskExecutionDTO>((resolve, reject) => { <del> const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); </del> <ins> if (TaskHandleDTO.is(value)) { const workspaceFolder = typeof value.workspaceFolder === 'string' ? value.workspaceFolder : this._workspaceContextServer.getWorkspaceFolder(URI.revive(value.workspaceFolder)); if (workspaceFolder) { this._taskService.getTask(workspaceFolder, value.id, true).then((task: Task | undefined) => { if (!task) { reject(new Error('Task not found')); } else { this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: value.id, task: TaskDTO.from(task) }; resolve(result); } }, (_error) => { reject(new Error('Task not found')); }); } else { reject(new Error('No workspace folder')); } } else { const task = TaskDTO.to(value, this._workspaceContextServer, true)!; this._taskService.run(task).then(undefined, reason => { // eat the error, it has already been surfaced to the user and we don't care about it here }); const result: TaskExecutionDTO = { id: task._id, task: TaskDTO.from(task) }; resolve(result); } </ins> }); } public $customExecutionComplete(id: string, result?: number): Promise<void> { return new Promise<void>((resolve, reject) => { this._taskService.getActiveTasks().then((tasks) => {


default: defaults.sticky, description: nls.localize('hover.sticky', "Controls whether the hover should remain visible when mouse is moved over it.") }, <ins> 'editor.hover.hidingDelay': { type: 'integer', minimum: 0, default: defaults.hidingDelay, description: nls.localize('hover.hidingDelay', "Controls the delay in milliseconds after thich the hover is hidden. Requires `editor.hover.sticky` to be enabled.") }, </ins> 'editor.hover.above': { type: 'boolean', default: defaults.above,


this._disposeQuickFix(this._lastQuickFixId, false); } <del> // Wait for the next command to start to ensure the quick fix marker is created on the next // prompt line const commandDetection = this._capabilities.get(TerminalCapability.CommandDetection); if (commandDetection) { await Event.toPromise(commandDetection.onCommandStarted); } </del> const resolver = async (selector: ITerminalQuickFixOptions, lines?: string[]) => { if (lines === undefined) { return undefined;


} } <del> async pull(rebase?: boolean): Promise<void> { await this.run(Operation.Pull, () => this.repository.pull(rebase)); </del> <ins> async pull(rebase?: boolean, remote?: string, branch?: string): Promise<void> { await this.run(Operation.Pull, () => this.repository.pull(rebase, remote, branch)); </ins> } async push(remote?: string, name?: string, options?: PushOptions): Promise<void> {


getConfiguration(section?: string, scope?: vscode.ConfigurationScope | null, extensionDescription?: IExtensionDescription): vscode.WorkspaceConfiguration { const overrides = scopeToOverrides(scope) || {}; <del> if (overrides.overrideIdentifier && extensionDescription) { checkProposedApiEnabled(extensionDescription); } </del> const config = this._toReadonlyValue(section ? lookUp(this._configuration.getValue(undefined, overrides, this._extHostWorkspace.workspace), section) : this._configuration.getValue(undefined, overrides, this._extHostWorkspace.workspace));


end set -e VSCODE_PATH_PREFIX <del> # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") </del> <ins> set -g __vsc_applied_env_vars 0 function __vsc_apply_env_vars if test $__vsc_applied_env_vars -eq 1; return </ins> end <del> set -e VSCODE_ENV_REPLACE end if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space </del> <ins> set -l __vsc_applied_env_vars 1 # Apply EnvironmentVariableCollections if needed if test -n "$VSCODE_ENV_REPLACE" set ITEMS (string split : $VSCODE_ENV_REPLACE) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]") end set -e VSCODE_ENV_REPLACE </ins> end <del> set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space </del> <ins> if test -n "$VSCODE_ENV_PREPEND" set ITEMS (string split : $VSCODE_ENV_PREPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" (echo -e "$split[2]")"$$split[1]" # avoid -p as it adds a space end set -e VSCODE_ENV_PREPEND end if test -n "$VSCODE_ENV_APPEND" set ITEMS (string split : $VSCODE_ENV_APPEND) for B in $ITEMS set split (string split = $B) set -gx "$split[1]" "$$split[1]"(echo -e "$split[2]") # avoid -a as it adds a space end set -e VSCODE_ENV_APPEND </ins> end <del> set -e VSCODE_ENV_APPEND </del> end # Handle the shell integration nonce


this._widget.showAt(fragment, new ContentHoverVisibleData( colorPicker, <del> forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchor.range.startLineNumber, renderColumn), forceShowAtRange ? forceShowAtRange : highlightRange, </del> <ins> showAtPosition, showAtRange, </ins> this._editor.getOption(EditorOption.hover).above, this._computer.shouldFocus, disposables


import * as editorCommon from 'vs/editor/common/editorCommon'; import {EditorLayoutProvider} from 'vs/editor/common/viewLayout/editorLayoutProvider'; import {ScrollbarVisibility} from 'vs/base/browser/ui/scrollbar/scrollableElementOptions'; <ins> import * as browser from 'vs/base/browser/browser'; </ins> /** * Experimental screen reader support toggle


switch (item.kind) { case PConst.Kind.function: { const showOnAllFunctions = vscode.workspace.getConfiguration(this.language.id).get<boolean>('referencesCodeLens.showOnAllFunctions'); <del> if (showOnAllFunctions) { </del> <ins> if (showOnAllFunctions && item.nameSpan) { </ins> return getSymbolRange(document, item); } }


* Controls whether to show the "Terminal will be reused by tasks, press any key to close it" message. */ showReuseMessage?: boolean; <ins> /** * Controls whether the terminal is cleared before executing the task. */ clear?: boolean; </ins> } /**


"emmetPreferencesCssOProperties": "Comma separated CSS properties that get the 'o' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'o' prefix.", "emmetPreferencesCssMsProperties": "Comma separated CSS properties that get the 'ms' vendor prefix when used in Emmet abbreviation that starts with `-`. Set to empty string to always avoid the 'ms' prefix.", "emmetPreferencesCssFuzzySearchMinScore": "The minimum score (from 0 to 1) that fuzzy-matched abbreviation should achieve. Lower values may produce many false-positive matches, higher values may reduce possible matches.", <del> "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed." </del> <ins> "emmetOptimizeStylesheetParsing": "When set to `false`, the whole file is parsed to determine if current position is valid for expanding Emmet abbreviations. When set to `true`, only the content around the current position in css/scss/less files is parsed.", "emmetPreferencesOutputReverseAttributes": "If `true`, reverses attribute merging directions when resolving snippets." </ins> }


} registerAction2(AssignSelectedAgentAction); <ins> class ReferenceArgument { constructor( readonly widget: IChatWidget, readonly variable: IDynamicVariable ) { } } </ins> class BuiltinDynamicCompletions extends Disposable { <ins> private static readonly addReferenceCommand = '_addReferenceCmd'; </ins> private static readonly VariableNameDef = new RegExp(`${chatVariableLeader}w*`, 'g'); // MUST be using `g`-flag <ins> private readonly queryBuilder: QueryBuilder; </ins> constructor( <ins> @IHistoryService private readonly historyService: IHistoryService, @IWorkspaceContextService private readonly workspaceContextService: IWorkspaceContextService, @ISearchService private readonly searchService: ISearchService, @ILabelService private readonly labelService: ILabelService, </ins> @ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService, @IChatWidgetService private readonly chatWidgetService: IChatWidgetService, <ins> @IInstantiationService private readonly instantiationService: IInstantiationService, </ins> ) { super(); this._register(this.languageFeaturesService.completionProvider.register({ scheme: ChatInputPart.INPUT_SCHEME, hasAccessToAllModels: true }, { _debugDisplayName: 'chatDynamicCompletions', triggerCharacters: [chatVariableLeader], <del> provideCompletionItems: async (model: ITextModel, position: Position, _context: CompletionContext, _token: CancellationToken) => { </del> <ins> provideCompletionItems: async (model: ITextModel, position: Position, _context: CompletionContext, token: CancellationToken) => { </ins> const widget = this.chatWidgetService.getWidgetByInputUri(model.uri); if (!widget || !widget.supportsFileReferences) { return null;


}, menuOpts: { menuId: MarkerNavigationWidget.TitleMenu, <del> title: NextMarkerAction.LABEL, </del> <ins> title: PrevMarkerAction.LABEL, </ins> icon: registerIcon('marker-navigation-previous', Codicon.arrowUp, nls.localize('previousMarkerIcon', 'Icon for goto previous marker.')), group: 'navigation', order: 2


this._onDidChangeZoomLevel.fire(this._zoomLevel); } <ins> public getEditorZoomLevel(): number { return this._editorZoomLevel; } public setEditorZoomLevel(zoomLevel:number): void { if (this._editorZoomLevel === zoomLevel) { return; } this._editorZoomLevel = zoomLevel; this._onDidChangeZoomLevel.fire(this._editorZoomLevel); } </ins> public getPixelRatio(): number { if (!this._pixelRatioComputed) { this._pixelRatioCache = this._computePixelRatio();


foldingRangeLimit = getClientCapability('textDocument.foldingRange.rangeLimit', Number.MAX_VALUE); formatterMaxNumberOfEdits = initializationOptions?.customCapabilities?.rangeFormatting?.editLimit || Number.MAX_VALUE; <del> const pullDiagnosticSupport = getClientCapability('textDocument.diagnostic', undefined); if (pullDiagnosticSupport === undefined) { </del> <ins> const supportsDiagnosticPull = getClientCapability('textDocument.diagnostic', undefined); if (supportsDiagnosticPull === undefined) { </ins> diagnosticsSupport = registerDiagnosticsPushSupport(documents, connection, runtime, validateTextDocument); } else { diagnosticsSupport = registerDiagnosticsPullSupport(documents, connection, runtime, validateTextDocument);


.monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-fit .monaco-icon-label, .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-fit .monaco-icon-label > .monaco-icon-label-container { <del> overflow: visible; /* fixes https://github.com/microsoft/vscode/issues/20182 */ </del> <ins> overflow-x: visible; /* fixes https://github.com/microsoft/vscode/issues/20182 by ensuring the horizontal overflow is visible */ </ins> } .monaco-workbench .part.editor > .content .editor-group-container > .title .tabs-container > .tab.sizing-shrink > .monaco-icon-label > .monaco-icon-label-container,


}); test('score (non fuzzy)', function () { <del> const target = 'HeLlo-World'; </del> <ins> const target = 'HelLo-World'; </ins> assert.ok(_doScore(target, 'HelLo-World', false)[0] > 0); assert.strictEqual(_doScore(target, 'HelLo-World', false)[1].length, 'HelLo-World'.length);


const defaults: EditorHoverOptions = { enabled: true, delay: 300, <ins> hidingDelay: 500, </ins> sticky: true, above: true, };