jiebi/CodeConvo huggingface dataset:
Change:
protected _fillHead(container: HTMLElement): void { super._fillHead(container); <del> this._actionbarWidget!.push(this.actions, { label: false, icon: true }); </del> <ins> this._actionbarWidget!.push(this.actions, { label: false, icon: true, index: 0 }); </ins> } protected _fillTitleIcon(container: HTMLElement): void {

Discussion:
have a file with an error press F8 press Ctrl+M to toggle that Tab moves focus press Tab once the focus moves first to the close button, then the up button, and finally the down button. ! <details<summaryOLD DESCRIPTION from Details:​ ​​ ​​ Browser Details: ​​​ Microsoft Edge 44..1.0, Google Chrome 75.0.3770.142​ ​OS: Windows (Version 1903, Build: .113)​​ ​ Repro Steps: ​​​ 1) Hit the URL ""​​ 2) Navigate till "Playground" link and press enter​​ 3) Tab till editor field and type any wrong code. ​ 4) Press F8 or Shift+F8 to open the errors​ 5) Verify the focus order between "Go to next problem, Go to previous problem and close" buttons​ Actual Result: ​​​ Focus order is not proper between "Go to next problem, Go to previous problem and close" buttons. Focus order is given in the wrong sequence as close--Go to previous problem --Go to next problem​ ​​ Expected Result: ​​​ When user press Tab key focus order should in the sequence as ​ Go to next problem--Go to previous problem--close​ ​ User Impact: ​​​ Keyboard users will find difficult to work if focus order is not proper between the controls​ Video Attachment: </details
Change:
this._overlayContainer.style.left = `${this._shadowElementViewInfo.left - (elementContainerRect?.left || 0)}px`; this._overlayContainer.style.width = `${dimension ? dimension.width : this._shadowElementViewInfo.width}px`; this._overlayContainer.style.height = `${dimension ? dimension.height : this._shadowElementViewInfo.height}px`; <del> const rootContainer = this.workbenchLayoutService.getContainer(Parts.EDITOR_PART); if (rootContainer) { const clip = DOM.computeClippingRect(this._overlayContainer, rootContainer); this._overlayContainer.style.clip = `rect(${clip.top}px, ${clip.right}px, ${clip.bottom}px, ${clip.left}px)`; } </del> } //#endregion

Discussion:
<img width="726" alt="image" src="https://user-"
zindex ftw
Actually not zindex, it was introduced via is the necessary here and could we not enforce that for notebook editor? When we have clip, the widgets in code editor will be cut off on the boundries.
We do need the clip to for notebooks. Otherwise when you scroll the editor area, the notebook widget will render on top of the sidebars Not sure how the fix this though. We've want to clip everything except the editor widgets. Off the top of my head I'm not sure how to do that I think for now we should revert the clip since it's less important than widgets rendering properly. I'll create a PR that does that but also open a new issue tracking the notebook's overlaying incorrectly when the editor area is scrolled
Change:
if (args.unit === EditorScroll_.Unit.Line) { // scrolling by model lines <del> const visibleViewRange = viewModel.getCompletelyVisibleViewRange(); </del> <ins> const futureViewport = viewModel.viewLayout.getFutureViewport(); const visibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(futureViewport.top); </ins> const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange); let desiredTopModelLineNumber: number;

Discussion:
Issue Type: <bBug</bThe user defined keybiding editorScroll command with arg property "' to': 'up'" repeats slower than "'to':'down'". The key combination doesn't seems to have influence. [edit] I tested it further, and found what triggers this behavior is the conjunction of this keybinding with the setting smooth scrolling : "editor.smoothScrolling": true, Windows and Linux versions have the same behavior. VS Code version: Code 1.58.2 (, 2021-07-14T22:30:16.440Z) OS version: Linux x64 5.4.0-77-generic Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (5)</summaryExtensionVersion ------ Bookmarks13.1.0 vscode-language-babel0.0.31 cpptools1.5.1 LiveServer5.6.1 ninja0.0.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.458 --<!-- potentialduplicatescomment --
I could not reproduce. I tried with the following keybindings: The scroll speed appears similar to me for both keybindings.
I tested it further, and found what triggers this behavior is the conjunction of this keybinding with the setting smooth scrolling : Windows and Linux versions have the same behavior.
I can reproduce a slowdown. On my macOS computer, scrolling down went 114 lines down in 10s, while scrolling up went 100 lines up in 10s.
Not sure if my case is special. My issue was closed as duplicate of this one. Windows 10 here. On two completely different and unrelated machines but with the same VSCode user configuration. Scrolling down a document of 114 lines: 4.5 seconds Scrolling up again: 13 seconds This is a major slowdown by the factor 3!
Change:
new TextSearchMatch('test', new OneLineRange(1, 1, 5)), new TextSearchMatch('this is a test', new OneLineRange(1, 11, 15))), aRawMatch('/3', new TextSearchMatch('test', lineOneRange))]; <del> const searchService = instantiationService.stub(ISearchService, searchServiceWithResults(results)); </del> <ins> const searchService = instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results })); </ins> sinon.stub(CellMatch.prototype, 'addContext'); const textSearch = sinon.spy(searchService, 'textSearch');

