jiebi/CodeConvo huggingface dataset:
Change:
registerSendSequenceKeybinding(String.fromCharCode('E'.charCodeAt(0) - 64), { mac: { primary: KeyMod.CtrlCmd | KeyCode.RightArrow } }); <ins> // Break: ctrl+C registerSendSequenceKeybinding(String.fromCharCode('C'.charCodeAt(0) - 64), { mac: { primary: KeyMod.CtrlCmd | KeyCode.US_DOT } }); </ins> setupTerminalCommands();

Discussion:
See Code pointer:
Hi. Is this issue under progress? If not, I'd like to take it up
if you could hold off a few days to give a chance to take it if they want that would be good (see ).
file code preferences keyboardstype "scm view"
Change:
this._outputEmptyElement = DOM.append(this._outputViewContainer, DOM.$('.output-empty-view')); this._outputEmptyElement.innerText = 'No outputs to render'; <del> if (this.cell.modified!.outputs.length === 0) { </del> <ins> if (!this.cell.modified?.outputs.length) { </ins> this._outputEmptyElement.style.display = 'block'; } else { this._outputEmptyElement.style.display = 'none';

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --If outputs are cleared from a jupyter notebook, attempting to view a diff in source control view displays the error in the subject. Search for related issues brings up a different issue related to filesystem sync. VS Code version: 1.80.1 Jupyter Extension version (available under the Extensions sidebar): v2023.6. Python Extension version (available under the Extensions sidebar): v2023.12.0 OS (Windows Linux distro) and version: Windows 11 Python and/or Anaconda version: 3.9.16 Type of virtual environment used (N/A ...): conda Jupyter server running: Local Display the diff, don't display an error, even if outputs are undefined in a version of the diff. Error is displayed and the diff can't be viewed. Open a notebook in jupyter server (not VS Code) Click Cell -All Output -Clear Save the notebook Go to VS Code -Source Control View -click on the notebook. <details<summaryOutput for <codeJupyter</codein the <codeOutput</codepanel (<codeView</code→<codeOutput</code, change the drop-down the upper-right of the <codeOutput</codepanel to <codeJupyter</code) </summary<p</p</details
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.85.0. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
the editor opens successfully, though it does not show the change unless you click the switch output rendering button !
Tracked here
Change:
const newDocumentHighlights = this.workerRequestValue.get(uri); if (newDocumentHighlights) { for (const highlight of newDocumentHighlights) { <ins> if (!highlight.range) { continue; } </ins> newDecorations.push({ range: highlight.range, options: getHighlightDecorationOptions(highlight.kind)

Discussion:
There is a strange issue in vs code when i split the window, and click on any code or syntax , it will highlight similar code/syntax but the highlig ht is persistent, it wont go away, it works fine in the first window but when it gets split to the right it doesnt work if i click anywhere else in the window, in the left side the currentCrew is highlighted now, it just wont clear. sys info Version: 1.84.2 (Universal) Commit: Date: 2023-11-09T10:52:33.687Z (1 wk ago) Electron: 25.9.2 ElectronBuildId: Chromium: 114.0.5735.289 18.15.0 V8: 11.4.183.29-electron.0 OS: Darwin x64 21.6.0 <img width="1680" alt="Screen Shot 2023-11-22 at 9 42 52 AM" src=""
could you help with triaging this issue? Thanks!
Change:
private _cursorOnNextLine(): boolean { const lastCommand = this.commands.at(-1); <ins> // There is only a single command, so this check is unnecessary </ins> if (!lastCommand) { <del> return false; </del> <ins> return true; </ins> } const cursorYAbsolute = this._terminal.buffer.active.baseY + this._terminal.buffer.active.cursorY; // If the cursor position is within the last command, we should poll. const lastCommandYAbsolute = (lastCommand.endMarker ? lastCommand.endMarker.line : lastCommand.marker?.line) ?? -1;

Discussion:
Repro: (maybe not needed?) terminal some text, note the cursor location an editor the terminal, the cursor is at the start of the textbox !
Works on mac
It also works for me on Windows
any other steps required?
I think the repro is fill the viewport such that there's a scroll bar, then type
Ctrl+c helps make it happen too
Some other repros too: ! ! !
I'm hitting this: Looking into it
Change:
list.focusPreviousPage(fakeKeyboardEvent); list.reveal(list.getFocus()[0]); } <ins> // Ensure DOM Focus ensureDOMFocus(focused); </ins> } });

Discussion:
I like the up / down keyboard navigation over notebook cells, but when you try to use to navigate the order is very unexpected. a notebook. I am using my- my work cell -Focus is on GitHub issues label -focus seems lost -focus is on the start of the document, even though I did not traverse until the end of the docuemnt Ideally tab should go in visual order. If that is not possible should move focus out of the notebook. Similarly tree tab is not used to move focus so users use up / down, but pressing tab focuses out of the tree and does not lead to unexpected jumping of focus.
Fixed in this change Get rid of output focus sink when cell has no output, to avoid a dead spot when tabbing through cell (step 3 in OP) Fix the toolbar losing focus shortly after tabbing onto it, by avoid context key churn Fix domFocus when focus is in a different element from the one that is selected (depends on an earlier PR in )
Much better now. Thanks for fixing this.
Change:
}; } <ins> function createSelectedChange(modifiedStart: number, modifiedEnd: number, originalStart: number, originalEnd: number, fullModifiedStart = modifiedStart, fullModifiedEnd = modifiedEnd): SelectedChange { return new SelectedChange( createChange(modifiedStart, modifiedEnd, originalStart, originalEnd), createChange(fullModifiedStart, fullModifiedEnd, originalStart, originalEnd)); } </ins> suite('Git - Stage ranges', () => { test('Get selected changes test - no change selected (selection before changes)', () => {

Discussion:
There's probably already a feature request for this but I can't find it. I want to be able to select a change in the diff editor and revert it, same as how I can stage it. In SourceTree this is called "discard selected lines" although "revert" seems better, unless it's "discard selected changes". I'm working on a PR for this.
I think it is connected with
Change:
resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.12.0-beta.36.tgz#460f80829a78c979a448d5b764699af3f0366ff1" integrity sha512-sgX7OHSGZQZE5b4xtPqd/5NEcll0Z+00tnTVxKZlXf5XEENcG0tnBF4I4f+k9K3cmjE1UIUVG2yYPrqWlYCdpA== <del> xterm-headless@4.19.0-beta.49: version "4.19.0-beta.49" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.19.0-beta.49.tgz#8e4178620be9a9dee25a586ef992a6fc621a829a" integrity sha512-uRnHpR2pv1MJPbE3sa7XbP6x0uHubAWVMbiD26e3a5ICtWJQVVpLojkA0t4qU7CoMX85pRL1rIclg9CKY0B0xA== xterm@4.19.0-beta.49: version "4.19.0-beta.49" resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0-beta.49.tgz#96d0d748c97a2f0cfa4c6112bc4de8b0d5d559fe" integrity sha512-qPhOeGtnB357mZOvfDckVlPDR7EDkSASQrB3aujhjgJlOiBBqcNRJcuSvF7v1DOho7xdEI9UQxiSiT5diHhMlg== </del> <ins> xterm-headless@4.19.0-beta.52: version "4.19.0-beta.52" resolved "https://registry.yarnpkg.com/xterm-headless/-/xterm-headless-4.19.0-beta.52.tgz#87298cb205694cfdd701a9a96dcd06434a9773fe" integrity sha512-9s8VtGa9JUdEWxrNDJpEng2mEFn0KjWM3R9nxezA8mXHsJ/0cMqoK00s/fzhAEXZqHycWASSECMWgFOaT0MrnQ== xterm@4.19.0-beta.52: version "4.19.0-beta.52" resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0-beta.52.tgz#21c7ad0bd905f3fddaa0583951514c8271dcd822" integrity sha512-2itY6dyiimOEkgVwc31TngYQ6npHt7or1wxU0Flbv4PjH4ke8K26NDB7KAi0YYkn2g0/qzIjQc7ykdrrTaEgMg== </ins> y18n@^3.2.1: version "3.2.2"

Discussion:
Issue Type: <bBug</bIn the regular MacOS terminal (outside Visual Studio Code), option+click will move the cursor to a given point in the text. This is nice for editing the middle of a long command line, or for moving around vim. However, when the MacOS Terminal is being run inside Visual Studio Code, when I option+click text, the cursor moves close to where I clicked, but it's off by about 3 characters. VS Code version: Code 1.63.2 (, 2021-12-15T09:38:17.605Z) OS version: Darwin arm64 21.1.0 Restricted Mode: No Remote OS version: Linux x64 5.4.0-105-generic <details<summarySystem Info</summary </details<details<summaryExtensions (4)</summaryExtensionVersion ------ remote-ssh0.70.0 python2022.4.1 vscode-pylance2022.4.2 references-view0.0.89 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Guessing this is related to padding on
Does not reproduce in the demo
VS Code uses padding but the demo doesn't, try adding to
shouldn't the padding be on the cursor layer? nvm made the change in the wrong
I think this rule is the problem but haven't looked into it: ! We recently moved the padding from to I think which would explain the regression
Change:
this.workspaceTitle.classList.add('search-label'); this._updateFromWindowTitle(); reset(this.label, searchIcon, this.workspaceTitle); <del> this._renderAllQuickPickItem(container); </del> <ins> // this._renderAllQuickPickItem(container); </ins> this._store.add(windowTitle.onDidChange(this._updateFromWindowTitle, this)); }

Discussion:
hitting tab and shift tab to get to the "command center group" and then arrow keys once in that group. !
Change:
import { CancelablePromise, createCancelablePromise, raceCancellablePromises, timeout } from 'vs/base/common/async'; import { IDisposable } from 'vs/base/common/lifecycle'; import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; <ins> import { StopWatch } from 'vs/base/common/stopwatch'; import { ILogService } from 'vs/platform/log/common/log'; </ins> export const ISemanticSimilarityService = createDecorator<ISemanticSimilarityService>('ISemanticSimilarityService');

Discussion:
I see the second entry being selected shortly after the recent results appear: ! My settings:
I did extension bisect and the issue is caused by copilot chat extension. Here is the profile you can use to repro this bug -
Change:
background-color: var(--vscode-mergeEditor-conflict-handledFocused-background); } <ins> .merge-editor-simplified.input.i1, .merge-editor-block.use-simplified-decorations.input.i1 { background-color: var(--vscode-mergeEditor-conflict-input1-background); } .merge-editor-simplified.input.i2, .merge-editor-block.use-simplified-decorations.input.i2 { background-color: var(--vscode-mergeEditor-conflict-input2-background); } </ins> /* END: .merge-editor-block */ .gutter.monaco-editor>div {

Discussion:
Note all three lines highlighted with background color <img width="262" alt="CleanShot 2022-09-08 at 16 01 57 src="https://user-"We only highlight the changed line and specific word. <img width="184" alt="CleanShot 2022-09-08 at 16 02 04 src="https://user-"If we followed the inline style and still rendered a word diff, wouldn't we be able to get away without using the borders to indicate the region? cc
The inline style does this because it has no clue about the actual conflict, it just sees the conflict markers. We do this to show the actual change in that side.
I a hidden setting (default false) so we can play with idea. Personally, I think it hides many important decorations, but I'm open to exploring it. Enabled: ! Disabled: ! The background color disappears when the conflict is handled.
Change:
weight: CORE_WEIGHT, kbExpr: EditorContextKeys.textInputFocus, primary: KeyMod.Shift | KeyCode.DownArrow, <del> secondary: [KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.DownArrow], </del> mac: { primary: KeyMod.Shift | KeyCode.DownArrow }, linux: { primary: KeyMod.Shift | KeyCode.DownArrow } }

Discussion:
VSCode Version: Code 1.17.1 (, 2017-10-10T14:24:50.851Z) OS Version: Windows_NT x64 10.0. Current default keybindings on Windows: has two key bindings, which seems unnecessary. On Linux the default key bindings are (IIRC): Which makes a lot more sense IMHO. Also using this default on Windows would also align Windows/Linux key bindings and maybe even avoid complications like . (same for of course)
We will not change this. See
Change:
if (decorations.length === 0) { continue; } <del> decorations.sort((a, b) => { // Sort decorations to render in descending order by zIndex return b.zIndex - a.zIndex; }); </del> <ins> decorations.sort((a, b) => b.zIndex - a.zIndex); // Render winning decorations with the same zIndex together </ins> const winningDecoration: RenderedDecoration = decorations[0]; <ins> const winningDecorationClassNames = [winningDecoration.className]; for (let i = 1; i < decorations.length; i += 1) { const decoration = decorations[i]; if (decoration.zIndex !== winningDecoration.zIndex) { break; } winningDecorationClassNames.push(decoration.className); } </ins> const left = (this._glyphMarginLeft + (lane - 1) * this._lineHeight).toString(); css += ( '<div class="cgmr codicon ' <del> + winningDecoration.className // TODO@joyceerhl Implement overflow for remaining decorations </del> <ins> + winningDecorationClassNames.join(' ') // TODO@joyceerhl Implement overflow for remaining decorations </ins> + common + 'left:' + left + 'px;"></div>' );

Discussion:
<img width="288" alt="image" src="https://user-"This leads to the editor shifting to the right every time I pause, because it's adding an editor gutter. We actually already have a combo decoration that shows the two things together. I don't actually know exactly how that works but can look it up if you need it. Actually this combo decoration doesn't exist for all breakpoint types, which is annoying, but that's an issue for me
If you have a code pointer that would be awesome, I wasn't aware we had a notion of combined decorations today. As far as I know in the past we merged the classnames for any decorations that wanted to appear in the glyph margin
So when I see this <img width="76" alt="image" src="https://user-"there is a and an , that is where the different colors come from I think the comes from the normal decoration, then we set the content here and color here It seems like we are hacking editor decorations with css a bit
Maybe the solution is just making sure that whatever logic puts breakpoints in their own lane applies to all debug decorations though, so these all get their own lane and its the same, if that makes sense
The actual stackframe decorations come from here
The trouble is now we also have this notion of a to ensure e.g. that testing decorations always render atop other decorations, so if there are multiple decorations in the same lane we pick the first one and discard the rest. To show those decorations together, I think I have to restore the old behavior so that decorations with the same get the classnames combined like in the previous stable. But as you said that only works because of some CSS hackery, maybe we also want a more formalized way to combine decorations.
Change:
} })); // Current command invalidated <del> this._commandDetectionListeners.push(capability.onCurrentCommandInvalidated(() => { this._placeholderDecoration?.dispose(); this._placeholderDecoration = undefined; })); </del> <ins> this._commandDetectionListeners.push(capability.onCurrentCommandInvalidated(() => this._clearPlaceholder())); </ins> } activate(terminal: Terminal): void {

Discussion:
!
Think I saw this today
that was when I here, which causes other issues so i'm removing
working on it
repro is to create some decorations via commands and then delete the terminal
Change:
const lineLengthThreshold = line === 0 ? inputValidationSubjectLength ?? inputValidationLength : inputValidationLength; const lineSegments: string[] = []; <del> const lineText = document.lineAt(line).text; </del> <ins> const lineText = document.lineAt(line).text.trim(); </ins> let position = 0; while (lineText.length - position > lineLengthThreshold) {

Discussion:
Testing Have the following commit input: <img width="573" alt="image" src=""Hard wrap it, you end up with: <img width="582" alt="image" src=""The consecutive whitespace should be merged.
Change:
justify-content: left; } <ins> .monaco-workbench.web.safari .part.titlebar, .monaco-workbench.web.safari .part.titlebar>.titlebar-container { /* Must be scoped to safari due to #148851 */ /* Is required in safari due to #149476 */ overflow: visible; } </ins> /* Draggable region */ .monaco-workbench .part.titlebar>.titlebar-container>.titlebar-drag-region { top: 0;

Discussion:
I noticed that the Menu Bar doesn't open the menus on when using Safari. Note the explorer focus indicating that I'm clicking on the buttons to no effect: ! !
can you try with non-insiders to see if this is a regression?
Looks to work as expected on stable: https://user-
Thanks likely regression from updating styles for the WCO
Change:
const util = require('util'); const bootstrap = require('../../../src/bootstrap'); const coverage = require('../coverage'); <ins> const { takeSnapshotAndCountClasses } = require('../analyzeSnapshot'); </ins> // Disabled custom inspect. See #38847 if (util.inspect && util.inspect['defaultOptions']) {

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Describe the feature you'd like. --Currently we are manually hunting down memory leaks through Dev Tools. For some areas/components (e.g., notebook), this even needs to be done repeatedly. It would be helpful if we can capture the memory snapshots in CI and write some queries against the snapshot to analyze if there is any potential leaks. A typical manual memory leak analysis for notebook Setup Open OSS Open notebook document A Open notebook document B Close both notebook documents Open Dev Tools, take a heap snapshot Search object, there should be none Search object, there should be none Search object, there should not be more than one (the editor group still holds a reference to the last editor) ! cc
The dev tools also show how an object is leaked, we could analyze the dependencies tree and figure out who is the "culprit"
would be a good API for CI use case on desktop to capture from any non-sandboxed process (Main, Utility - Ext Host, Shared Process, Pty Agent) embedding V8 without using external CDP calls. In the case of sandboxed render process, prefer
I find this topic super interesting as well! I have a prototype project that tries to find memory leaks by looking for leaking event listeners. In the screencast, the event listener count increases from 1175 to 1206 which indicates that there might be a memory leak when opening and closing a notebook editor. The project is in the early phases and in the future I'm hoping to display more detailed output for the event listeners as well as making the tests less flaky. (sorry if I'm interrupting the discussion. I'm hoping that perhaps this could be useful for you)
Change:
}); const activeWorkspaceRootUri = this._historyService.getLastActiveWorkspaceRoot(Schemas.file); <del> const lastActiveWorkspace = activeWorkspaceRootUri ? withNullAsUndefined(this._workspaceContextService.getWorkspaceFolder(activeWorkspaceRootUri)) : undefined; </del> const initialCwd = terminalEnvironment.getCwd( shellLaunchConfig, userHome, <del> terminalEnvironment.createVariableResolver(lastActiveWorkspace, this._configurationResolverService), </del> <ins> variableResolver, </ins> activeWorkspaceRootUri, this._configHelper.config.cwd, this._logService ); <del> const env = await this._setupEnvVariableInfo(activeWorkspaceRootUri, shellLaunchConfig); </del> <ins> const env = await this._setupEnvVariableInfo(variableResolver, shellLaunchConfig); </ins> const useConpty = this._configHelper.config.windowsEnableConpty && !isScreenReaderModeEnabled; const shouldPersist = this._configHelper.config.enablePersistentSessions && !shellLaunchConfig.isFeatureTerminal;

Discussion:
With we are trying to remove from the configuration resolver service. The new way to get the environment is async and requires that the all the configuration resolver methods be async. I have started the adoption of the new async methods in , but there's one use in terminal that looks like it will require more work: Option 1: Convert that use of to use . Option 2: I provide a new method on the configuration resolver service that is sync, but requires you to pass in your own . Which option makes the most sense here?
I think the usage of in must remain sync since it's used as part of the extension API. Is this a problem there since is fine to use? The main purpose of this type was to share code between variable processes.
Sounds like Option 2 is the way to go then. I will add a new method that is sync and lets you pass in your own .
Added: will that let you keep your code reuse?
Change:
} if (executeResult.kind === TaskExecuteKind.Active) { const active = executeResult.active; <ins> if (active && active.same && runSource === TaskRunSource.FolderOpen) { // ignore, the task is already active, likely from being reconnected. this._logService.debug('Ignoring task that is already active', executeResult.task); return executeResult.promise; } </ins> if (active && active.same) { if (this._taskSystem?.isTaskVisible(executeResult.task)) { const message = nls.localize('TaskSystem.activeSame.noBackground', 'The task '{0}' is already active.', executeResult.task.getQualifiedLabel());

Discussion:
Currently, one can have a task that runs on folder open (startup), but if window is reloaded, they get a notification "The task '<myTask' is already active." with options to terminate or restart the task. It would be great to have an option to never see this notification either as a button or within gear-icon context menu on the notification.
Yeah this is happening because of automatic tasks / reconnected tasks each trying to start the same one. We should ignore the request if it's coming from one or the other source (reconnection or automatic) and the task is already running
Workaround for now is to remove the folderOpen property or disable reconnection
I do not see my task getting run either on first open or window reload
found that this does not work in old Codespaces, which we are tracking here .

create a folder with a task that uses: update an extension and use "Reload window" or use Reload window directly from the command pallette observe that the task now runs twice: <img width="328" alt="image" src=""
Likely a regression from one of the task fixes this iteration.
Not able to reproduce Do you have task.reconnection enabled? Would be helpful to see each of the terminals
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
This problem still exists, I'm afraid I'm not sure the repro steps are as Alex described, but I still get duplicated tasks
It seems for Alex's repro steps to work, the terminal panel needs to be hidden
When the panel is hidden, the tasks don't run at all for me atm. I'm going to merge something that will fix this part of the issue, but in order to truly test it, I'll have to first