} return this.userDataProfilesService.createNamedProfile(name); } else { <del> return this.userDataProfilesService.createNamedProfile(profileTemplate.name, { shortName: profileTemplate.shortName, transient: temp }); </del> <ins> return this.userDataProfilesService.createNamedProfile(profileName, { shortName: profileTemplate.shortName, transient: temp }); </ins> } }


if (!item.row) { item.row = this.cache.alloc(item.templateId); <del> const role = this.ariaProvider.getRole ? this.ariaProvider.getRole(item.element) : 'treeitem'; </del> <ins> const role = this.ariaProvider.getRole ? this.ariaProvider.getRole(item.element) : 'listitem'; </ins> item.row!.domNode!.setAttribute('role', role); const checked = this.ariaProvider.isChecked ? this.ariaProvider.isChecked(item.element) : undefined; if (typeof checked !== 'undefined') {


cacheHitVar: NODE_MODULES_RESTORED displayName: Restore node_modules cache <del> - powershell: 7z.exe x .build/node_modules_cache/cache.7z -aoa -bb </del> <ins> - powershell: 7z.exe x .build/node_modules_cache/cache.7z -aoa </ins> condition: and(succeeded(), eq(variables.NODE_MODULES_RESTORED, 'true')) displayName: Extract node_modules cache


resolved "https://registry.yarnpkg.com/@vscode/windows-registry/-/windows-registry-1.1.0.tgz#03dace7c29c46f658588b9885b9580e453ad21f9" integrity sha512-5AZzuWJpGscyiMOed0IuyEwt6iKmV5Us7zuwCDCFYMIq7tsvooO9BUiciywsvuthGz6UG4LSpeDeCxvgMVhnIw== <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> agent-base@^7.0.1, agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.0"


opts.selection = previousSelection; const editor = await window.showTextDocument(document, opts); // This should always be defined but just in case <del> if (previousVisibleRange) { editor.revealRange(previousVisibleRange); </del> <ins> if (previousVisibleRanges && previousVisibleRanges.length > 0) { let rangeToReveal = previousVisibleRanges[0]; if (previousSelection && previousVisibleRanges.length > 1) { // In case of multiple visible ranges, find the one that intersects with the selection rangeToReveal = previousVisibleRanges.find(r => r.intersection(previousSelection)) ?? rangeToReveal; } editor.revealRange(rangeToReveal); </ins> } } }


})); const closeBtn = this._register(new SimpleButton({ <del> label: NLS_CLOSE_BTN_LABEL, </del> <ins> label: NLS_CLOSE_BTN_LABEL + (options.closeWidgetActionId ? this._getKeybinding(options.closeWidgetActionId) : ''), </ins> icon: widgetClose, onTrigger: () => { this.hide();


if (thing instanceof URI) { return true; } <del> if (!thing) { return false; </del> <ins> if (thing) { return typeof (<URI>thing).authority === 'string' && typeof (<URI>thing).fragment === 'string' && typeof (<URI>thing).path === 'string' && typeof (<URI>thing).query === 'string' && typeof (<URI>thing).scheme === 'string' && typeof (<URI>thing).fsPath === 'function' && typeof (<URI>thing).with === 'function' && typeof (<URI>thing).toString === 'function'; </ins> } <del> return typeof (<URI>thing).authority === 'string' && typeof (<URI>thing).fragment === 'string' && typeof (<URI>thing).path === 'string' && typeof (<URI>thing).query === 'string' && typeof (<URI>thing).scheme === 'string' && typeof (<URI>thing).fsPath === 'function' && typeof (<URI>thing).with === 'function' && typeof (<URI>thing).toString === 'function'; </del> <ins> return false; </ins> } /**


import { Position } from '../../../../../editor/common/core/position.js'; import { Range } from '../../../../../editor/common/core/range.js'; import { IWordAtPosition, getWordAtText } from '../../../../../editor/common/core/wordHelper.js'; <del> import { CompletionContext, CompletionItem, CompletionItemKind } from '../../../../../editor/common/languages.js'; </del> <ins> import { CompletionContext, CompletionItem, CompletionItemKind, CompletionList } from '../../../../../editor/common/languages.js'; </ins> import { ITextModel } from '../../../../../editor/common/model.js'; import { ILanguageFeaturesService } from '../../../../../editor/common/services/languageFeatures.js'; import { localize } from '../../../../../nls.js'; import { Action2, registerAction2 } from '../../../../../platform/actions/common/actions.js'; import { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js'; <del> import { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js'; </del> <ins> import { IInstantiationService, ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js'; </ins> import { Registry } from '../../../../../platform/registry/common/platform.js'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from '../../../../common/contributions.js'; import { SubmitAction } from '../actions/chatExecuteActions.js'; import { IChatWidget, IChatWidgetService } from '../chat.js'; import { ChatInputPart } from '../chatInputPart.js'; <del> import { SelectAndInsertFileAction } from './chatDynamicVariables.js'; </del> <ins> import { ChatDynamicVariableModel, SelectAndInsertFileAction } from './chatDynamicVariables.js'; </ins> import { ChatAgentLocation, getFullyQualifiedId, IChatAgentData, IChatAgentNameService, IChatAgentService } from '../../common/chatAgents.js'; import { ChatRequestAgentPart, ChatRequestAgentSubcommandPart, ChatRequestTextPart, ChatRequestToolPart, ChatRequestVariablePart, chatAgentLeader, chatSubcommandLeader, chatVariableLeader } from '../../common/chatParserTypes.js'; import { IChatSlashCommandService } from '../../common/chatSlashCommands.js'; <del> import { IChatVariablesService } from '../../common/chatVariables.js'; </del> <ins> import { IChatVariablesService, IDynamicVariable } from '../../common/chatVariables.js'; </ins> import { ILanguageModelToolsService } from '../../common/languageModelToolsService.js'; import { LifecyclePhase } from '../../../../services/lifecycle/common/lifecycle.js'; <ins> import { IHistoryService } from '../../../../services/history/common/history.js'; import { ILabelService } from '../../../../../platform/label/common/label.js'; import { ResourceSet } from '../../../../../base/common/map.js'; import { CommandsRegistry } from '../../../../../platform/commands/common/commands.js'; import { isPatternInWord } from '../../../../../base/common/filters.js'; import { ISearchService } from '../../../../services/search/common/search.js'; import { QueryBuilder } from '../../../../services/search/common/queryBuilder.js'; import { IWorkspaceContextService } from '../../../../../platform/workspace/common/workspace.js'; import { URI } from '../../../../../base/common/uri.js'; </ins> class SlashCommandCompletions extends Disposable { constructor(


chClass = (hasOpenCurlyBracket ? CharacterClass.None : CharacterClass.ForceTermination); break; default: <del> chClass = (chCode < characterClassesLength ? characterClasses[chCode] : CharacterClass.None); </del> <ins> chClass = characterClassifier.classify(chCode); </ins> } // Check if character terminates link


private readonly _diffs: RangeMapping[], private readonly _selection: boolean, ) { <del> this._domNode.onmousedown = e => { </del> <ins> super(); this._register(addDisposableListener(this._domNode, EventType.MOUSE_DOWN, e => { </ins> // don't prevent context menu from showing up if (e.button !== 2) { e.stopPropagation(); e.preventDefault(); } <del> }; this._domNode.onmouseup = e => { </del> <ins> })); this._register(addDisposableListener(this._domNode, EventType.MOUSE_UP, e => { </ins> e.stopPropagation(); e.preventDefault(); <del> }; this._domNode.onclick = (e) => { </del> <ins> })); this._register(addDisposableListener(this._domNode, EventType.CLICK, (e) => { </ins> this._widget.revertRangeMappings(this._diffs); e.stopPropagation(); e.preventDefault(); <del> }; </del> <ins> })); </ins> } /**


return undefined; } <ins> private refreshModels(resolvedSettingsRoot: ITOCEntry<ISetting>) { this.settingsTreeModel.update(resolvedSettingsRoot); this.tocTreeModel.settingsTreeRoot = this.settingsTreeModel.root as SettingsTreeGroupElement; } </ins> private async onConfigUpdate(keys?: ReadonlySet<string>, forceRefresh = false, schemaChange = false): Promise<void> { if (keys && this.settingsTreeModel) { return this.updateElementsByKey(keys);


return tokenizeToString(languageService, code, languageId); } }), <del> MarkedGfmHeadings.gfmHeadingId(), </del> <ins> markedGfmHeadingIdPlugin(), </ins> ...(options?.markedExtensions ?? []), );


padding-left: 7px; } <del> .monaco-workbench .debug-actions-widget .monaco-action-bar .action-item.select-container { margin-right: 7px; </del> <ins> .monaco-workbench .debug-actions-widget .monaco-action-bar .action-item { height: 32px; </ins> } <del> .monaco-workbench .debug-actions-widget .monaco-action-bar .action-item .monaco-select-box { margin-top: 6px; </del> <ins> .monaco-workbench .debug-actions-widget .monaco-action-bar .action-item.select-container { margin-right: 7px; </ins> } .monaco-workbench .debug-actions-widget .drag-area {


export class NewExplorerItem extends ExplorerItem { constructor(fileService: IFileService, parent: ExplorerItem, isDirectory: boolean) { super(URI.file(''), fileService, parent, isDirectory); <ins> this._isDirectoryResolved = true; </ins> } }


import { IWorkspaceIdentifier, WORKSPACE_EXTENSION } from 'vs/platform/workspace/common/workspace'; import { IWorkspacesManagementMainService } from 'vs/platform/workspaces/electron-main/workspacesManagementMainService'; import { ResourceMap } from 'vs/base/common/map'; <ins> import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; </ins> export const IWorkspacesHistoryMainService = createDecorator<IWorkspacesHistoryMainService>('workspacesHistoryMainService');


"version": "0.0.0", "private": true, "dependencies": { <ins> "@bpasero/watcher": "https://github.com/bpasero/watcher.git#3e5e50c275590703f3eb46fac777b720e515d0d5", </ins> "@microsoft/1ds-core-js": "^3.2.13", "@microsoft/1ds-post-js": "^3.2.13", "@parcel/watcher": "2.1.0",


default: defaults.sticky, description: nls.localize('hover.sticky', "Controls whether the hover should remain visible when mouse is moved over it.") }, <ins> 'editor.hover.below': { type: 'boolean', default: defaults.below, description: nls.localize('hover.below', "Show hovers below the line instead of above, if there's space.") }, </ins> } ); }


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


callback(true); } <del> private _addTooltipEventListeners(element: HTMLElement) { </del> <ins> private _addTooltipEventListeners(element: HTMLElement): void { </ins> let timeout = null; let isMessageShowing = false; this._tooltipDisposables.push(dom.addDisposableListener(element, dom.EventType.MOUSE_OVER, () => {


id: MenuId.EditorTitle, when: ctxIsMergeEditor, group: 'navigation', <ins> order: 3 </ins> }, ], f1: true,


if (!result.matches(editor)) { const targetGroups = editor.hasCapability(EditorInputCapabilities.Untitled) ? this.editorGroupService.groups.map(group => group.id) /* untitled replaces across all groups */ : [groupId]; for (const targetGroup of targetGroups) { <ins> const resolvedEditor = await this.editorResolverService.resolveEditor({ resource: result.resource, }, targetGroup); </ins> const group = this.editorGroupService.getGroup(targetGroup); <del> await group?.replaceEditors([{ editor, replacement: result, options: editorOptions }]); </del> <ins> if (resolvedEditor !== ResolvedStatus.ABORT && isEditorInputWithOptionsAndGroup(resolvedEditor)) { // dispose the previous result before replacing with the resolved editor saveResults.pop()?.dispose(); saveResults.push(resolvedEditor.editor); await group?.replaceEditors([{ editor, replacement: resolvedEditor.editor, options: editorOptions }]); } else { await group?.replaceEditors([{ editor, replacement: result, options: editorOptions }]); } </ins> } } }


reactionCount.innerText = `${action.count}`; } } <ins> protected override getTooltip(): string | undefined { const action = this.action as ReactionAction; const toggleMessage = action.enabled ? nls.localize('comment.toggleableReaction', "Toggle reaction, ") : ''; if (action.count === undefined) { return nls.localize('comment.reactionLabelNone', "{0}{1} reaction", toggleMessage, action.label); } else if (action.count === 1) { return nls.localize('comment.reactionLabelOne', "{0}1 reaction with {1}", toggleMessage, action.label); } else if (action.count > 1) { return nls.localize('comment.reactionLabelMany', "{0}{1} reactions with {2}", toggleMessage, action.count, action.label); } return undefined; } </ins> } export class ReactionAction extends Action { static readonly ID = 'toolbar.toggle.reaction';


z-index: 2; position: relative; } <del> .xterm.terminal.hide { display: none; } </del>


}); } <del> private getNthDirname(path: ParsedPath, n: number): string | undefined { </del> <ins> private getNthDirname(path: string, n: number): string | undefined { </ins> // grand-parent/parent/filename.ext1.ext2 -> [grand-parent, parent] <del> const pathFragments = path.dir.split('/'); </del> <ins> const pathFragments = path.split('/'); </ins> const length = pathFragments.length; <del> const nth = length - 1 - n; if (nth < 0) { return undefined; </del> <ins> let nthDir; if (n < 0) { const nth = Math.abs(n) - 1; nthDir = pathFragments[nth]; } else { const nth = length - 1 - n - 1; // -1 for the filename, -1 for 0-based index nthDir = pathFragments[nth]; </ins> } <del> const nthDir = pathFragments[nth]; </del> if (nthDir === undefined || nthDir === '') { return undefined; }


this.searchBox.setModel(this.modelService.createModel('', null, uri.parse('extensions:searchinput'), true)); this.disposables.push(this.searchBox.onDidPaste(() => { <del> this.searchBox.setValue(this.searchBox.getValue().replace(/s+/g, ' ')); </del> <ins> let trimmed = this.searchBox.getValue().replace(/s+/g, ' '); this.searchBox.setValue(trimmed); </ins> this.searchBox.setScrollTop(0); <ins> this.searchBox.setPosition(new Position(1, trimmed.length + 1)); </ins> })); this.disposables.push(this.searchBox.onDidFocusEditorText(() => addClass(this.monacoStyleContainer, 'synthetic-focus'))); this.disposables.push(this.searchBox.onDidBlurEditorText(() => removeClass(this.monacoStyleContainer, 'synthetic-focus')));


})); } <del> private _computeOutputLineHeight(): number { </del> <ins> private _migrateDeprecatedSetting(deprecatedKey: string, key: string): void { const deprecatedSetting = this.configurationService.inspect(deprecatedKey); if (deprecatedSetting.application !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.APPLICATION); this.configurationService.updateValue(key, deprecatedSetting.application.value, ConfigurationTarget.APPLICATION); } if (deprecatedSetting.user !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.USER); this.configurationService.updateValue(key, deprecatedSetting.user.value, ConfigurationTarget.USER); } if (deprecatedSetting.userLocal !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.USER_LOCAL); this.configurationService.updateValue(key, deprecatedSetting.userLocal.value, ConfigurationTarget.USER_LOCAL); } if (deprecatedSetting.userRemote !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.USER_REMOTE); this.configurationService.updateValue(key, deprecatedSetting.userRemote.value, ConfigurationTarget.USER_REMOTE); } if (deprecatedSetting.workspace !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.WORKSPACE); this.configurationService.updateValue(key, deprecatedSetting.workspace.value, ConfigurationTarget.WORKSPACE); } if (deprecatedSetting.workspaceFolder !== undefined) { this.configurationService.updateValue(deprecatedKey, undefined, ConfigurationTarget.WORKSPACE_FOLDER); this.configurationService.updateValue(key, deprecatedSetting.workspaceFolder.value, ConfigurationTarget.WORKSPACE_FOLDER); } } private _computeOutputLineHeight(lineHeight: number, outputFontSize: number): number { </ins> const minimumLineHeight = 8; <del> let lineHeight = this.configurationService.getValue<number>(NotebookSetting.outputLineHeight); </del> if (lineHeight === 0) { // use editor line height


this._register(Event.fromNodeEventEmitter<void>(this._process, 'spawn')(() => { this._logService.info(`UtilityProcess<${this.id}>: received spawn event.`); })); <del> this._register(Event.fromNodeEventEmitter<number | undefined>(this._process, 'exit')((code: number | undefined) => { code = code || 0; </del> <ins> const onExit = Event.fromNodeEventEmitter<number>(this._process, 'exit', (_, code: number) => code); this._register(onExit((code: number) => { </ins> this._logService.info(`UtilityProcess<${this.id}>: received exit event with code ${code}.`); this._hasExited = true; this._onExit.fire({ pid: this._process!.pid!, code, signal: '' });


apps: @@NAME@@: <del> command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ </del> <ins> command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --no-sandbox </ins> common-id: @@NAME@@.desktop url-handler: <del> command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --open-url </del> <ins> command: electron-launch $SNAP/usr/share/@@NAME@@/bin/@@NAME@@ --open-url --no-sandbox </ins>


async run(accessor: ServicesAccessor, handle: TreeViewItemHandleArg): Promise<void> { const editSessionId = URI.parse(handle.$treeItemHandle).path.substring(1); const commandService = accessor.get(ICommandService); <del> await commandService.executeCommand('workbench.editSessions.actions.resumeLatest', editSessionId); </del> <ins> await commandService.executeCommand('workbench.editSessions.actions.resumeLatest', editSessionId, true); </ins> await treeView.refresh(); } });


return []; } <ins> override shouldValidateName(): boolean { return !this.copyFrom; } </ins> override getInitialName(): string { return this.previewProfile?.name ?? ''; }


showInput(options?: InputBoxOptions, token: CancellationToken = CancellationToken.None): Promise<string | undefined> { // global validate fn used in callback below <del> this._validateInput = options ? options.validateInput2 ?? options.validateInput : undefined; </del> <ins> this._validateInput = options?.validateInput; </ins> return proxy.$input(options, typeof this._validateInput === 'function', token) .then(undefined, err => {


} } <ins> interface TypeNameToType { readonly boolean: boolean; readonly string: string; } class ChangeObserver<T> { static create<TTypeName extends 'boolean' | 'string'>(typeName: TTypeName): ChangeObserver<TypeNameToType[TTypeName]> { return new ChangeObserver(typeName); } constructor(private readonly typeName: string) { } private lastValue: T | undefined = undefined; /** * Returns if there was a change compared to the last value */ handleChange(value: T | undefined): boolean { if (typeof value === this.typeName && value !== this.lastValue) { this.lastValue = value; return true; } return false; } } </ins> export class WorkspaceChangeExtHostRelauncher extends Disposable implements IWorkbenchContribution { private firstFolderResource?: URI;


*--------------------------------------------------------------------------------------------*/ // @ts-check const path = require('path'); <del> const fs = require('fs'); </del> const esbuild = require('esbuild'); const args = process.argv.slice(2);


{ "name": "code-oss-dev", "version": "1.83.0", <del> "distro": "f4e12eeb4a251bbec78e035eaeb7f7c5dd372a40", </del> <ins> "distro": "a06824e6c4c76374ec53ff47965dbb0fada8ae6c", </ins> "author": { "name": "Microsoft Corporation" },


first.textContent = 'Output exceeds the '; const second = document.createElement('a'); second.textContent = 'size limit'; <del> second.href = `command:workbench.action.openSettings?["notebook.output.textLineLimit"]`; </del> <ins> second.href = `command:workbench.action.openSettings?%5B%22notebook.output.textLineLimit%22%5D`; </ins> const third = document.createElement('span'); third.textContent = '. Open the full output data'; const forth = document.createElement('a');


} const taskSystemInfo: ITaskSystemInfo | undefined = this._getTaskSystemInfo(workspaceFolder.uri.scheme); const problemReporter = new ProblemReporter(this._outputChannel); <del> if (!taskSystemInfo) { problemReporter.fatal(nls.localize('TaskSystem.workspaceFolderError', 'Workspace folder was undefined')); return true; } </del> const parseResult = TaskConfig.parse(workspaceFolder, this._workspace, taskSystemInfo ? taskSystemInfo.platform : Platform.platform, config, problemReporter, source, this._contextKeyService, isRecentTask); let hasErrors = false; if (!parseResult.validationStatus.isOK() && (parseResult.validationStatus.state !== ValidationState.Info)) {


import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { TelemetryTrustedValue } from 'vs/platform/telemetry/common/telemetryUtils'; import { IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry'; <ins> import { generateUuid } from 'vs/base/common/uuid'; </ins> interface CommandHandler { callback: Function;


"@vscode/windows-mutex": "^0.4.4", "@vscode/windows-process-tree": "^0.5.0", "@vscode/windows-registry": "^1.1.0", <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/headless": "5.4.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/headless": "5.4.0-beta.17", "@xterm/xterm": "5.4.0-beta.17", </ins> "graceful-fs": "4.2.11", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.2",


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


'trace': { type: 'boolean' }, 'trace-category-filter': { type: 'string' }, 'trace-options': { type: 'string' }, <ins> 'preserve-env': { type: 'boolean' }, </ins> 'force-user-env': { type: 'boolean' }, 'force-disable-user-env': { type: 'boolean' }, 'open-devtools': { type: 'boolean' },


@ITelemetryService telemetryService: ITelemetryService, @IStorageService storageService: IStorageService, @INotebookService private readonly notebookService: INotebookService, <ins> @IEditorService private readonly editorService: IEditorService </ins> ) { super(NotebookTextDiffEditor.ID, group, telemetryService, themeService, storageService); this.diffEditorCalcuator = this.instantiationService.createInstance(DiffEditorHeightCalculatorService, this.fontInfo.lineHeight);


} else { if (terminal.state.isInteractedWith) { terminal.sendText('u0003'); // Ctrl+C for #106743. Not part of the same command for #107969 <ins> await timeout(200); // mirroring https://github.com/microsoft/vscode/blob/c67ccc70ece5f472ec25464d3eeb874cfccee9f1/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts#L852-L857 </ins> } if (configProvider.getConfiguration('debug.terminal').get<boolean>('clearBeforeReusing')) {


// Complete when wait marker file is deleted whenDeleted(waitMarkerFilePath).done(c, c); <ins> }).then(() => { // Make sure to delete the tmp stdin file if we have any if (stdinFilePath) { fs.unlinkSync(stdinFilePath); } </ins> }); }


import { coalesce } from 'vs/base/common/arrays'; import Severity from 'vs/base/common/severity'; import { ThemeIcon as ThemeIconUtils } from 'vs/platform/theme/common/themeService'; <del> import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; </del> export type Item = string | QuickPickItem;


} private onDidChangePresentation(): void { <del> this._pickedColorNode.textContent = this.model.presentation ? this.model.presentation.label : ''; this._pickedColorNode.prepend($('.codicon.codicon-color-mode')); </del> <ins> this._pickedColorPresentation.textContent = this.model.presentation ? this.model.presentation.label : ''; </ins> } }


// other flows that work well. supportsGitHubEnterpriseServer: false, supportsHostedGitHubEnterprise: true, <del> supportsRemoteExtensionHost: true, </del> <ins> // Opening a port on the remote side can't be open in the browser on // the client side so this flow won't work in remote extension hosts supportsRemoteExtensionHost: false, </ins> // Web worker can't open a port to listen for the redirect supportsWebWorkerExtensionHost: false, // exchanging a code for a token requires a client secret


async focusNextPage(browserEvent?: UIEvent, filter?: (element: T) => boolean): Promise<void> { let lastPageIndex = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight); lastPageIndex = lastPageIndex === 0 ? 0 : lastPageIndex - 1; <del> const lastPageElement = this.view.element(lastPageIndex); </del> const currentlyFocusedElementIndex = this.getFocus()[0]; <del> const currentlyFocusedElement = this.view.element(currentlyFocusedElementIndex); if (currentlyFocusedElement !== lastPageElement && lastPageIndex > currentlyFocusedElementIndex) { </del> <ins> if (currentlyFocusedElementIndex !== lastPageIndex && (currentlyFocusedElementIndex === undefined || lastPageIndex > currentlyFocusedElementIndex)) { </ins> const lastGoodPageIndex = this.findPreviousIndex(lastPageIndex, false, filter); <del> if (lastGoodPageIndex > -1 && currentlyFocusedElement !== this.view.element(lastGoodPageIndex)) { </del> <ins> if (lastGoodPageIndex > -1 && currentlyFocusedElementIndex !== lastGoodPageIndex) { </ins> this.setFocus([lastGoodPageIndex], browserEvent); } else { this.setFocus([lastPageIndex], browserEvent);


private _pattern = ''; get pattern(): string { return this._pattern; } <ins> private previousPattern = ''; </ins> private _mode: TreeFindMode; get mode(): TreeFindMode { return this._mode; }


private readonly _onSocketClose = new BufferedEmitter<SocketCloseEvent>(); readonly onSocketClose: Event<SocketCloseEvent> = this._onSocketClose.event; <del> private readonly _onSocketTimeout = new BufferedEmitter<void>(); readonly onSocketTimeout: Event<void> = this._onSocketTimeout.event; </del> <ins> private readonly _onSocketTimeout = new BufferedEmitter<SocketTimeoutEvent>(); readonly onSocketTimeout: Event<SocketTimeoutEvent> = this._onSocketTimeout.event; </ins> public get unacknowledgedCount(): number { return this._outgoingMsgId - this._outgoingAckId;


this.table.domNode.ariaLabel = label; } <del> setMarkerSelection(marker?: Marker): void { </del> <ins> setMarkerSelection(selection?: Marker[], focus?: Marker[]): void { </ins> if (this.isVisible()) { <del> if (marker) { const index = this.findMarkerIndex(marker); if (index !== -1) { this.table.setFocus([index]); this.table.setSelection([index]); </del> <ins> if (selection && selection.length > 0) { this.table.setSelection(selection.map(m => this.findMarkerIndex(m))); if (focus && focus.length > 0) { this.table.setFocus(focus.map(f => this.findMarkerIndex(f))); } else { this.table.setFocus([this.findMarkerIndex(selection[0])]); </ins> } } else if (this.getSelection().length === 0 && this.getVisibleItemCount() > 0) { this.table.setFocus([0]);


// TODO@ulugbekna: could this be simply run in `afterRender`? setTimeout(() => { this._input.domNode.focus(); <del> this._input.domNode.select(); </del> <ins> this._input.domNode.setSelectionRange( parseInt(this._input!.domNode.getAttribute('selectionStart')!), parseInt(this._input!.domNode.getAttribute('selectionEnd')!) ); </ins> }, 100); }


return { tasks, taskNames, locations }; } <del> public static async promptForPermission(taskService: ITaskService, storageService: IStorageService, notificationService: INotificationService, workspaceTrustManagementService: IWorkspaceTrustManagementService, </del> <ins> public static async runWithPermission(taskService: ITaskService, storageService: IStorageService, notificationService: INotificationService, workspaceTrustManagementService: IWorkspaceTrustManagementService, </ins> openerService: IOpenerService, configurationService: IConfigurationService, workspaceTaskResult: Map<string, IWorkspaceFolderTaskResult>) { const isWorkspaceTrusted = workspaceTrustManagementService.isWorkspaceTrusted; <del> if (!isWorkspaceTrusted) { </del> <ins> if (!isWorkspaceTrusted || configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'off') { </ins> return; } <del> if (configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'off') { </del> <ins> const hasShownPromptForAutomaticTasks = storageService.getBoolean(HAS_PROMPTED_FOR_AUTOMATIC_TASKS, StorageScope.WORKSPACE, false); const { tasks, taskNames, locations } = RunAutomaticTasks._findAutoTasks(taskService, workspaceTaskResult); if (taskNames.length === 0) { </ins> return; } <del> const hasShownPromptForAutomaticTasks = storageService.getBoolean(HAS_PROMPTED_FOR_AUTOMATIC_TASKS, StorageScope.WORKSPACE, undefined); const { tasks, taskNames, locations } = RunAutomaticTasks._findAutoTasks(taskService, workspaceTaskResult); if (taskNames.length > 0) { if (configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'on') { RunAutomaticTasks._runTasks(taskService, tasks); } else if (!hasShownPromptForAutomaticTasks) { // We have automatic tasks, prompt to allow. this._showPrompt(notificationService, storageService, openerService, configurationService, taskNames, locations).then(allow => { if (allow) { RunAutomaticTasks._runTasks(taskService, tasks); } }); } </del> <ins> if (configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'on') { RunAutomaticTasks._runTasks(taskService, tasks); } else if (configurationService.getValue(ALLOW_AUTOMATIC_TASKS) === 'auto' && !hasShownPromptForAutomaticTasks) { // by default, only prompt once per folder // otherwise, this can be configured via the setting this._showPrompt(notificationService, storageService, openerService, configurationService, taskNames, locations).then(allow => { if (allow) { storageService.store(HAS_PROMPTED_FOR_AUTOMATIC_TASKS, true, StorageScope.WORKSPACE, StorageTarget.USER); RunAutomaticTasks._runTasks(taskService, tasks); } }); </ins> } }


"@vscode/iconv-lite-umd": "0.7.0", "@vscode/tree-sitter-wasm": "^0.0.4", "@vscode/vscode-languagedetection": "1.0.21", <del> "@xterm/addon-clipboard": "0.2.0-beta.39", "@xterm/addon-image": "0.9.0-beta.56", "@xterm/addon-search": "0.16.0-beta.56", "@xterm/addon-serialize": "0.14.0-beta.56", "@xterm/addon-unicode11": "0.9.0-beta.56", "@xterm/addon-webgl": "0.19.0-beta.56", "@xterm/xterm": "5.6.0-beta.56", </del> <ins> "@xterm/addon-clipboard": "^0.2.0-beta.47", "@xterm/addon-image": "^0.9.0-beta.64", "@xterm/addon-search": "^0.16.0-beta.64", "@xterm/addon-serialize": "^0.14.0-beta.64", "@xterm/addon-unicode11": "^0.9.0-beta.64", "@xterm/addon-webgl": "^0.19.0-beta.64", "@xterm/xterm": "^5.6.0-beta.64", </ins> "jschardet": "3.1.3", "tas-client-umd": "0.2.0", "vscode-oniguruma": "1.7.0",


} editor = editor ?? this.editorService.activeTextEditorControl; <del> if (isDiffEditor(editor)) { if (editor.getOriginalEditor().hasTextFocus()) { editor = editor.getOriginalEditor(); } else { editor = editor.getModifiedEditor(); } } </del> if (!editor) { return null;


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


export interface IButtonOptions extends Partial<IButtonStyles> { readonly title?: boolean | string; <ins> readonly ariaLabel?: boolean | string; </ins> readonly supportIcons?: boolean; readonly supportShortLabel?: boolean; readonly secondary?: boolean;


metadata.scrollable : options.outputScrolling; } <ins> //  div.cell_container //    div.output_container //      div.output.output-stream		<-- outputElement parameter //        div.scrollable? tabindex="0" 	<-- contentParent //          div output-item-id="{guid}"	<-- content from outputItem parameter </ins> function renderStream(outputInfo: OutputItem, outputElement: HTMLElement, error: boolean, ctx: IRichRenderContext): IDisposable { const disposableStore = createDisposableStore(); const outputScrolling = scrollingEnabled(outputInfo, ctx.settings);


/** Whether the mouse is within the terminal tabs list. */ export const tabsMouse = new RawContextKey<boolean>(TerminalContextKeyStrings.TabsMouse, false, true); <del> /** The shell type of the active terminal, this is set to the last known value when no terminals exist. */ export const shellType = new RawContextKey<string>(TerminalContextKeyStrings.ShellType, undefined, { type: 'string', description: localize('terminalShellTypeContextKey', "The shell type of the active terminal, this is set to the last known value when no terminals exist.") }); </del> <ins> /** The shell type of the active terminal, this is set if the type can be detected. */ export const shellType = new RawContextKey<string>(TerminalContextKeyStrings.ShellType, undefined, { type: 'string', description: localize('terminalShellTypeContextKey', "The shell type of the active terminal, this is set if the type can be detected.") }); </ins> /** Whether the terminal's alt buffer is active. */ export const altBufferActive = new RawContextKey<boolean>(TerminalContextKeyStrings.AltBufferActive, false, localize('terminalAltBufferActive', "Whether the terminal's alt buffer is active."));


$unregisterTaskProvider(handle: number): Promise<void>; $fetchTasks(filter?: tasks.TaskFilterDTO): Promise<tasks.TaskDTO[]>; $getTaskExecution(value: tasks.TaskHandleDTO | tasks.TaskDTO): Promise<tasks.TaskExecutionDTO>; <del> $executeTask(task: tasks.TaskDTO): Promise<tasks.TaskExecutionDTO>; </del> <ins> $executeTask(task: tasks.TaskHandleDTO | tasks.TaskDTO): Promise<tasks.TaskExecutionDTO>; </ins> $terminateTask(id: string): Promise<void>; $registerTaskSystem(scheme: string, info: tasks.TaskSystemInfoDTO): void; $customExecutionComplete(id: string, result?: number): Promise<void>;


cellKind: cell.cellKind, language: cell.language, source: cell.source, <ins> internalMetadata: cell.internalMetadata, metadata: cell.metadata, </ins> outputs: cell.outputs.map(toNotebookOutputDto) }; }


original: 'Merge Editor', }; <ins> export class OpenResultResource extends Action2 { constructor() { super({ id: 'merge.openResult', icon: Codicon.goToFile, title: { value: localize('openfile', 'Open File'), original: 'Open File', }, category: mergeEditorCategory, menu: [{ id: MenuId.EditorTitle, when: ctxIsMergeEditor, group: 'navigation', order: 1, }], precondition: ctxIsMergeEditor, }); } async run(accessor: ServicesAccessor): Promise<void> { const opener = accessor.get(IOpenerService); const { activeEditor } = accessor.get(IEditorService); if (activeEditor instanceof MergeEditorInput) { await opener.open(activeEditor.result); } } } </ins> export class GoToNextConflict extends Action2 { constructor() { super({


import { BrowserFeatures } from 'vs/base/browser/canIUse'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; import { IEnvironmentVariableInfo } from 'vs/workbench/contrib/terminal/common/environmentVariable'; <del> import { IProcessDataEvent, IShellLaunchConfig, ITerminalDimensionsOverride, ITerminalLaunchError, TerminalShellType, TerminalSettingId, TitleEventSource, TerminalIcon, TerminalSettingPrefix } from 'vs/platform/terminal/common/terminal'; </del> <ins> import { IProcessDataEvent, IShellLaunchConfig, ITerminalDimensionsOverride, ITerminalLaunchError, TerminalShellType, TerminalSettingId, TitleEventSource, TerminalIcon, TerminalSettingPrefix, ITerminalProfileObject } from 'vs/platform/terminal/common/terminal'; </ins> import { IProductService } from 'vs/platform/product/common/productService'; import { formatMessageForTerminal } from 'vs/workbench/contrib/terminal/common/terminalStrings'; import { AutoOpenBarrier } from 'vs/base/common/async';


import { KeyCode } from 'vs/base/common/keyCodes'; import { FindReplaceState } from 'vs/editor/contrib/find/browser/findState'; import { IMessage as InputBoxMessage } from 'vs/base/browser/ui/inputbox/inputBox'; <del> import { SimpleButton, findPreviousMatchIcon, findNextMatchIcon } from 'vs/editor/contrib/find/browser/findWidget'; </del> <ins> import { SimpleButton, findPreviousMatchIcon, findNextMatchIcon, NLS_NO_RESULTS, NLS_MATCHES_LOCATION } from 'vs/editor/contrib/find/browser/findWidget'; </ins> import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { editorWidgetBackground, inputActiveOptionBorder, inputActiveOptionBackground, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground, errorForeground } from 'vs/platform/theme/common/colorRegistry'; import { IColorTheme, registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { ContextScopedFindInput } from 'vs/platform/history/browser/contextScopedHistoryWidget'; import { widgetClose } from 'vs/platform/theme/common/iconRegistry'; <ins> import * as strings from 'vs/base/common/strings'; </ins> const NLS_FIND_INPUT_LABEL = nls.localize('label.find', "Find"); const NLS_FIND_INPUT_" = nls.localize('placeholder.find', "Find");


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


return new TextualOccurenceRequest(model, selection, word, wordSeparators, otherModels); } <del> registerModelAndPositionCommand('_executeDocumentHighlights', (accessor, model, position) => { </del> <ins> registerModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => { </ins> const languageFeaturesService = accessor.get(ILanguageFeaturesService); <del> return getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None); </del> <ins> const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None); return map?.get(model.uri); </ins> }); class WordHighlighter {


"tas-client-umd": "0.1.8", "vscode-oniguruma": "1.7.0", "vscode-textmate": "9.0.0", <del> "xterm": "5.2.0-beta.35", "xterm-addon-canvas": "0.4.0-beta.9", </del> <ins> "xterm": "5.2.0-beta.40", "xterm-addon-canvas": "0.4.0-beta.11", </ins> "xterm-addon-search": "0.11.0", "xterm-addon-unicode11": "0.5.0", <del> "xterm-addon-webgl": "0.15.0-beta.8" </del> <ins> "xterm-addon-webgl": "0.15.0-beta.10" </ins> } }


"sinon": "^1.17.2", "source-map": "^0.4.4", "tslint": "^4.3.1", <del> "typescript": "^2.1.4", </del> <ins> "typescript": "2.1.5", </ins> "typescript-formatter": "4.0.1", "uglify-js": "2.4.8", "underscore": "^1.8.2",


...baseProperty }, [AccessibilityAlertSettingId.Save]: { <del> 'markdownDescription': localize('alert.save', "When in screen reader mode, alerts when a file is saved. Also see {0}", '`#audioCues.save#`'), </del> <ins> 'markdownDescription': localize('alert.save', "When in screen reader mode, alerts when a file is saved. Note that this will be ignored when {0} is enabled.", '`#audioCues.save#`'), </ins> 'type': 'string', 'enum': ['userGesture', 'always', 'never'], <del> 'default': 'never', </del> <ins> 'default': 'always', </ins> 'enumDescriptions': [ localize('alert.save.userGesture', "Alerts when a file is saved via user gesture."), localize('alert.save.always', "Alerts whenever is a file is saved, including auto save."),


this._render(result.value, result.foundInEditor); })); this._start(selection); <ins> this._body.style.zIndex = '50'; </ins> this._editor.addContentWidget(this); }


import { debounce } from 'vs/base/common/decorators'; import { ThemeIcon } from 'vs/platform/theme/common/themeService'; import { URI, UriComponents } from 'vs/base/common/uri'; <ins> import { equals } from 'vs/base/common/arrays'; </ins> export interface IProfileContextProvider { getDefaultSystemShell: (remoteAuthority: string | undefined, os: OperatingSystem) => Promise<string>;


return this.remoteUriFrom(value); } <ins> private tryAddTrailingSeparatorToDirectory(uri: URI, stat: IFileStatWithPartialMetadata): URI { if (stat.isDirectory) { // At this point we know it's a directory and can add the trailing path separator if (!this.endsWithSlash(uri.path)) { return resources.addTrailingPathSeparator(uri); } } return uri; } </ins> private async tryUpdateItems(value: string, valueUri: URI): Promise<UpdateResult> { if ((value.length > 0) && (value[0] === '~')) { const newDir = this.tildaReplace(value);


languageServices.scss = getSCSSLanguageService({ fileSystemProvider: requestService, clientCapabilities: params.capabilities }); languageServices.less = getLESSLanguageService({ fileSystemProvider: requestService, clientCapabilities: params.capabilities }); <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);


assertEmbeddedLanguageContent('
', 'javascript', '              foo();            bar();  '); assertEmbeddedLanguageContent('
', 'javascript', '              return;  ');  assertEmbeddedLanguageContent('
', 'javascript', '             return;n          foo();         ');  }); });


this._element.title = renderStringAsPlaintext(value); } <ins> if (typeof this.options.ariaLabel === 'string') { this._element.setAttribute('aria-label', this.options.ariaLabel); } else if (this.options.ariaLabel) { this._element.setAttribute('aria-label', this._element.title); } </ins> this._label = value; }


let version = this.productService.version; if (this.productService.target) { version = `${version} (${this.productService.target} setup)`; <ins> } else if (this.productService.darwinUniversalAssetId) { version = `${version} (Universal)`; </ins> } const osProps = await this.nativeHostService.getOSProperties();


import { CancellationToken } from 'vs/base/common/cancellation'; import { FuzzyScore } from 'vs/base/common/filters'; import { Iterable } from 'vs/base/common/iterator'; <del> import { RefCountedDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { Disposable, RefCountedDisposable } from 'vs/base/common/lifecycle'; </ins> import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { EditorOption } from 'vs/editor/common/config/editorOptions';


readonly _processManager: ITerminalProcessManager; private readonly _resource: URI; <del> private _shutdownPersistentProcessId: number | undefined; </del> // Enables disposal of the xterm onKey // event when the CwdDetection capability // is added


if (issueType === IssueType.PerformanceIssue && this.receivedSystemInfo && this.receivedPerformanceInfo) { return true; } <ins> if (issueType === IssueType.FeatureRequest) { return true; } </ins> } return false;


.monaco-workbench .select-container:after { content: var(--vscode-icon-chevron-down-content); font-family: var(--vscode-icon-chevron-down-font-family); <del> font-family: codicon; </del> font-size: 16px; width: 16px; height: 16px;


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


end end end <del> __preserve_fish_prompt </del> # Sent whenever a new fish prompt is about to be displayed. # Updates the current working directory.


resetStateMachine = true; } } else if (state === END_STATE) { <del> chClass = (chCode < characterClassesLength ? characterClasses[chCode] : CharacterClass.None); </del> <ins> chClass = characterClassifier.classify(chCode); </ins> // Check if character terminates link if (chClass === CharacterClass.ForceTermination) {


<del> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="3 3 16 16" enable-background="new 3 3 16 16"><polygon fill="#e8e8e8" points="12.597,11.042 15.4,13.845 13.844,15.4 11.042,12.598 8.239,15.4 6.683,13.845 9.485,11.042 6.683,8.239 8.238,6.683 11.042,9.486 13.845,6.683 15.4,8.239"/></svg> </del>  No newline at end of file <ins> <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.784 8L13 11.217 11.215 13 8.001 9.786 4.785 13 3 11.216l3.214-3.215L3 4.785 4.784 3 8 6.216 11.216 3 13 4.785 9.784 8.001z" fill="#C5C5C5"/></svg> </ins>  No newline at end of file


cellList.updateElementHeight2(viewModel.cellAt(0)!, 100); assert.deepStrictEqual(cellList.scrollHeight, 400); <del> // the first cell grows, but it's partially visible, so we won't push down the focused cell </del> <ins> // the first cell grows, but we anchor to the focused cell, so the notebook will scroll down </ins> assert.deepStrictEqual(cellList.scrollTop, 55); assert.deepStrictEqual(cellList.getViewScrollBottom(), 265); <ins> // We don't anchor to the focused cell when cells shrink </ins> cellList.updateElementHeight2(viewModel.cellAt(0)!, 50); <del> assert.deepStrictEqual(cellList.scrollTop, 5); assert.deepStrictEqual(cellList.getViewScrollBottom(), 215); </del> <ins> assert.deepStrictEqual(cellList.scrollTop, 55); assert.deepStrictEqual(cellList.getViewScrollBottom(), 265); </ins> // focus won't be visible after cell 0 grow to 250, so let's try to keep the focused cell visible cellList.updateElementHeight2(viewModel.cellAt(0)!, 250);


`); } <del> if (styles.listInactiveFocusOutline) { </del> <ins> const inactiveFocusAndSelectionOutline = asCssValueWithDefault(styles.listSelectionOutline, styles.listInactiveFocusOutline ?? ''); if (inactiveFocusAndSelectionOutline) { content.push(`.monaco-list${suffix} .monaco-list-row.focused.selected { outline: 1px dotted ${inactiveFocusAndSelectionOutline}; outline-offset: -1px; }`); } if (styles.listSelectionOutline) { // default: activeContrastBorder content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`); } if (styles.listInactiveFocusOutline) { // default: null </ins> content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`); } <del> if (styles.listHoverOutline) { </del> <ins> if (styles.listHoverOutline) {  // default: activeContrastBorder </ins> content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`); }


public toggleActiveConflict(inputNumber: 1 | 2): void { const activeModifiedBaseRange = this.activeModifiedBaseRange.get(); if (!activeModifiedBaseRange) { <ins> this.notificationService.error(localize('noConflictMessage', "There is currently no conflict focused that can be toggled.")); </ins> return; } transaction(tx => {


} } <del> private async selectProfileResources(profileImportExportState: UserDataProfileImportExportState, title: string, description: string): Promise<boolean | undefined> { type ProfileResourceQuickItem = { item: IProfileResourceTreeItem; label: string }; const disposables: DisposableStore = new DisposableStore(); const quickPick = this.quickInputService.createQuickPick<ProfileResourceQuickItem>(); disposables.add(quickPick); quickPick.title = title; quickPick.ok = 'default'; quickPick.customButton = true; quickPick.customLabel = localize('show contents', "Show Contents"); quickPick.description = description; quickPick.canSelectMany = true; quickPick.hideInput = true; quickPick.hideCheckAll = true; quickPick.busy = true; let accepted: boolean = false; let preview: boolean = false; disposables.add(quickPick.onDidAccept(() => { accepted = true; quickPick.hide(); })); disposables.add(quickPick.onDidCustom(() => { preview = true; quickPick.hide(); })); const promise = new Promise<boolean | undefined>((c, e) => { disposables.add(quickPick.onDidHide(() => { try { if (accepted || preview) { for (const root of roots) { root.checkbox.isChecked = quickPick.selectedItems.some(({ item }) => item === root); } c(accepted); } else { c(undefined); } } catch (error) { e(error); } finally { disposables.dispose(); } })); }); quickPick.show(); const roots = await profileImportExportState.getRoots(); quickPick.busy = false; const items = roots.map<ProfileResourceQuickItem>(item => ({ item, label: item.label?.label ?? item.type })); quickPick.items = items; quickPick.selectedItems = items.filter(({ item }) => item.checkbox?.isChecked); return promise; } </del> private async showProfilePreviewView(id: string, name: string, confirmLabel: string, cancelLabel: string, userDataProfilesData: UserDataProfileImportExportState): Promise<boolean> { const disposables = new DisposableStore(); const viewsRegistry = Registry.as<IViewsRegistry>(Extensions.ViewsRegistry);


"category": "Git" }, { <ins> "command": "git.pullFrom", "title": "%command.pullFrom%", "category": "Git" }, { </ins> "command": "git.push", "title": "%command.push%", "category": "Git"


}, 'emmet.excludeLanguages': { 'type': 'array', <del> 'default': [], </del> <ins> 'default': ['markdown'], </ins> 'description': nls.localize('emmetExclude', "An array of languages where emmet abbreviations should not be expanded.") }, }


return false; } const lineText = model.textModel.getLineContent(state.ghostText.lineNumber); <del> if (!lineText) { return false; } </del> const ghostText = state.ghostText.renderForScreenReader(lineText); if (!ghostText) { return false;


/** * Creates a new parameter information object. * <del> * @param label A label string. </del> <ins> * @param label A label string or inclusive start and exclusive end offsets within its containing. </ins> * @param documentation A doc string. */ <del> constructor(label: string, documentation?: string | MarkdownString); </del> <ins> constructor(label: string | [number, number], documentation?: string | MarkdownString); </ins> } /**


location: IMPORT_PROFILE_PREVIEW_VIEW, }, () => importProfileFn()); } <del> })); </del> <ins> }), this.notificationService); </ins> return importAction; }


visibility: hidden; } <ins> /* Composition view */ .terminal .composition-view { background: #000; color: #FFF; display: none; position: absolute; white-space: nowrap; } .terminal .composition-view.active { display: block; } </ins> /* Base selection colors */ .monaco-workbench .panel.integrated-terminal .xterm *::selection {


const hoverOpts = this._editor.getOption(EditorOption.hover); this._isHoverEnabled = hoverOpts.enabled; this._isHoverSticky = hoverOpts.sticky; <ins> this._hidingDelay = hoverOpts.hidingDelay; </ins> if (this._isHoverEnabled) { this._toUnhook.add(this._editor.onMouseDown((e: IEditorMouseEvent) => this._onEditorMouseDown(e))); this._toUnhook.add(this._editor.onMouseUp((e: IEditorMouseEvent) => this._onEditorMouseUp(e)));


throw new ExtensionManagementError(nls.localize('malicious extension', "Can't install '{0}' extension since it was reported to be problematic.", extension.identifier.id), ExtensionManagementErrorCode.Malicious); } <del> const deprecated = report.deprecated[extension.identifier.id.toLowerCase()]; if (deprecated?.disallowInstall) { const message = deprecated.extension ? nls.localize('unsupported extension with alternative', "Can't install '{0}' extension because it is deprecated. Use {1} extension instead.", extension.identifier.id, deprecated.extension.displayName) : nls.localize('unsupported extension without alternative and no message', "Can't install '{0}' extension because it is deprecated.", extension.identifier.id); throw new ExtensionManagementError(message, ExtensionManagementErrorCode.Deprecated); } </del> if (!await this.canInstall(extension)) { const targetPlatform = await this.getTargetPlatform(); throw new ExtensionManagementError(nls.localize('incompatible platform', "The '{0}' extension is not available in {1} for {2}.", extension.identifier.id, this.productService.nameLong, TargetPlatformToString(targetPlatform)), ExtensionManagementErrorCode.IncompatibleTargetPlatform);


vscode-nls "^5.0.1" vscode-uri "^3.0.3" <del> vscode-jsonrpc@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.1.tgz#f30b0625ebafa0fb3bc53e934ca47b706445e57e" integrity sha512-N/WKvghIajmEvXpatSzvTvOIz61ZSmOSa4BRA4pTLi+1+jozquQKP/MkaylP9iB68k73Oua1feLQvH3xQuigiQ== </del> <ins> vscode-jsonrpc@8.0.2-next.1: version "8.0.2-next.1" resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2-next.1.tgz#6bdc39fd194782032e34047eeefce562941259c6" integrity sha512-sbbvGSWja7NVBLHPGawtgezc8DHYJaP4qfr/AaJiyDapWcSFtHyPtm18+LnYMLTmB7bhOUW/lf5PeeuLpP6bKA== </ins> <del> vscode-languageserver-protocol@3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.1.tgz#e801762c304f740208b6c804a0cf21f2c87509ed" integrity sha512-BNlAYgQoYwlSgDLJhSG+DeA8G1JyECqRzM2YO6tMmMji3Ad9Mw6AW7vnZMti90qlAKb0LqAlJfSVGEdqMMNzKg== </del> <ins> vscode-languageserver-protocol@3.17.2-next.5: version "3.17.2-next.5" resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2-next.5.tgz#9bc747411c3ce9e1d73c2714bf6555e0199eec26" integrity sha512-UlH+QL4Q4lX94of/UPDDwwWIkd8w7dtMW4khzvEDUoykiG9tba0iG6V0bAiv8XVpnBIUYjL2FNFiL3zl+TY1Sw== </ins> dependencies: <del> vscode-jsonrpc "8.0.1" vscode-languageserver-types "3.17.1" </del> <ins> vscode-jsonrpc "8.0.2-next.1" vscode-languageserver-types "3.17.2-next.2" </ins> vscode-languageserver-textdocument@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== <del> vscode-languageserver-types@3.17.1, vscode-languageserver-types@^3.17.1: </del> <ins> vscode-languageserver-types@3.17.2-next.2: version "3.17.2-next.2" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2-next.2.tgz#af5d6978eee7682aab87c1419323f5b141ac6596" integrity sha512-TiAkLABgqkVWdAlC3XlOfdhdjIAdVU4YntPUm9kKGbXr+MGwpVnKz2KZMNBcvG0CFx8Hi8qliL0iq+ndPB720w== vscode-languageserver-types@^3.17.1: </ins> version "3.17.1" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.1.tgz#c2d87fa7784f8cac389deb3ff1e2d9a7bef07e16" integrity sha512-K3HqVRPElLZVVPtMeKlsyL9aK0GxGQpvtAUTfX4k7+iJ4mc1M+JM+zQwkgGy2LzY0f0IAafe8MKqIkJrxfGGjQ== <del> vscode-languageserver@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.0.1.tgz#56bd7a01f5c88af075a77f1d220edcb30fc4bdc7" integrity sha512-sn7SjBwWm3OlmLtgg7jbM0wBULppyL60rj8K5HF0ny/MzN+GzPBX1kCvYdybhl7UW63V5V5tRVnyB8iwC73lSQ== </del> <ins> vscode-languageserver@^8.0.2-next.4: version "8.0.2-next.4" resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.0.2-next.4.tgz#c10cc95be06325b56b7ec1d10271c9e4adf3ef07" integrity sha512-B3roWH4TmJiB6Zh5+r7zu0QdlLqJsPdGo0LeEi6OiLfrHYCDlcI7DNcQ7F17vWmxC3C82SrxMt/EuLBMpKQM0A== </ins> dependencies: <del> vscode-languageserver-protocol "3.17.1" </del> <ins> vscode-languageserver-protocol "3.17.2-next.5" </ins> vscode-nls@^5.0.1: version "5.0.1"


"git": { "name": "chromium", "repositoryUrl": "https://chromium.googlesource.com/chromium/src", <del> "commitHash": "16e28102fdf876ce6d136674ba66343ede07441f" </del> <ins> "commitHash": "a8a8309404d39efa9c624d7aee0e27562721e522" </ins> } }, "licenseDetail": [


const noMatches = this.filter.totalCount > 0 && this.filter.matchCount === 0; if (this.pattern && noMatches) { <del> this.widget?.showMessage({ type: MessageType.WARNING, content: localize('not found', "No elements found.") }); </del> <ins> if (this.tree.options.showNotFoundMessage ?? true) { this.widget?.showMessage({ type: MessageType.WARNING, content: localize('not found', "No elements found.") }); } else { this.widget?.showMessage({ type: MessageType.WARNING }); } </ins> } else { this.widget?.clearMessage(); }


cp -r usr/share/@@NAME@@/* %{buildroot}/usr/share/@@NAME@@ cp -r usr/share/applications/@@NAME@@.desktop %{buildroot}/usr/share/applications cp -r usr/share/applications/@@NAME@@-url-handler.desktop %{buildroot}/usr/share/applications <ins> cp -r usr/share/mime/packages/@@NAME@@-workspace.xml %{buildroot}/usr/share/mime/packages/@@NAME-workspace.xml </ins> cp -r usr/share/pixmaps/@@ICON@@.png %{buildroot}/usr/share/pixmaps cp usr/share/bash-completion/completions/@@NAME@@ %{buildroot}/usr/share/bash-completion/completions/@@NAME@@ cp usr/share/zsh/site-functions/_@@NAME@@ %{buildroot}/usr/share/zsh/site-functions/_@@NAME@@


} private async _getMediaFilesEdit(document: vscode.TextDocument, dataTransfer: vscode.DataTransfer, token: vscode.CancellationToken): Promise<vscode.DocumentPasteEdit | undefined> { <del> if (document.uri.scheme === Schemes.untitled) { </del> <ins> if (getParentDocumentUri(document.uri).scheme === Schemes.untitled) { </ins> return; }


"git": { "name": "electron", "repositoryUrl": "https://github.com/electron/electron", <del> "commitHash": "415301c477b600502cf264e93318dda551288829" </del> <ins> "commitHash": "805674fa8aae4d652b6956a96f8eadf9d9137457" </ins> } }, "isOnlyProductionDependency": true, "license": "MIT", <del> "version": "25.8.4" </del> <ins> "version": "25.9.1" </ins> }, { "component": {


enabled: boolean(input.enabled, this.defaultValue.enabled), delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 10000), sticky: boolean(input.sticky, this.defaultValue.sticky), <ins> hidingDelay: EditorIntOption.clampedInt(input.hidingDelay, this.defaultValue.hidingDelay, 0, 600000), </ins> above: boolean(input.above, this.defaultValue.above), }; }


if (ir) { let oldEndViewColumn = CursorColumns.visibleColumnFromColumn2(config, model, range.getEndPosition()); const oldEndColumn = range.endColumn; <del> let beforeText = 'n'; if (indentation !== config.normalizeIndentation(ir.beforeEnter)) { beforeText = config.normalizeIndentation(ir.beforeEnter) + lineText.substring(indentation.length, range.startColumn - 1) + 'n'; range = new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn); } </del> const newLineContent = model.getLineContent(range.endLineNumber); const firstNonWhitespace = strings.firstNonWhitespaceIndex(newLineContent); if (firstNonWhitespace >= 0) {


resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== <ins> eslint-plugin-header@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== </ins> eslint-plugin-jsdoc@^19.1.0: version "19.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-19.1.0.tgz#fcc17f0378fdd6ee1c847a79b7211745cb05d014"


return Promise.all(bps.map(bp => debugService.removeBreakpoints(bp.getId()))); } if (debugService.getConfigurationManager().canSetBreakpointsIn(editor.getModel())) { <del> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber }]); </del> <ins> return debugService.addBreakpoints(modelUri, [{ lineNumber: position.lineNumber }], 'debugEditorActions.toggleBreakpointAction'); </ins> } return Promise.resolve(null);


# Visual Studio Code - Open Source <del> [VS Code](http://code.visualstudio.com) is a new choice of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. Code provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools. </del> <ins> [VS Code](http://code.visualstudio.com) is a new type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. Code provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools. </ins> <img width="550" alt="vscodereadme" align="middle"  src="https://cloud.githubusercontent.com/assets/1487073/11243985/98562110-8e0b-11e5-9922-29a0b4884eab.png">


import { IChatReplyFollowup, IChatService, ISlashCommand, InteractiveSessionVoteDirection } from 'vs/workbench/contrib/chat/common/chatService'; import { IChatRequestViewModel, IChatResponseViewModel, IChatWelcomeMessageViewModel, isRequestVM, isResponseVM, isWelcomeVM } from 'vs/workbench/contrib/chat/common/chatViewModel'; import { IWordCountResult, getNWords } from 'vs/workbench/contrib/chat/common/chatWordCounter'; <ins> import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; </ins> import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityContribution'; const $ = dom.$;


await profiler.writeProfile(profileMain, `${filenamePrefix}-main.cpuprofile${suffix}`); await profiler.writeProfile(profileRenderer, `${filenamePrefix}-renderer.cpuprofile${suffix}`); await profiler.writeProfile(profileExtHost, `${filenamePrefix}-exthost.cpuprofile${suffix}`); }); }


} if (outputLineHeight || fontSize || outputFontSize) { <del> configuration.outputLineHeight = this._computeOutputLineHeight(); </del> <ins> const lineHeight = this.configurationService.getValue<number>(NotebookSetting.outputLineHeight); configuration.outputLineHeight = this._computeOutputLineHeight(lineHeight, configuration.outputFontSize); </ins> } if (outputWordWrap) {


<del> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ declare module 'vscode' { // https://github.com/microsoft/vscode/issues/127473 /** * The state of a comment thread. */ export enum CommentThreadState { Unresolved = 0, Resolved = 1 } export interface CommentThread { /** * The optional state of a comment thread, which may affect how the comment is displayed. */ state?: CommentThreadState; } } </del>


this.stateModel.setRuntimeValue(LayoutStateKeys.SIDEBAR_HIDDEN, true); } } <ins> // Side bar is hidden and a new window is opened with activity bar not visible (not default) else if (isNewWindow && activityBarNotDefault) { // Open side bar if there is a view container to restore const viewContainerToRestore = this.storageService.get(SidebarPart.activeViewletSettingsKey, StorageScope.WORKSPACE, this.viewDescriptorService.getDefaultViewContainer(ViewContainerLocation.Sidebar)?.id); if (viewContainerToRestore) { this.state.initialization.views.containerToRestore.sideBar = viewContainerToRestore; this.stateModel.setRuntimeValue(LayoutStateKeys.SIDEBAR_HIDDEN, false); } } </ins> // Panel View Container To Restore if (this.isVisible(Parts.PANEL_PART)) {


const cmd = quote(args.shift()!); command += (cmd[0] === ''') ? `& ${cmd} ` : `${cmd} `; for (const a of args) { <del> command += `${quote(a)} `; </del> <ins> command += (a === '<' || a === '>') ? a : quote(a); command += ' '; </ins> } } break;


let hint = ''; const disableKeybinding = this._keybindingService.lookupKeybinding(AccessibilityCommandId.DisableVerbosityHint, this._contextKeyService)?.getAriaLabel(); if (disableKeybinding) { <del> hint = localize('acessibleViewDisableHint', "Disable accessibility verbosity for this feature ({0}). This will disable the hint to open the accessible view for example.n", disableKeybinding); </del> <ins> hint = localize('acessibleViewDisableHint', "nnDisable accessibility verbosity for this feature ({0}).", disableKeybinding); </ins> } else { <del> hint = localize('accessibleViewDisableHintNoKb', "Add a keybinding for the command Disable Accessible View Hint, which disables accessibility verbosity for this feature.n"); </del> <ins> hint = localize('accessibleViewDisableHintNoKb', "nnAdd a keybinding for the command Disable Accessible View Hint, which disables accessibility verbosity for this feature.s"); </ins> } return hint; }


this.expandReplyArea(); } else if (hasExistingComments) { this.createReplyButton(this.commentEditor, this.form); <del> } else if (focus && (!this._commentThread.comments || this._commentThread.comments.length === 0)) { </del> <ins> } else if (focus && (this._commentThread.comments && this._commentThread.comments.length === 0)) { </ins> this.expandReplyArea(); } this._error = dom.append(this.form, dom.$('.validation-error.hidden'));


private _bufferTracker: BufferContentTracker | undefined; private _bufferProvider: TerminalAccessibleBufferProvider | undefined; private _xterm: Pick<IXtermTerminal, 'shellIntegration' | 'getFont'> & { raw: Terminal } | undefined; <del> private _onCommandExecutedShowListener: MutableDisposable<IDisposable> = new MutableDisposable(); </del> <ins> private _onDidRunCommand: MutableDisposable<IDisposable> = new MutableDisposable(); </ins> constructor( private readonly _instance: ITerminalInstance,


importProfile(uri: URI, options?: IProfileImportOptions): Promise<void>; showProfileContents(): Promise<void>; createFromCurrentProfile(name: string): Promise<void>; <del> createTemporaryProfile(from: IUserDataProfile, name: string, extensionsDisabled: boolean): Promise<void>; </del> <ins> createTroubleshootProfile(): Promise<void>; </ins> setProfile(profile: IUserDataProfileTemplate): Promise<void>; }


.comments-panel .comments-panel-container .tree-container .comment-thread-container .comment-snippet-container .count, .comments-panel .comments-panel-container .tree-container .comment-thread-container .comment-metadata-container .user { <del> overflow: hidden; text-overflow: ellipsis; </del> <ins> min-width: fit-content; </ins> } .comments-panel .comments-panel-container .tree-container .comment-thread-container .comment-snippet-container .text {


this.initServices(configuration); const isSnap = process.platform === 'linux' && process.env.SNAP && process.env.SNAP_REVISION; <ins> const targetExtension = configuration.data.extensionId ? configuration.data.enabledExtensions.find(extension => extension.id === configuration.data.extensionId) : undefined; </ins> this.issueReporterModel = new IssueReporterModel({ issueType: configuration.data.issueType || IssueType.Bug, versionInfo: {


private onDidActiveEditorChange(): void { const activeEditorGroup = this.editorGroupService.activeGroup; const activeEditorPane = activeEditorGroup.activeEditorPane; if (this.lastActiveEditor && this.editorHelper.matchesEditorIdentifier(this.lastActiveEditor, activeEditorPane)) { return; // return if the active editor is still the same }


return extHostQuickOpen.showWorkspaceFolderPick(options); }, showInputBox(options?: vscode.InputBoxOptions, token?: vscode.CancellationToken) { <del> if (options?.validateInput2) { checkProposedApiEnabled(extension, 'inputBoxSeverity'); } </del> return extHostQuickOpen.showInput(options, token); }, showOpenDialog(options) {


const title = localize('import profile preview', "Import"); if (!userDataProfileImportState.isEmpty()) { <del> let importProfile = await this.selectProfileResources( userDataProfileImportState, localize('import title', "{0}: {1} ({2})", PROFILES_CATEGORY.value, title, profileTemplate.name), localize('import description', "Choose what to import") ); if (importProfile === undefined) { return; } if (!importProfile) { importProfile = await this.showProfilePreviewView(`workbench.views.profiles.import.preview`, title, title, localize('cancel', "Cancel"), userDataProfileImportState); } </del> <ins> const importProfile = await this.showProfilePreviewView(`workbench.views.profiles.import.preview`, title, title, localize('cancel', "Cancel"), userDataProfileImportState); </ins> if (!importProfile) { return; }


'remote'?: string; 'force'?: boolean; 'do-not-sync'?: boolean; <ins> 'preserve-env'?: boolean; </ins> 'force-user-env'?: boolean; 'force-disable-user-env'?: boolean; 'sync'?: 'on' | 'off';


// 	}); // }); <del> test('No expanding when html is excluded in the settings in completion list', async () => { </del> <ins> test.skip('No expanding when html is excluded in the settings in completion list', async () => { </ins> const oldConfig = workspace.getConfiguration('emmet').inspect('excludeLanguages')?.globalValue; await workspace.getConfiguration('emmet').update('excludeLanguages', ['html'], ConfigurationTarget.Global); await testHtmlCompletionProvider(new Selection(9, 6, 9, 6), '', '', true);


// to get better profile traces. Last, we listen on stdout for a signal that tells us to // stop profiling. if (args['prof-startup']) { const portMain = await findFreePort(9222, 10, 6000); const portRenderer = await findFreePort(portMain + 1, 10, 6000); const portExthost = await findFreePort(portRenderer + 1, 10, 6000);


*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import * as nls from '../../../../nls.js'; import { IPreferencesService, ISetting } from '../../../services/preferences/common/preferences.js'; import { settingKeyToDisplayFormat } from '../../preferences/browser/settingsTreeModels.js'; </del> <ins> import { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js'; import { IAction } from '../../../../base/common/actions.js'; import type { Tokens } from '../../../../base/common/marked/marked.js'; import { Schemas } from '../../../../base/common/network.js'; </ins> import { URI } from '../../../../base/common/uri.js'; <ins> import * as nls from '../../../../nls.js'; import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js'; </ins> import { ConfigurationTarget, IConfigurationService } from '../../../../platform/configuration/common/configuration.js'; import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js'; <del> import { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js'; import { IAction } from '../../../../base/common/actions.js'; </del> import { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js'; <del> import { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js'; import { Schemas } from '../../../../base/common/network.js'; import { Tokens } from '../../../../base/common/marked/marked.js'; </del> <ins> import { IPreferencesService, ISetting } from '../../../services/preferences/common/preferences.js'; import { settingKeyToDisplayFormat } from '../../preferences/browser/settingsTreeModels.js'; </ins> export class SimpleSettingRenderer { private readonly codeSettingRegex: RegExp;


// if agent has a refer command, massage the input to include the agent name await this._instaService.invokeFunction(sendRequest, massagedInput); <del> if (!this._session.lastExchange) { // DONE when there wasn't any exchange yet. We used the inline chat only as trampoline return State.ACCEPT; } return State.WAIT_FOR_INPUT; </del> <ins> return State.ACCEPT; </ins> } this._session.addInput(new SessionPrompt(input, this._nextAttempt, this._nextWithIntentDetection));


white-space: nowrap; } <ins> .monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row > .option-text-description { display: none; } </ins> .monaco-select-box-dropdown-container > .select-box-dropdown-container-width-control { flex: 1 1 auto; align-self: flex-start;


export class CursorMoveCommands { <del> public static addCursorDown(context: CursorContext, cursors: CursorState[]): CursorState[] { </del> <ins> public static addCursorDown(context: CursorContext, cursors: CursorState[], useLogicalLine: boolean): CursorState[] { </ins> let result: CursorState[] = [], resultLen = 0; <del> for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(context.config, context.viewModel, cursor.viewState)); </del> <ins> if (useLogicalLine) { for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromModelState(MoveOperations.translateDown(context.config, context.model, cursor.modelState)); } } else { for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(context.config, context.viewModel, cursor.viewState)); } </ins> } return result; } <del> public static addCursorUp(context: CursorContext, cursors: CursorState[]): CursorState[] { </del> <ins> public static addCursorUp(context: CursorContext, cursors: CursorState[], useLogicalLine: boolean): CursorState[] { </ins> let result: CursorState[] = [], resultLen = 0; <del> for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(context.config, context.viewModel, cursor.viewState)); </del> <ins> if (useLogicalLine) { for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromModelState(MoveOperations.translateUp(context.config, context.model, cursor.modelState)); } } else { for (let i = 0, len = cursors.length; i < len; i++) { const cursor = cursors[i]; result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState); result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(context.config, context.viewModel, cursor.viewState)); } </ins> } return result; }


"editor.foreground": "#000000e4", "editor.inactiveSelectionBackground": "#E5EBF1", "editor.selectionHighlightBackground": "#ADD6FF80", <del> "editorCursor.foreground": "#005FB8", </del> "editorGroup.border": "#0000001a", "editorGroupHeader.tabsBackground": "#f8f8f8", "editorGroupHeader.tabsBorder": "#0000001a",


} @throttle <ins> async pullFromRemote(remote : string, branch : string): Promise<void> { await this.run(Operation.Pull, () => this.repository.pull(false, remote, branch)); } @throttle </ins> async push(): Promise<void> { await this.run(Operation.Push, () => this.repository.push()); }


column = model.getLineMaxColumn(lineNumber); } } else if (wordNavigationType === WordNavigationType.WordAccessibility) { <ins> if (movedDown) { // If we move to the next line, pretend that the cursor is right before the first character. // This is needed when the first word starts right at the first character - and in order not to miss it, // we need to start before. column = 0; } </ins> while ( nextWordOnLine <del> && nextWordOnLine.wordType === WordType.Separator </del> <ins> && (nextWordOnLine.wordType === WordType.Separator || nextWordOnLine.start + 1 <= column ) </ins> ) { // Skip over a word made up of one single separator <ins> // Also skip over word if it begins before current cursor position to ascertain we're moving forward at least 1 character. </ins> nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1)); } if (nextWordOnLine) { <del> column = nextWordOnLine.end + 1; </del> <ins> column = nextWordOnLine.start + 1; </ins> } else { column = model.getLineMaxColumn(lineNumber); }


if (selectedDiffs_.length > 0) { const selections = this._editors.modifiedSelections.read(reader); <del> const btn = new RevertButton(selections[selections.length - 1].positionLineNumber, this._widget, selectedDiffs_.flatMap(d => d.rangeMappings), true); </del> <ins> const btn = store.add(new RevertButton(selections[selections.length - 1].positionLineNumber, this._widget, selectedDiffs_.flatMap(d => d.rangeMappings), true)); </ins> this._editors.modified.addGlyphMarginWidget(btn); glyphWidgetsModified.push(btn); }


rcedit "^0.3.0" rimraf "^2.4.2" semver "^4.3.4" <ins> sumchecker "^3.0.1" </ins> temp "^0.8.3" vinyl "^3.0.0" vinyl-fs "^3.0.3"


const myToken = new CancellationTokenSource(); this._pendingUpdate.set(model.id, myToken); <del> this._editorWorkerService.computeMoreMinimalEdits(model.uri, [{ text: value, range: model.getFullModelRange() }]).then(edits => { </del> <ins> try { const edits = await this._editorWorkerService.computeMoreMinimalEdits(model.uri, [{ text: value, range: model.getFullModelRange() }]); </ins> // remove token this._pendingUpdate.delete(model.id);


.quick-input-header { display: flex; <del> padding: 8px 6px 0px 6px; margin-bottom: -2px; </del> <ins> padding: 8px 6px 6px 6px; </ins> } .quick-input-widget.hidden-input .quick-input-header {


} export interface IMessage { <del> readonly content: string; </del> <ins> readonly content?: string; </ins> readonly formatContent?: boolean; // defaults to false readonly type?: MessageType; }


UpdateAction, ReloadAction, EnableDropDownAction, DisableDropDownAction, ExtensionStatusLabelAction, SetFileIconThemeAction, SetColorThemeAction, RemoteInstallAction, ExtensionStatusAction, LocalInstallAction, ToggleSyncExtensionAction, SetProductIconThemeAction, ActionWithDropDownAction, InstallDropdownAction, InstallingLabelAction, UninstallAction, ExtensionActionWithDropdownActionViewItem, ExtensionDropDownAction, <del> InstallAnotherVersionAction, ExtensionEditorManageExtensionAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction </del> <ins> InstallAnotherVersionAction, ExtensionEditorManageExtensionAction, WebInstallAction, SwitchToPreReleaseVersionAction, SwitchToReleasedVersionAction, MigrateDeprecatedExtension </ins> } from 'vs/workbench/contrib/extensions/browser/extensionsActions'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';


import { ICodeEditorService } from 'vs/editor/common/services/codeEditorService'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; <del> import { IEditorOptions, Position as EditorPosition } from 'vs/platform/editor/common/editor'; </del> <ins> import { Position as EditorPosition, ITextEditorOptions } from 'vs/platform/editor/common/editor'; </ins> import { MainThreadTextEditor } from './mainThreadEditor'; import { ITextEditorConfigurationUpdate, TextEditorRevealType, IApplyEditsOptions, IUndoStopOptions } from 'vs/workbench/api/node/extHost.protocol';


// Store into config object URL this.configuration = { <ins> zoomLevel: data.zoomLevel, </ins> appRoot: this.environmentService.appRoot, windowId: 0, userEnv: {},


} else if (!edit.newResource && edit.oldResource) { edits.push(new DeleteEdit(edit.oldResource, edit.options ?? {}, false)); } else if (edit.newResource && !edit.oldResource) { <del> edits.push(new CreateEdit(edit.newResource, edit.options ?? {}, undefined)); </del> <ins> edits.push(new CreateEdit(edit.newResource, edit.options ?? {}, edit.options.contentsBase64 ? decodeBase64(edit.options.contentsBase64) : undefined)); </ins> } }


if (initialName !== value && this.userDataProfilesService.profiles.some(p => p.name === value)) { return { content: localize('profileExists', "Profile with name {0} already exists.", value), <del> type: MessageType.ERROR </del> <ins> type: MessageType.WARNING </ins> }; } return null;


* created with all its APIs available for use by extensions. When using the Terminal object * of a TerminalRenderer it acts just like normal only the extension that created the * TerminalRenderer essentially acts as a process. For example when an <del> * [Terminal.onData](#Terminal.onData) listener is registered, that will fire when * [TerminalRenderer.write](#TerminalRenderer.write) is called. Similarly when </del> <ins> * [Terminal.onDidWriteData](#Terminal.onDidWriteData) listener is registered, that will fire * when [TerminalRenderer.write](#TerminalRenderer.write) is called. Similarly when </ins> * [Terminal.sendText](#Terminal.sendText) is triggered that will fire the <del> * [TerminalRenderer.onInput](#TerminalRenderer.onInput) event. </del> <ins> * [TerminalRenderer.onDidAcceptInput](#TerminalRenderer.onDidAcceptInput) event. </ins> * * **Example:** Create a terminal renderer, show it and write hello world in red * ```typescript


import {SyncDescriptor} from 'vs/platform/instantiation/common/descriptors'; import {KeyMod, KeyChord, KeyCode} from 'vs/base/common/keyCodes'; import {CloseEditorsInGroupAction, CloseEditorsInOtherGroupsAction, CloseAllEditorsAction, MoveGroupLeftAction, MoveGroupRightAction, SplitEditorAction, KeepEditorAction, CloseOtherEditorsInGroupAction, OpenToSideAction, <del> NavigateBetweenGroupsAction, FocusFirstGroupAction, FocusSecondGroupAction, FocusThirdGroupAction, EvenGroupWidthsAction, MaximizeGroupAction, MinimizeOtherGroupsAction, FocusPreviousGroup, FocusNextGroup, ShowEditorsInLeftGroupAction, </del> <ins> NavigateBetweenGroupsAction, FocusActiveGroupAction, FocusFirstGroupAction, FocusSecondGroupAction, FocusThirdGroupAction, EvenGroupWidthsAction, MaximizeGroupAction, MinimizeOtherGroupsAction, FocusPreviousGroup, FocusNextGroup, ShowEditorsInLeftGroupAction, </ins> toEditorQuickOpenEntry, CloseLeftEditorsInGroupAction, CloseRightEditorsInGroupAction, OpenNextEditor, OpenPreviousEditor, NavigateBackwardsAction, NavigateForwardAction, ReopenClosedEditorAction, OpenPreviousRecentlyUsedEditorInGroupAction, NAVIGATE_IN_LEFT_GROUP_PREFIX, OpenPreviousEditorFromHistoryAction, ShowAllEditorsAction, NAVIGATE_ALL_EDITORS_GROUP_PREFIX, ClearEditorHistoryAction, ShowEditorsInCenterGroupAction, MoveEditorRightInGroupAction, NAVIGATE_IN_CENTER_GROUP_PREFIX, ShowEditorsInRightGroupAction, NAVIGATE_IN_RIGHT_GROUP_PREFIX, RemoveFromEditorHistoryAction, FocusLastEditorInStackAction, OpenNextRecentlyUsedEditorInGroupAction, MoveEditorToLeftGroupAction, MoveEditorToRightGroupAction, MoveEditorLeftInGroupAction


return; } <ins> if (ref !== undefined && typeof ref !== 'string') { console.warn('Failed to open URI:', uri); return; } </ins> let cloneUri: Uri; try { let rawUri = Array.isArray(data.url) ? data.url[0] : data.url;


import { ParsedArgs } from 'vs/platform/environment/common/environment'; import product from 'vs/platform/node/product'; import pkg from 'vs/platform/node/package'; import * as paths from 'path'; import * as os from 'os'; <ins> import * as fs from 'fs'; </ins> import { whenDeleted } from 'vs/base/node/pfs'; <del> import { writeFileAndFlushSync } from 'vs/base/node/extfs'; </del> import { findFreePort } from 'vs/base/node/ports'; function shouldSpawnCliProcess(argv: ParsedArgs): boolean {


this.menuDisposables = []; <ins> addDisposableListener(menuElement, EventType.KEY_DOWN, (e) => { const event = new StandardKeyboardEvent(e); // Stop tab navigation of menus if (event.equals(KeyCode.Tab)) { EventHelper.stop(e, true); } }); </ins> if (options.enableMnemonics) { this.menuDisposables.push(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) => { const key = e.key.toLocaleLowerCase();


firstPageIndex = this.view.indexAfter(scrollTop - 1); } <del> const firstPageElement = this.view.element(firstPageIndex); </del> const currentlyFocusedElementIndex = this.getFocus()[0]; <del> const currentlyFocusedElement = this.view.element(currentlyFocusedElementIndex); if (currentlyFocusedElement !== firstPageElement && currentlyFocusedElementIndex >= firstPageIndex) { </del> <ins> if (currentlyFocusedElementIndex !== firstPageIndex && (currentlyFocusedElementIndex === undefined || currentlyFocusedElementIndex >= firstPageIndex)) { </ins> const firstGoodPageIndex = this.findNextIndex(firstPageIndex, false, filter); <del> if (firstGoodPageIndex > -1 && currentlyFocusedElement !== this.view.element(firstGoodPageIndex)) { </del> <ins> if (firstGoodPageIndex > -1 && currentlyFocusedElementIndex !== firstGoodPageIndex) { </ins> this.setFocus([firstGoodPageIndex], browserEvent); } else { this.setFocus([firstPageIndex], browserEvent);


<del> 197a62bdc616148537af5c8f1256563a27a733cae0d41b9a42e9e9f2901cc9ae *electron-v25.8.1-darwin-arm64-symbols.zip 985f4beee009ef6dbe7af75009a1b281aff591b989ee544bd4d2c814f9c4428d *electron-v25.8.1-darwin-arm64.zip 56209b302eb30bff3727dbb74467cb2e6e93e5a99d6939d1c3a7c8320fa26d72 *electron-v25.8.1-darwin-x64-symbols.zip fe61a3221d4c5dc9415dc2cce81010db61bb4a5ab5021d1023f48786dbaf0b28 *electron-v25.8.1-darwin-x64.zip 1b52beba5b1b133cccd253c32648cdfa51659e5db2f20441baafd6a3c8fcb56a *electron-v25.8.1-linux-arm64-symbols.zip 931208419f859f528e19805ae14b5b075213bc40dd20da9e03d8b71d849c147d *electron-v25.8.1-linux-arm64.zip 61929b61541f23b75cca6b1a6764c219499a9799376298cc9061fc1a8716d1e1 *electron-v25.8.1-linux-armv7l-symbols.zip dd3390de2426a1cea9d3176e404b8fb250844a9b0e48cf01822fa66f3c3c4a48 *electron-v25.8.1-linux-armv7l.zip 1812459d2bd0440e35134ddb3f56e8e173a8791db888756d22080ace244248ba *electron-v25.8.1-linux-x64-symbols.zip de556aef0a80a8fe7b2b39d74ab0bdecc65d72bba3b7349460d18ef2a22fa323 *electron-v25.8.1-linux-x64.zip baa1bb8985b09100b1b2b710cea2c3f8e72a7f5d0e3421cbf675c25e732b0d9f *electron-v25.8.1-win32-arm64-pdb.zip 4a22945c2584677a822d8f9eb6cb23e5607b985f85ec7523ab977b73dd6487c2 *electron-v25.8.1-win32-arm64-symbols.zip 567d3188f86176a875fb6562040a3767c638814cf06073e7131495ec681b3957 *electron-v25.8.1-win32-arm64.zip 148589f41cd4175b85138450a0a0e32eef1a519d5cb5f471374e167518a2ed47 *electron-v25.8.1-win32-ia32-pdb.zip f284ac337a8d5e564081fee6d26c2b2f782feed0bcbe29b7507f749da36b6e5c *electron-v25.8.1-win32-ia32-symbols.zip 6737e56588a2707534979e5dcfbf68399971a5e98d4848fa29fb43b7ae1dc378 *electron-v25.8.1-win32-ia32.zip 23c6ef26f7e1914149def7525b728212340fc6befa6bac30eafec8f8229f9e67 *electron-v25.8.1-win32-x64-pdb.zip 3eb3b87587b136e636d82fa4d28015d8ef6709468b3bb33eddae80d83076a053 *electron-v25.8.1-win32-x64-symbols.zip 963c05266bf83bc77f690b75a76855d7b7bc0be9bac4973292f3e7d506fd2c94 *electron-v25.8.1-win32-x64.zip ab608119c4bb4ebcefede6afdd911ef8ea007465ab7d2093a091bdb9ff466236 *ffmpeg-v25.8.1-darwin-arm64.zip 5abaf6356bb40fdfcaf88177e13c50447a48fe7fc6c1c3869cf4536148eb60d4 *ffmpeg-v25.8.1-darwin-x64.zip bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.8.1-linux-arm64.zip 9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.8.1-linux-armv7l.zip edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.8.1-linux-x64.zip 6b2494dd5bf7f17eec800f41d232506007b36c7cae6f885565e035d3168a0c64 *ffmpeg-v25.8.1-win32-arm64.zip 8b57594cd2065437cf3378e845bae4de3501ebff7f1f1f516fc0aaf09c311c2b *ffmpeg-v25.8.1-win32-ia32.zip 95bb8e167e96bb4f902e6238312e245ed0acfae45eeda471e0f8ad0f0baaac2f *ffmpeg-v25.8.1-win32-x64.zip </del> <ins> 990cfa83850fc2934ddf435737ea16c68e222136107aba177d961af839a61765 *electron-v25.8.2-darwin-arm64-symbols.zip f6ab7cd71e50fae41cae0192108df98afc0a30583d945d3e673d8483d4dddefe *electron-v25.8.2-darwin-arm64.zip 2feec213e4b2a4728ef5f5ec833ee8663d801a06b7ed1f172eee4ba3f9f51339 *electron-v25.8.2-darwin-x64-symbols.zip 04027c3ecb90d8252f1adbd887d9567d5f16eee126f8df753a29fa79d9b61d6b *electron-v25.8.2-darwin-x64.zip 4a9a49d6003ac86ccba5495ff782f584215cee36f9335772cdc0581911f5f6a1 *electron-v25.8.2-linux-arm64-symbols.zip 1b15ad0e26785850f9ab2112d3183669aac4b702c474ab7ad31954c649b3351f *electron-v25.8.2-linux-arm64.zip 4bdd180dff11013d6c2d25c578e5398ac9c7dd3b6255080836868e1cd55e4c13 *electron-v25.8.2-linux-armv7l-symbols.zip db4271335284d2d327130063cca6a4adee0678504098c0347e2cb89c4ddefd7a *electron-v25.8.2-linux-armv7l.zip ab9c35e7a6df6b2335f273711cc16c94f982f4d55b2c0bba554187f43864242e *electron-v25.8.2-linux-x64-symbols.zip 08c211d4199096d0ff9c475720f25ff5c089d624660b4c1f1970a413e20312b7 *electron-v25.8.2-linux-x64.zip d3bd6ab0be3c4d93a7a19f9da0c391c1ef8daa85027bf00f9ac75a97e7027fcf *electron-v25.8.2-win32-arm64-pdb.zip cc6c369bd9d2fc7664bbd5138be5527432e17ec6eb7c7b5405e641e0468dc280 *electron-v25.8.2-win32-arm64-symbols.zip d4083f48cc1f7bb311a4a53814e2cd7c343c159f4bcd4ee368d20564e1d34a36 *electron-v25.8.2-win32-arm64.zip 276b0ba63d6dbb78f99caf2c58213415f22cb4f90ec6e6485214f3174482458c *electron-v25.8.2-win32-ia32-pdb.zip 45551352678e250c7970c6258d55e1c6451131d1e5f1ea053390bd9d9364d33c *electron-v25.8.2-win32-ia32-symbols.zip fc9798e973b6a872d7250754b29caa48b0f0ad7c33f39ab61008525b29111049 *electron-v25.8.2-win32-ia32.zip 491795df7e70effeae68a11e39675ca32677b44865d10151a2eea71dad2c2815 *electron-v25.8.2-win32-x64-pdb.zip fa5962a52022c16fb59d79c7528d50ab314b6a8d1e6b90f4c940bb3a0f061923 *electron-v25.8.2-win32-x64-symbols.zip fb5786dc18a10cc29b4d765f34af2f9f9d9866f82007468b55d800dd43feb196 *electron-v25.8.2-win32-x64.zip b1ad00396c949d0f37fe3920eb4f667663d7453dce4f141bcbfc560140a85d84 *ffmpeg-v25.8.2-darwin-arm64.zip 81a3dff9b95d294a7955d67e013ecf65b0c1b929104cea82fcf22774c067d457 *ffmpeg-v25.8.2-darwin-x64.zip bd52d57ff97fb56ac01a3482af905d04f0d4e9c13c53858c6d9f99957eca82da *ffmpeg-v25.8.2-linux-arm64.zip 9b3d09177fa1e63e2a6beecfa70aeec30aeb5c1873ff21128a68051c4e23f95d *ffmpeg-v25.8.2-linux-armv7l.zip edc7b1c9f1a0733f109a2c0375a4e40c5bfe0bf28b7f06dcc76e1ada0aa2f125 *ffmpeg-v25.8.2-linux-x64.zip aacd68ce8a56e707e20fdcf08ea66348dbb1717b87f9c7e3d80da106fa5aa45b *ffmpeg-v25.8.2-win32-arm64.zip 29411956a1ab20f63926a764893effd113c0ef0349cbaa355a95c1c1046d5d8d *ffmpeg-v25.8.2-win32-ia32.zip 80ccd09de3a73e1a3b27ad2aa2a8a3eb5753290b7eee3d2e5ea08837876c3f66 *ffmpeg-v25.8.2-win32-x64.zip </ins>


"continueEditSession": [ { "command": "github.openOnVscodeDev", <del> "when": "github.hasGitHubRepo" </del> <ins> "when": "github.hasGitHubRepo", "qualifiedName": "Continue Working in VS Code for the Web" </ins> } ], "menus": {


readonly _serviceBrand: undefined; readonly terminalProfiles: ReadonlyArray<IExtensionTerminalProfile>; <del> readonly quickFixes: Array<ITerminalCommandSelector>; </del> <ins> readonly quickFixes: Promise<Array<ITerminalCommandSelector>>; </ins> } export const ITerminalContributionService = createDecorator<ITerminalContributionService>('terminalContributionsService');


private _state?: vscode.CommentThreadState; get state(): vscode.CommentThreadState { <del> checkProposedApiEnabled(this.extensionDescription, 'commentsResolvedState'); </del> return this._state!; } set state(newState: vscode.CommentThreadState) { <del> checkProposedApiEnabled(this.extensionDescription, 'commentsResolvedState'); </del> this._state = newState; this.modifications.state = newState; this._onDidUpdateCommentThread.fire();