Discussion:
to , run a text search search is running, hit cancel on the "downloading repository index..." notification in the bottom right corner :bug: search view should show two messages (see below) but only the first one shows up !
Saw the notification about indexing but it was before I clicked search and now whenever I click search I don't see the notification come up.
I believe that you can try to do this with a larger repo (like ), and there should be enough time to cancel the index. Not too sure how to remove the index once it's downloaded, but you can try that first!
You can delete the downloaded index with the Delete All Repository Indexes command
The search result message changed but I see two messages at least !
Change:
return lineNumber > 2 && this._editor.getTopForLineNumber(lineNumber) === this._editor.getTopForLineNumber(lineNumber - 1); }; <ins> // Check for glyph margin decorations of any kind const currLineDecorations = this._editor.getLineDecorations(lineNumber); let hasDecoration = false; if (currLineDecorations) { for (const decoration of currLineDecorations) { if (decoration.options.glyphMarginClassName) { hasDecoration = true; break; } } } </ins> let effectiveLineNumber = lineNumber; let effectiveColumnNumber = 1; if (!lineHasSpace) {

Discussion:
This was unexpected for me where I open a file (not focus the editor) and the light bulb shows up randomly depending on where the cursor happened to have been restored: !
cc
Change:
export class TerminalUrlLinkOpener implements ITerminalLinkOpener { constructor( private readonly _isRemote: boolean, <del> @IOpenerService private readonly _openerService: IOpenerService, </del> <ins> @IOpenerService private readonly _openerService: IOpenerService </ins> ) { }

Discussion:
Type: <bBug</bContext I want to use vscode-URLs to directly drop into a debugging session. My script can be found at Expected behavior When cmd-clicking this link from inside VSCode, I would expect to be dropped into the debugging session <img width="1287" alt="Screenshot 2022-08-22 at 10 25 59" src="https://user-"Actual behavior Instead, the link gets opened in VS Code's search bar <img width="904" alt="Screenshot 2022-08-22 at 10 27 17" src="https://user-"Additional information I am sure the link itself is fine, because when I copy it from the console and paste it into Chrome's address bar, then VSCode opens my debugging session as expected. Also see VS Code version: Code 1.70.2 (, 2022-08-16T05:36:37.829Z) OS version: Darwin x64 21.6.0 Modes: Remote OS version: Linux x64 5.15.0-30-generic Remote OS version: Linux x64 5.15.0-30-generic <details<summarySystem Info</summary </details<details<summaryExtensions (7)</summaryExtensionVersion ------ better-cpp-syntax1.15.19 jupyter-keymap1.0.0 remote-ssh0.84.0 remote-ssh-edit0.80.0 llvm0.1.1 vscode-clangd0.1.21 vscode-lldb1.7.4 </details<!-- generated by issue reporter --
since the url would need to open a JS/browser debug session, would the JavaScript Debugger Companion Extension be of help here?
This is debugging with lldb, so it's not in the domain of js-debug
This is a request to essentially hook up the terminal link detector to whatever handles external custom protocol links. We may be able to just add vscode:// and vscode-insiders:// to the uri detection? This may need changes in the editor's link detector
Change:
import { memoize } from 'vs/base/common/decorators'; import { onUnexpectedError } from 'vs/base/common/errors'; import { MarkdownString } from 'vs/base/common/htmlContent'; <del> import { Disposable, dispose, disposeIfDisposable, IDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { dispose, disposeIfDisposable, IDisposable } from 'vs/base/common/lifecycle'; </ins> import * as env from 'vs/base/common/platform'; import severity from 'vs/base/common/severity'; import { noBreakWhitespace } from 'vs/base/common/strings';

Discussion:
With I went over most editor contributions (50+) and adopted idle value instantiation where I could reason that they would still work correctly. But some editor contributions interact in more complex ways, sometimes with each other, and I wasn't sure. Hence, this issue. I would like to ask that all calls explicitly use . If a contribution uses eager, a reason should be written as a comment next to it. There are multiple options available: Some things to keep in mind when changing an editor contribution to something else than : the contribution will not be created necessarily before a text model is attached. Normally, a contribution is created so early, at a point when the editor has no models. So it is safe for a contribution to simply use to check if the contribution needs to do anything. When being instantiated later, it is possible that the contribution will be created at a time when the editor already has a model, so the contribution should be prepared to deal with that in the ctor. if a contribution needs to be activated via editor events (pasting, typing, mouse events), then most likely you can use . if a contribution is mostly driven by actions or commands, then the contribution will be instantiated when the first action that needs it is executed, so it is safe to use . if a contribution is only driven by actions or commands, it is safe to use . Anyways, here's the remaining list of contributions for which I wasn't sure what would be correct:
Replacing me with who took over quick pick.
Change:
this._onError.fire(error); }); <del> const outputService = this.outputService; if (outputService) { const sanitize = (s: string) => s.toString().replace(/r?n$/mg, ''); // this.serverProcess.stdout.on('data', (data: string) => { // 	console.log('%c' + sanitize(data), 'background: #ddd; font-style: italic;'); // }); this.serverProcess.stderr!.on('data', (data: string) => { const channel = outputService.getChannel(ExtensionsChannelId); channel?.append(sanitize(data)); }); } else { this.serverProcess.stderr!.resume(); } </del> <ins> this.serverProcess.stderr!.resume(); </ins> // finally connect to the DA this.connect(this.serverProcess.stdout!, this.serverProcess.stdin!);

Discussion:
Just wondering whether the "Extensions" output channel is actually used for anything? I have checked it when troubleshooting extensions many times and don't think I've ever actually seen any output in there
This is being used by debug adapter Feel free to remove it if you are not using.
Oh, wow No clue about that
I guess it was introduced in , previously showed errors from all extensions, now I think those errors go to other general logs, and probably just this one usage got left behind. any idea if there was some discussion about this in the past? Or I will remove it
not aware of anyone using it. I think we can go ahead and remove it. fyi
bit off-topic here but I was looking around for an issue around a "combined" log (showing the channel inline) - is there such a thing and I'm just missing it? that way I wouldn't have to click around into various logs when I'm trying to figure out what's going on with vscode - I realize I could tail the various files and write a script to make that more convenient I was also thinking maybe an extension could fill that need but then I saw
I think there is an issue to open multiple output channels at once. Please search into our issues.
there are only 10 open issues tagged output - altho this issue is about output and got labeled debug instead - I looked at the debug tagged issues too and didn't see it - should I create one?
Here is the similar request -
Change:
// - in high contrast theme // - if we have a contrast border (which draws an outline - https://github.com/microsoft/vscode/issues/109117) // - on Safari (https://github.com/microsoft/vscode/issues/108996) <del> if (isHighContrast(theme.type) && !isSafari && !activeContrastBorderColor) { </del> <ins> if (!isHighContrast(theme.type) && !isSafari && !activeContrastBorderColor) { </ins> const workbenchBackground = WORKBENCH_BACKGROUND(theme); const editorBackgroundColor = theme.getColor(editorBackground); const editorGroupHeaderTabsBackground = theme.getColor(EDITOR_GROUP_HEADER_TABS_BACKGROUND);

Discussion:
A regression in the condition in Set tab sizing to and see how the cut off tab should show fading, like here (not the ): ! //cc
Change:
if (!line) { return; } <del> // TODO: fine tune prompt regex to accomodate for unique configurtions. return line.translateToString(true)?.match(/^(?<prompt>((.+)s)?(?:PS.+>s)|(?:[A-Z]:.*>))/)?.groups?.prompt; </del> <ins> // TODO: fine tune prompt regex to accomodate for unique configurations. const lineText = line.translateToString(true); if (!lineText) { return; } // PowerShell const pwshMatch = lineText.match(/(?<prompt>((.+)s)?(?:PS.+>s?))/); if (pwshMatch) { let prompt = pwshMatch?.groups?.prompt; if (lineText === prompt && prompt.endsWith('>')) { // Conpty may not 'render' the space at the end of the prompt prompt += ' '; } return prompt; } // Command Prompt const cmdMatch = lineText.match(/^(?<prompt>((.+)s)?(?:[A-Z]:.*>))/); return cmdMatch?.groups?.prompt; </ins> } handleGenericCommand(options?: IHandleCommandOptions): void {

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:
isDefault: true }; deepStrictEqual(createProfileSchemaEnums([profile]), { <del> values: ['name'], markdownDescriptions: ['$(terminal) namen- path: path'] </del> <ins> values: [ null, 'name' ], markdownDescriptions: [ 'Automatically detect the default', '$(terminal) namen- path: path' ] </ins> }); }); test('should show all profile information', () => {

Discussion:
Open default settings JSON: ! Version: 1.67.0-insider (user setup) Commit: Date: 2022-03-31T11:00:49.798Z Electron: 17.2.0 Chromium: 98.0.4758.109 16.13.0 V8: 9.8.177.11-electron.0 OS: Windows_NT x64 10.0.
windows and linux issue only - works on mac <img width="481" alt="Screen Shot 2022-03-31 at 11 16 55 AM" src="https://user-"
but not in the settings editor actually
I think it happens on mac too, was originally reported for .osx
any idea why null is not accepted here? We set null as a valid type along side enum/string:
any thoughts as I know you did some work related to enum settings?
Not sure, but I get a mysterious result in the suggestions: !
yeah that should be
If enums are defined, you need to add as a valid value to the enums as well
I believe null is already one of the enum values
The completion values are composed of enum, default and more. The validation only looks at at enum values. So I'm quite sure the num values don't contain null, as the hover shows: !
Change:
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService); this.structuralRefreshDelay = 0; <del> let labelChangeListeners: IDisposable[] = []; this.listRefreshScheduler = new RunOnceScheduler(() => { // No need to refresh the list if it's not rendered if (!this.list) { return; } labelChangeListeners = dispose(labelChangeListeners); const previousLength = this.list.length; const elements = this.getElements(); this.list.splice(0, this.list.length, elements); this.focusActiveEditor(); if (previousLength !== this.list.length) { this.updateSize(); } this.needsRefresh = false; if (this.sortOrder === 'alphabetical' || this.sortOrder === 'fullPath') { // We need to resort the list if the editor label changed elements.forEach(e => { if (e instanceof OpenEditor) { labelChangeListeners.push(e.editor.onDidChangeLabel(() => this.listRefreshScheduler.schedule())); } }); } }, this.structuralRefreshDelay); </del> this.sortOrder = configurationService.getValue('explorer.openEditors.sortOrder'); this.registerUpdateEvents();

Discussion:
it needs the to work but that only comes in when is called then why is the scheduler not created from and associated code that calls it? the scheduler is never disposed
Change:
observers.push(resizeObserver); } <ins> function scrollWillGoToParent(event) { for (let node = event.target; node; node = node.parentNode) { if (node.id === 'container') { return false; } console.log(node, node.parentNode, node.scrollTop, node.scrollHeight, node.clientHeight); if (event.deltaY < 0 && node.scrollTop > 0) { return true; } if (event.deltaY > 0 && node.scrollTop + node.clientHeight < node.scrollHeight) { return true; } } return false; } const handleWheel = (event) => { if (event.defaultPrevented || scrollWillGoToParent(event)) { return; } vscode.postMessage({ __vscode_notebook_message: true, type: 'did-scroll-wheel', payload: { deltaMode: event.deltaMode, deltaX: event.deltaX, deltaY: event.deltaY, deltaZ: event.deltaZ, detail: event.detail, type: event.type } }); }; window.addEventListener('wheel', handleWheel); </ins> window.addEventListener('message', event => { let id = event.data.id;

Discussion:
Issue Type: <bFeature Request</bCurrently it's unclear and difficult to handle scrolling events inside an output which is rendered in the webview due to the disadvantage of our current architecture: we listen to event in the webview and scroll the list view in the main thread accordingly. It means if users attempt to scroll in a native scrollable element, the element will be scrolled in the webview, and also trigger the whole editor to scroll. Events triggered when users scroll on a scrollable element events come right after events, usually in a few milliseconds. If users trigger scroll (by mouse wheel or touchpad) on a non-scrollable element, there are only events. For our scenario, we want to emit events to the main thread, only when there is no event followed right after. This can be archived by delaying the wheel event message to the main thread The catch of this solution is how long should we delay. Usually a scroll event comes after a wheel event in just a few ms but it's not guaranteed. Renderers handle the scrolling themselves. For example, a renderer can stop sending event on a scrollable element. The challenge for renderers is they need to be keep track of any element with it renders and stop events only when necessary. VS Code version: Code - Insiders 1.44.0-insider (, 2020-03-27T05:28:16.333Z) OS version: Darwin x64 19.2.0 <!-- generated by issue reporter --
cc as you mentioned that it would be painful to write a list view in the output.
I would suggest listening to the wheel event, and triggering a scroll in the notebook if there's no parent element that will scroll. You should be able to tell that with something like
thanks very much, the suggestion is pretty solid. ! The only update to 's snippet above is the scroll should stop at the container of each output container instead of going all the way up to body (potentially). The event listener should also then be registered only in notebook webview other than all webviews.
Change:
} export class TerminalInstance implements ITerminalInstance { <del> private static readonly EOL_REGEX = /r?n/g; </del> <ins> private static readonly WINDOWS_EOL_REGEX = /r?n/g; </ins> private static _terminalProcessFactory: ITerminalProcessFactory = new StandardTerminalProcessFactory(); private static _lastKnownDimensions: Dimension = null;

Discussion:
VSCode Version: Code - Insiders 1.11.0-insider (, 2017-03-17T08:14:15.805Z) OS Version: Windows_NT ia32 10.0. Extensions: ; Steps to Reproduce: a terminal and run "bash" with a text file containing some lines of text ctrl+v (or right-click) to paste some lines of text What's expected: The text should be appended before the cursor, and the existing text should be there after the cursor. What happens: Existing text disappears, and it seems some extra newlines are when pasting text. Note: there is no such problem when doing the exact same steps with This happens on insider builds, no idea if it happens with standard builds as well.
More information. Here is what happens when I try to paste this text function startagent { echo "Initialising new SSH agent..." /usr/bin/ssh-agent | sed 's/^echo/#echo/' "${SSHENV}" echo succeeded chmod 600 "${SSHENV}" . "${SSHENV}" /dev/null /usr/bin/ssh-add; } In the middle of a file containing this text: existing file with some text Here is what happens with (that's what expected: text is pasted in between existing text): ! Here is what happens with VSCode: text is pasted with extra newlines plus existing text appears in the middle of the pasted text !
Any update on this bug ?
Thanks for the ping. I've validated it's definitely an upstream issue. I tried to fix it a couple of days ago but didn't get anywhere. I'd guess it's related to node-pty or winpty as different shells appeared to handle it differently. It also seemed somewhat inconsistent. No plans to invest further in fixing it just yet.
This is probably a bug with VSCode's JS xterm module, not a node-pty or winpty bug. I placed these two lines in an untitled editor window: I then set the environment variable , started VSCode, and copy-and-pasted the two lines above into VSCode's integrated terminal. This appeared in the winpty trace: The clipboard has CRLF-delimited lines, because we're on Windows. However, in the VT/100 input format, CR means Return, and LF means Ctrl-Return.

Something (probably the JS xterm) is copying the clipboard contents into the pty, and that something should normalize LF and CRLF into CR. I described this bug in detail the last time I saw it:
thanks! This is likely the culprit then which replaces all end of line chars with on Windows:
Yeah, I think your change will fix the issue. The function looks like it might also need a change. Maybe something like this?
FYI I think you may have run into these issues before? It would be a good idea to test these changes in in tomorrow's Insiders build.
I've certainly experienced aspects of this issue from the Python extension when running selections of code in the terminal.
I was unable to reproduce the problem anyway, so have no way of testing this. But thanks for letting me know :-)