jiebi/CodeConvo huggingface dataset:
Change:
} else if (matches[0].toLowerCase() === matches[0]) { return pattern.toLowerCase(); } else if (strings.containsUppercaseCharacter(matches[0][0])) { <del> if (validateSpecificSpecialCharacter(matches, pattern, '-')) { </del> <ins> const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-'); const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_'); if (containsHyphens && !containsUnderscores) { </ins> return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-'); <ins> } else if (!containsHyphens && containsUnderscores) { return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_'); </ins> } else { return pattern[0].toUpperCase() + pattern.substr(1); }

Discussion:
and , Similar to , We can implement for underscore character as well , Proposing this will be only just underscore or just hyphen replacements and not both. Foo-Bar replaced with newfoo-newbar with case preserved will be Newfoo-Newbar and FooBar will be NewfooNewBar. Please let me know if this gets a node from you guys ? Thanks!
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.706 --<!-- potentialduplicatescomment --
Change:
} test(`test`, () => { <del> runTest('shifting-twice', 'advanced'); </del> <ins> runTest('issue-214049', 'advanced'); </ins> }); for (const folder of folders) {

Discussion:
. To verify the bugfix, check that in the newest version of the monaco editor the alignment is as expected. edit from <!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Read our guide about submitting issues: --<!-- Search existing issues to avoid creating duplicates. --<!-- Test using the latest Insiders build to see if your issue has already been fixed: --<!-- Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. --<!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --VS Code Version: 1.89.1 (user setup) Commit: Date: 2024-05-07T05:13:33.891Z Electron: 28.2.8 ElectronBuildId: Chromium: 120.0.6099.291 18.18.2 V8: 12.0.267.19-electron.0 OS: Windows_NT x64 10.0. Searched existing issues by "compare vertical alignment" - no relevant results. Steps to Reproduce: files test2 and test1 them Fact wrong vertical alignment of identical rows after delete-add section ! Expected !
Thanks for sharing the input documents and the screenshot! Unfortunately, it is still not clear what this issue is about - I don't see a big difference in the screenshots. Can you add more details?
difference (expected empty range) is shown on this picture !
Ahh, I see. Can you check the dev console?
No. I want fix in my test. Not in dev console. Can you reproduce my simple test in user interface?
No, I cannot reproduce. But I think VS Code might have logged some errors to the VS Code dev console. You could help me fixing this bug, but sharing if there are any error messages in the VS Code dev console.
Show your comparison result. Here is log from dev console: An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can escape its sandboxing. !
Change:
} catch (error) { this._logService.error(error); } <del> return dedupExtensions(system, user, development, this._logService); </del> <ins> return dedupExtensions(system, user, [], development, this._logService); </ins> } protected async _resolveExtensionsDefault() {

Discussion:
This extension wants me to install it, also has a reload, and has a restart button. The restart button doesn't do anything. This is just in the VS Code repo <img width="476" alt="image" src=""
Can you please share the following file F1 Open Extensions Folder Share file
What do you see in Installed Extensions view? Also What version of that extension is running in Running Extensions editor - F1 Show Running Extensions? Is there a message when you hover on Restart Extensions button?
Installed <img width="470" alt="image" src=""Running view <img width="917" alt="image" src=""Hover of restart <img width="470" alt="image" src=""Ok, so it does appear I have this extension installed. And it wants me to restart it to uninstall it? And then to install it as a workspace extension? Clicking the restart button doesn't do anything and I didn't request the extension be uninstalled
This issue has been closed automatically because it needs more information and has not had recent activity. See also our guidelines. Happy Coding!
Change:
this.breadcrumbsControl = this.instantiationService.createInstance(BreadcrumbsControl, container, options, this.group); } <del> this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(() => { </del> <ins> this._register(this.fileService.onDidChangeFileSystemProviderRegistrations(e => { if (this.breadcrumbsControl?.model && this.breadcrumbsControl.model.resource.scheme !== e.scheme) { // ignore if the scheme of the breadcrumbs resource is not affected return; } </ins> if (this.breadcrumbsControl?.update()) { this.handleBreadcrumbsEnablementChange(); }

Discussion:
profile on startup and have a css file opened the registers a fs provider for this somehow ends up causing a dom layout via the breadcrumbs <img width="606" alt="image" src="https://user-"
The trigger is that registering a file system causes a label service change event which causes breadcrumbs to re-render. Tho, we can likely optimise this
Change:
this.domNode.style.border = `1px solid ${asCssVariable(editorHoverBorder)}`; this.domNode.style.color = asCssVariable(editorHoverForeground); <ins> this.toDispose.push(this.tree.onContextMenu(async e => await this.onContextMenu(e))); </ins> this.toDispose.push(this.tree.onDidChangeContentHeight(() => { if (!this.isUpdatingTree) { // Don't do a layout in the middle of the async setInput

Discussion:
This is the debug hover: ! I think it would be great if each value has a context menu (or inline buttons) to trigger (contributable) actions. Built-in actions could be: copy value copy expression watch Actions contributed by extensions could be: visualize This is already supported in the sidebar: !
good overall idea and I like it. I think we could implement it fairly easily by adding a new menu type to the hover tree. We can even open it for extensions as you suggested. However I would be interested in what other apps do you know that have a context menu on the hover? Might this be a sort of an anti pattern? I know that the debug hover is a bit heavy and a context menu might fit well there, but I would be interested in how other products do it. Maybe try out Visual Studio, Chrome Dev Tools and others... fyi
I do believe that's using the tree widget, which supports inline actions: <img width="334" alt="CleanShot 2021-06-08 at 10 46 42 src="https://user-"I'd assume either a (though there is quite a bit already in these views) or: <img width="652" alt="CleanShot 2021-06-08 at 10 48 01 src="https://user-"<img width="659" alt="CleanShot 2021-06-08 at 10 48 46 src="https://user-"
VS has quite a few nested context menus :D 
I think that would be possible since it's a toolbar, we do show more inline actions in peek/diff views: <img width="157" alt="CleanShot 2021-06-08 at 10 57 38 src="https://user-"
Cool ideas. Maybe just a right click context menu might work best. But an additional gear on the end to make it discoverable will help. Ellipsis look good in the example you provided but in practice we have a lost of overflowing text and it is all shown with ellipsis, so I think it would be very confusing, as some ellipsis would be clickable and some not... is right, it can be made possible if we make it a toolbar, however I would be worried about opening inline actions to extensions since horizontal space is already limited. I would first only open secondary actions - the one behind a context menu. Though I am flexible.
can you verify this one?
Change:
}, { "name": "none", <del> "desc": "Neither produces nor inhibits text decoration." </del> <ins> "desc": "Produces no text decoration." </ins> }, { "name": "overline"

Discussion:
typing gives intellisense for colors, not for text-decoration. typing non will not show 'none' in Intellisense. The problem occurs in any css, less and scss file in any place, with any selector. Problem also occurs without extensions. I am running Windows 7 32bit with all updates possible. ! !
Colours are valid values for text-decoration, as it is a shorthand which includes text-decoration-color
Change:
// a notebook has one kernel, a kernel has N notebooks // notebook <-1----N-> kernel <del> selectKernelForNotebook(kernel: INotebookKernel, notebook: INotebookTextModelLike): void { </del> <ins> selectKernelForNotebook(kernel: INotebookKernel | undefined, notebook: INotebookTextModelLike): void { </ins> const key = NotebookTextModelLikeId.str(notebook); const oldKernel = this._notebookBindings.get(key); if (oldKernel !== kernel?.id) {

Discussion:
Testing microsoft/vscode-jupyter untitled ipynb cells export commands are available in command palette the untitled notebook as ipynb and give it a title command palette :bug: all the export commands are now hidden
I think this is because technically the cells were run in the context of the previous notebook, so I now need to run them again after saving the notebook, which is a rather nasty limitation...
I think this is because after saving we don't have a kernel connected to the newly saved notebook. There is no kernel session transfer (from untitled to saved notebook) currently.
Save As is handled by core. Need to transfer current controller to new ipynb.
Seems related to
Not sure - we are handling this the same way we persist selection and other view state. But the editor still gets reopened with a new model. Dunno how this concept works in custom editors.
Custom editors have one the untitled editor closed and a new one with another URI open, I want a signal that a custom editor can handle to upgrade it so no close/open needs to happen
Steps: Open an untitled jupyter notebook Select a kernel Save the notebook The same kernel should be selected The "Set kernel as default" gear icon in the kernel picker was also removed.
Verified with this "kernel"
Change:
this.setVisible(isVisible); } <del> // Remove previous state this._previousState?.dispose(); this._previousState = state; </del> if (!isVisible) { <ins> this._previousState = undefined; this._previousElements = []; this._previousStateDisposables.clear(); </ins> return; } <del> const elements = Array(state.count); for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) { const stickyNode = state.stickyNodes[stickyIndex]; const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count); elements[stickyIndex] = element; </del> <ins> const lastStickyNode = state.stickyNodes[state.count - 1]; </ins> <del> this._rootDomNode.appendChild(element); state.addDisposable(disposable); </del> <ins> // If the new state is only a change in the last node's position, update the position of the last element if (this._previousState && state.animationStateChanged(this._previousState)) { this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`; </ins> } <ins> // create new dom elements else { this._previousStateDisposables.clear(); </ins> <del> this.stickyScrollFocus.updateElements(elements, state); </del> <ins> const elements = Array(state.count); for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) { const stickyNode = state.stickyNodes[stickyIndex]; </ins> <del> // Add shadow element to the end of the widget const shadow = $('.monaco-tree-sticky-container-shadow'); this._rootDomNode.appendChild(shadow); state.addDisposable(toDisposable(() => shadow.remove())); </del> <ins> const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count); elements[stickyIndex] = element; this._rootDomNode.appendChild(element); this._previousStateDisposables.add(disposable); } this.stickyScrollFocus.updateElements(elements, state); this._previousState = state; this._previousElements = elements; } </ins> // Set the height of the widget to the bottom of the last sticky node <del> const lastStickyNode = state.stickyNodes[state.count - 1]; </del> this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`; }

Discussion:
Tree Sticky Scroll uses caching to make sure that it does not have to rerender often. During the animation each frame/scroll has to be rerendered, which causes DOM elements to be removed and reconstructed. This could be improved by reusing the DOM elements and just adapting their heights.
Change:
options.env = assign({}, process.env, this.env, options.env || {}, { VSCODE_GIT_COMMAND: args[0], LC_ALL: 'en_US.UTF-8', <del> LANG: 'en_US.UTF-8' </del> <ins> LANG: 'en_US.UTF-8', GIT_PAGER: 'cat' </ins> }); if (options.cwd) {

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.44.0 OS Version: Windows 10 / 1909 Git allows user to set up a custom pager app. See  option in git configuration. And this can ruin VS Code communication with git. Commands such as //etc., which are uses pager, can truncate output or provide invalid output. VS Code just need to pass  arg when calling git. To always receive the raw output. For example here:
Good finding. Did you actually hit this issue in the wild?
yes. Otherwise I probably would not have noticed it.
Which VS Code features exactly do not work?
For example, VS Code uses command to show the diff in the current file. When third party pager is defined and truncates the output, part of the file will be marked as newly . But in reality the file isn't changed of course. Or if you use entirely inproper program as pager, VS Code can show entire file as changed. Or show a total mess. Depends on what you've set up as pager.
Small clarification: usually git can determine that command was run in non-interactive mode (not in the shell). But not always. This may vary in different circumstances and versions. So this is more like to guarantee that git always send us the raw output.
So, should we only add this argument in some commands and not all?
I don't know really. says So if considering this sentence the answer is yes.
You can also use env variable instead that is set to a custom value for the vscode terminal
I like this much more than the current PR, wanna submit a PR?
yeah, seems like such solution will be better.
Not now, maybe in the weekend if nobody takes over. I have nothing checked out or build yet from vscode.
I'm myself unable to build the editor at the moment (I probably need to install more vscode stuff), feel free to test when able
I can't repro the original issue in 1.44.

I tried setting to several things that shouldn't produce the right result, and I see it respected when I run git commands in the terminal, but vscode still works ok. Tried , , , don't see an issue. What were you using originally?
Yeah, I just wanted to figure out which circumstances those are. But it works fine for me on both mac and windows so I'll call it verified
Change:
primary: KeyMod.Alt | KeyCode.F6, weight: KeybindingWeight.WorkbenchContrib }, <del> icon: Codicon.treeFilterClear, </del> <ins> icon: Codicon.bellSlash, </ins> menu: [ commandPalette, {

Discussion:
We use an X now, which to me feels more like a 'dismiss accessible help' button. Maybe would be more appropriate , or even !
what do you think?
Replied in I see had the same icon suggestion above
Change:
if (this._isDisposed) { return; } <del> let text = this._compute(grammar, semanticTokens, position); this._domNode.innerHTML = text; </del> <ins> this._compute(grammar, semanticTokens, position); </ins> this._domNode.style.maxWidth = `${Math.max(this._editor.getLayoutInfo().width * 0.66, 500)}px`; this._editor.layoutContentWidget(this); }, (err) => {

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. --The next step in resolving . Simirarly to , it aims to replace construction of HTML elements by string concatenation in file. The code contains mainly a table construction by concatenating strings of . The goal is to replace them all with function calls.
I verified by running the monaco editor from source and testing the inspect token hover
To verify, open the hover and verify it looks all proper.
Change:
public interruptGetErr<R>(f: () => R): R { if (!this.pendingGetErr <del> || this.client.configuration.enableProjectDiagnostics // `geterr` happens on seperate server so no need to cancel it. </del> <ins> || this.client.configuration.enableProjectDiagnostics // `geterr` happens on separate server so no need to cancel it. </ins> ) { return f(); }

Discussion:
Issue Type: <bBug</bMoved off Steps to reproduce: code that generates a linting warning (in this case, should should generate an unused variable warning) the file, and then close it before the diagnostics appear Expected behavior: Diagnostics are not shown when the file is closed. Actual behavior: Diagnostics are sometimes shown when the file is closed, and will not disappear until I reload the window. Please note that I couldn't reproduce this behaviour reliably. Action gif: ! VS Code version: Code 1.46.1 (, 2020-06-17T21:17:14.222Z) OS version: Darwin x64 19.5.0 <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ bracket-pair-colorizer-20.2.0 gitlens10.2.2 prettier-vscode5.1.3 vscode-pull-request-github0.17.0 vscode-docker1.3.1 python2020.6. vscode-pylance2020.6.1 remote-containers0.122.1 remote-ssh0.51.0 remote-ssh-edit0.51.0 remote-wsl0.44.4 vscode-remote-extensionpack0.20.0 azure-account0.8.11 vscode-typescript-tslint-plugin1.2.3 vscode-icons10.1.1 (3 theme extensions excluded) </details<!-- generated by issue reporter --
Change:
// Get the path and name of the resource. For data-URIs, we need to parse specially let name: string | undefined; <del> let path: string | undefined; </del> if (resource.scheme === Schemas.data) { const metadata = DataUri.parseMetaData(resource); name = metadata.get(DataUri.META_DATA_LABEL); <del> path = name; </del> } else { name = cssEscape(basenameOrAuthority(resource).toLowerCase()); <del> path = resource.path.toLowerCase(); </del> } // Folders

Discussion:
Issue Type: <bBug</bto something like . a new tab. The tab should have the Markdown icon, but it has the Plain Text icon. If you move to another tab then back, the icon will be updated. This only started happening when I updated to 1.3, and it's still happening in Insiders. I've got no extensions or settings (other than ) set. VS Code version: Code - Insiders 1.31.0-insider (, 2018-12-21T06:14:53.023Z) OS version: Darwin x64 18.2.0 <!-- generated by issue reporter --
This is a consequence of adopting : When the tab opens we immediately render the icon, but the resource only gets the mode associated after a on the end of the tick.
via
Change:
} .monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .right { overflow: hidden; <del> margin-left: 16px; </del> flex-shrink: 0; max-width: 45%; }

Discussion:
Create the following keybinding and open intellisense in the command: Lots of wasted space and I can no longer tell which one is and which is : ! In stable: ! Version: 1.42.0-insider (user setup) Commit: Date: 2020-02-05T16:51:41.553Z Electron: 6.1.6 Chrome: 76.0.3809.146 12.4.0 V8: 7.6.303.31-electron.0 OS: Windows_NT x64 10.0.
Verifier: Verify that completing use most of the spaces, like in Stable. There's 18px to the right which is reserved for the scrollbar that we don't use. !
Change:
this.label.classList.add('inlineSuggestionStatusBarItemLabel'); } } <ins> protected override updateTooltip(): void { // NOOP, disable tooltip } </ins> } export class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {

Discussion:
Testing We shouldn't have tooltips here: !
what do you think? Currently, all toolbar actions have tooltips.
Yeah, unsure. All toolbars/actionbars have it but most have an icon and not the same text as the tooltip
Both options are fine for me. Whatever you prefer. I am slightly leaning towards no title. So we do not have hover in a hover (feels IDE-ish and heavy).
Change:
}); // Bubble out link clicks <del> newFrame.contentWindow.addEventListener('click', handleInnerClick); </del> <ins> newFrame.contentWindow.addEventListener('mousedown', handleInnerClick); </ins> if (host.onIframeLoaded) { host.onIframeLoaded(newFrame);

Discussion:
When middle clicking any of the links in the image, it opens the browser with a broken url For example for the remote development link, the url is: ! I'm Using Ubuntu 18.04
Hi I'm not sure I understand the scenario here. Why would you want to open to a section of the in-product release notes in an external browser? Left click will navigate to the section staying in-product. We had expected people to read the release notes either in-product or on the website at We didn't think people would want to use both at the same time.
Habit! problem is it took me several seconds to realize that I was not suppose to do that, so maybe middle-clicking should be disabled, or just not open in a browser, in fact, I was just expecting it to open in a new tab
Here's where we handle clicks inside of webviews:
Change:
.monaco-editor-hover .markdown-hover > .hover-contents:not(.code-hover-contents) { max-width: 500px; <ins> word-wrap: break-word; </ins> } .monaco-editor-hover p,

Discussion:
Testing OS Version: Windows Enterprise With wrapping for long tooltips (if the title has space in it) ! If I have a long link without spacing in it, there's no wrapping and the scroll bar shows up only if you hover by the tooltip. ! Thoughts on wrapping?
After thinking about this a bit more, I'd say we should wrap long words / links
Pushing to June since the change will effect some core styling
Change:
it('Should update and show custom icons', async () => { await createShellIntegrationProfile(); await terminal.assertCommandDecorations({ placeholder: 1, success: 0, error: 0 }); <del> await terminal.runCommandInTerminal(`ls`); await terminal.runCommandInTerminal(`fsdkfsjdlfksjdkf`); </del> <ins> await terminal.runCommandInTerminal(`echo "foo"`); await terminal.runCommandInTerminal(`bar`); </ins> await settingsEditor.addUserSetting('terminal.integrated.shellIntegration.decorationIcon', '"zap"'); await settingsEditor.addUserSetting('terminal.integrated.shellIntegration.decorationIconSuccess', '"zap"'); await settingsEditor.addUserSetting('terminal.integrated.shellIntegration.decorationIconError', '"zap"'); await terminal.assertCommandDecorations(undefined, { updatedIcon: "zap", count: 3 }); <ins> await app.workbench.terminal.runCommand(TerminalCommandId.KillAll); </ins> }); }); });

Discussion:
With support for for Electron tests, we should enable terminal tests: I eagerly had enabled them but since we don't know whether Electron smoke tests with are stable, I moved back to only running them in web. We should not enable these tests until we are sure, smoke tests are stable, so maybe this should only happen in May.
Failing macOS run for reference: !
Still not passing, deferring to a debt week