jiebi/CodeConvo huggingface dataset:
Change:
} public sendText(text: string, addNewLine: boolean): void { <del> if (addNewLine && text.substr(text.length - os.EOL.length) !== os.EOL) { text += os.EOL; </del> <ins> text = this._sanitizeInput(text); if (addNewLine && text.substr(text.length - 1) !== 'r') { text += 'r'; </ins> } this._process.send({ event: 'input',

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 :-)
Change:
import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; import { RawContextKey, IContextKeyService, IContextKey, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; <del> import { BulkEditPreviewProvider } from 'vs/workbench/contrib/bulkEdit/browser/preview/bulkEditPreview'; </del> import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { WorkbenchListFocusContextKey } from 'vs/platform/list/browser/listService';

Discussion:
Make a refactor and open the refactor preview Click on accept/discard The editor showing the refactor preview does not close
Change:
const name1 = getRepositoryName(workspaceContextService, op1); const name2 = getRepositoryName(workspaceContextService, op2); <del> return compareFileNames(name1, name2); </del> <ins> const nameComparison = compareFileNames(name1, name2); if (nameComparison === 0 && op1.provider.rootUri && op2.provider.rootUri) { return comparePaths(op1.provider.rootUri.fsPath, op2.provider.rootUri.fsPath); } return nameComparison; </ins> }; scmService.onDidAddRepository(this.onDidAddRepository, this, this.disposables);

Discussion:
Issue Type: <bBug</bWith the recent update 1.66, where the release note mentions that repositories are listed in alphabetical order in source control tab. But, this created another bug where if we have 2 repros with same name under a folder, one of them will miss in the list. Steps to reproduce: 1) Create root folder and project1 and project2 as sub folder under it 2) Create a git repo name with 'test' under each project1/2 3) Now add root folder to the project explorer. And you will notice only one test git repo listed under source control tab VS Code version: Code 1.66.0 (, 2022-03-30T05:50:14.623Z) OS version: Windows_NT x64 10.0. Restricted Mode: No Remote OS version: Linux x64 5.4.0-90-generic <!-- generated by issue reporter --
/assign
I've already pointed one duplicate to this. I think a fix needs to be considered for recovery.
yeah, I am currently looking at this and I will make sure that it is in the next recovery release.
The fix for this has been checked into main and it will be fixed in tomorrow's Insiders release. I am also porting this fix to to the release branch and it will be part of the next recovery release.
Change:
test('label caching', () => { <del> const m = new Memento('cachedResourceLabelFormatters', storageService).getMemento(StorageScope.PROFILE, StorageTarget.MACHINE); </del> <ins> const m = new Memento('cachedResourceLabelFormatters2', storageService).getMemento(StorageScope.PROFILE, StorageTarget.MACHINE); </ins> const makeFormatter = (scheme: string): ResourceLabelFormatter => ({ formatting: { label: `${path} (${scheme})`, separator: '/' }, scheme }); assert.deepStrictEqual(m, {});

Discussion:
Repro: Using Open a Remote - WSL folder !
This would probably not be limited to the title, what about the hover over the tab?
The separators seem to be flipped: !
I wonder if could have regressed this, is this a recent regression?
I cannot reproduce, so this is some setting you have or some configuration most likely.
It might be remnants of the formatted caching bug?
<!-- AUTHORVERIFICATIONREQUEST --This bug has been fixed in the latest release of ! you can help us out by commenting if things are now working as expected. If things still don't seem right, please ensure you're on version of Insiders (today's or later - you can use in the command palette to check), and leave a comment letting us know what isn't working as expected. Happy Coding!
Change:
}); Registry.as<IWorkbenchContributionsRegistry>(WorkbenchExtensions.Workbench) <del> .registerWorkbenchContribution(StartupPageContribution, LifecyclePhase.Starting); </del> <ins> .registerWorkbenchContribution(StartupPageContribution, LifecyclePhase.Restored); </ins>

Discussion:
Found this stack in my insiders, did some contribution move to such an early phase even before editors are created maybe?
I think from Can we keep the phase and fix the issue differently?
Change:
} } <ins> class CopySettingAsURLAction extends Action { static readonly ID = 'settings.copySettingAsURL'; static readonly LABEL = localize('copySettingAsURLLabel', "Copy Setting as URL"); constructor( @IClipboardService private readonly clipboardService: IClipboardService, @IProductService private readonly productService: IProductService, ) { super(CopySettingAsURLAction.ID, CopySettingAsURLAction.LABEL); } override async run(context: SettingsTreeSettingElement): Promise<void> { if (context) { const settingKey = context.setting.key; const product = this.productService.urlProtocol; const uri = URI.from({ scheme: product, authority: SETTINGS_AUTHORITY, path: `/${settingKey}` }, true); await this.clipboardService.writeText(uri.toString()); } return Promise.resolve(undefined); } } </ins> class SyncSettingAction extends Action { static readonly ID = 'settings.stopSyncingSetting'; static readonly LABEL = localize('stopSyncingSetting', "Sync This Setting");

Discussion:
Now that we can handle settings URLs, we could have a "Copy URL" command in the settings editor: ! From
FYI.
Thanks for the ping! "Copy URL" sounds vague. I'd prefer "Copy URL to Setting". Also, is it just the URL that's copied over, or the entire anchor element?
Since we have "Copy Setting as JSON" maybe "Copy Setting as URL". Which would yield (or if copied from insiders)
To verify: Open the settings editor In an individual setting's menu, choose the "Copy Setting as URL" action Verify that a URL to the setting is copied Verify that if you close VS Code and open the URL that VS Code is opened to the setting
Verified. I've used this a ton recently!
Change:
import { IRemoteConnectionData, RemoteAuthorityResolverErrorCode, ResolverResult, TunnelDescription } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { ProvidedPortAttributes, TunnelCreationOptions, TunnelOptions, TunnelProviderFeatures } from 'vs/platform/remote/common/tunnel'; import { ClassifiedEvent, GDPRClassification, StrictPropertyCheck } from 'vs/platform/telemetry/common/gdprTypings'; <del> import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; </del> <ins> import { ITelemetryInfo, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; </ins> import { ICreateContributedTerminalProfileOptions, IProcessProperty, IShellLaunchConfigDto, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalLocation } from 'vs/platform/terminal/common/terminal'; import { ThemeColor, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IExtensionIdWithVersion } from 'vs/platform/extensionManagement/common/extensionStorage';

Discussion:
The current API does not expose the same level of internal granularity as the user setting allows. This proposal is to expose the telemetry levels. The current and can still be used a simpler API and this one can be considered more advanced and granular. Extension authors cannot just observe the user setting as this will lead to doing the wrong thing.
Another possibility is that we could collect an array of acceptable levels if we're worried about the possibility that the levels will not continue to be progressive but a permissions system instead. I.e. collecting errors and crashes would have be an array . None wouldn't really make sense in this context and would probably go away in favor of an empty array.
This is implemented but will remain in the proposed state for awhile for testing
Closing in favor of
Change:
orderedDisposablesList.reverse().forEach(d => disposables.add(d)); return { <ins> codeBlockCount: codeBlockIndex - codeBlockStartIndex, </ins> element: result.element, dispose() { result.dispose();

Discussion:
Steps to Reproduce: multiple markdown strings with code blocks interleaved with commands/warnings. (see sample chat extension ) progressive streaming of chat content. The markdown code blocks at the beginning of the stream are replaced with the last streamed code block content. See below gif: !
Change:
configurationService = new MockConfigurationService({ editor: { <ins> fontFamily: 'foo' }, terminal: { integrated: { fontFamily: 0, fontSize: 1500 } } }); configHelper = new TerminalConfigHelper(configurationService, null, null, null); configHelper.panelContainer = fixture; assert.equal(configHelper.getFont().fontSize, 25, 'The maximum terminal font size should be used when terminal.integrated.fontSize more than it'); configurationService = new MockConfigurationService({ editor: { </ins> fontFamily: 'foo', }, terminal: {

Discussion:
Testing Steps to Reproduce: the integrated terminal trying to set: , accidentally enter Bug ! Terminal contents start leaking outside of the panel. I also think we should set a maximum terminal font size just as we do for the minimum terminal font size
As a bit of polish the json schema could also include these ranges so a warning will appear in the settings panel.
Hi, I'd like to take this Issue up and make a PR. Thanks in advance PS: I'm new to Open Source and would like your support.
great! There's already a minimum value (), we just need to find a good maximum and add it there. Right now I'm thinking somewhere between 20 and 30 should be the default as that's getting into the ridiculously large territory. There are instructions for building the project here
Hi I've created a and would like your comments. Thanks for the great support.
Should it match the editor max font size? The editor has some max, not sure what it is, but I can now make the text much larger in the editor than the terminal.
Change:
const anchor = $('a', { href: node.href, title: title, }, node.label); if (actionHandler) { <del> actionHandler.toDispose.add(addDisposableListener(anchor, EventType.CLICK, () => actionHandler.callback(node.href))); </del> <ins> actionHandler.toDispose.add(addDisposableListener(anchor, EventType.CLICK, e => { EventHelper.stop(e, true); actionHandler.callback(node.href); })); </ins> } messageContainer.appendChild(anchor);

Discussion:
Steps to Reproduce: a breakpoint into debug viewlet on link to create mock debug config = dispose of the workbench is triggered
Change:
} public async getTask(_task: vscode.Task): Promise<vscode.Task | undefined> { <del> const gruntTask = (<any>_task.definition).task; </del> <ins> const taskDefinition = <any>_task.definition; const gruntTask = taskDefinition.task; </ins> if (gruntTask) { <del> let kind: GruntTaskDefinition = (<any>_task.definition); </del> let options: vscode.ShellExecutionOptions = { cwd: this.workspaceFolder.uri.fsPath }; let source = 'grunt'; let task = gruntTask.indexOf(' ') === -1 <del> ? new vscode.Task(kind, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand} ${gruntTask.name}`, options)) : new vscode.Task(kind, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand} "${gruntTask.name}"`, options)); </del> <ins> ? new vscode.Task(taskDefinition, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand}`, [gruntTask, ...taskDefinition.args], options)) : new vscode.Task(taskDefinition, this.workspaceFolder, gruntTask, source, new vscode.ShellExecution(`${await this._gruntCommand}`, [`"${gruntTask}"`, ...taskDefinition.args], options)); </ins> return task; } return undefined;

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --I'd like to provide my grunt tasks with a single argument but the VSCode task system doesn't support arguments for grunt tasks. I was shocked to discover this because I rarely have grunt tasks without arguments. I can of course work around this issue by using the "shell" task type to run grunt with arguments. Here's . <!-- Describe the feature you'd like. --
Starting pointer:
I would like to work on this. Can I start if no one else is on it ?
thank you, go for it! If you could make a sample repo to test out your change and link it here when you make a PR that would help me review your PR faster :)
To verify, use the from the PR to test.
Change:
export const enum TerminalChatCommandId { Start = 'workbench.action.terminal.chat.start', Close = 'workbench.action.terminal.chat.close', <del> FocusResponse = 'workbench.action.terminal.chat.focusResponse', FocusInput = 'workbench.action.terminal.chat.focusInput', </del> Discard = 'workbench.action.terminal.chat.discard', MakeRequest = 'workbench.action.terminal.chat.makeRequest', Cancel = 'workbench.action.terminal.chat.cancel',

Discussion:
Originally posted by in
this is working AFAICT
On Windows, have to use Ctrl+Up to both go to the list and to go back down to the inputbox. after I focus the list, when I press Up again, it goes back in the input history and changes the inputbox, instead of moving up the list. !
Only tested on mac. Strange that they're different. does that reproduce in the panel chat?
No. It only occurs in terminal chat
Change:
// make sure we block the browser from dispatching it. Instead VS Code // handles these events and will dispatch a copy/paste back to the webview // if needed <del> if (isUndoRedo(e) || isPrint(e) || isFindEvent(e)) { </del> <ins> if (isUndoRedo(e) || isPrint(e) || isFindEvent(e) || isSaveEvent(e)) { </ins> e.preventDefault(); } else if (isCopyPasteOrCut(e)) { if (onElectron) {

Discussion:
<!-- 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/No <!-- 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.66 OS Version: Windows 11 Steps to Reproduce: a notebook in on the notebook editor below the cell list ! +s :bug: prompted to save webpage !
thanks! The focus is in the webview but it seems the save action is not handled properly.
Change:
public entries: IExtensionEntry[]; constructor( <del> private extensions: IExtension[], </del> <ins> private installedExtensions: IExtension[], private outdatedExtensions: IExtension[], </ins> @IInstantiationService instantiationService: IInstantiationService ) { this.renderer = instantiationService.createInstance(Renderer);

Discussion:
from If you select "Show Installed Extensions" you won't see the update button but if you select "Install Extension" and search for an already installed extension that has a newer version available, the update button is visible. Is this part of this bug or is this something else? Install Extension: ! Show Installed Extensions: !
Change:
} } <del> // Remove any line/col suffix before processing the path </del> <ins> // Remove any line/col suffix </ins> let linkUrl = removeLinkSuffix(link); <del> if (!linkUrl) { </del> <ins> // Remove any query string linkUrl = removeLinkQueryString(linkUrl); // Exit early if the link is determines as not valid already if (linkUrl.length === 0) { </ins> cache.set(link, null); return null; }

Discussion:
<img width="1440" alt="image" src="https://user-"path: Versions:
I have one question wish can get help: how vscode terminal detect the path cwd? why can the path correctlly go to the file with a releative path? <img width="1440" alt="image" src="https://user-"I guess it may use the But seems I can get the cwd in TerminalLinkProvider now: <img width="1440" alt="image" src="https://user-"
We check a few things to determine which to use
vite become more and more popular recent days, I think it would be convinient to support the path with query string: !
When I click, it opens the right file, but it underlines the first query argument when I hover, is that an issue? <img width="539" alt="image" src=""
not much of an issue but it would look more polished by just underlining the whole thing
Change:
if (!xterm) { return; } <del> this._marker = activeInstance.registerMarker(-1); </del> <ins> const onFirstLine = xterm.buffer.active.cursorY === 0; this._marker = activeInstance.registerMarker(onFirstLine ? 0 : -1); </ins> if (!this._marker) { return; }

Discussion:
Sighted users see preview text as a voice recording occurs and they see the resultant output, which could be drastically different from what they might expect. To make this clear for SR users, after the recording has stopped, we should alert with the content that was inserted in at least the terminal. Unclear if this would also be desirable to do in the chat input boxes
Do you move over to using braille when using the speech functionality Otherwise, doesn't the mic pick up on what the screen reader is saying?

It seems that the mic icon requires at least one line above the prompt to show: ! It does not appear for me in the above case.
Thanks for the issue. Should be an easy fix and in this case the mic will have to go on the cursor line
Change:
disregardSearchExcludeSettings: true, disregardIgnoreFiles: true, includePattern, <ins> excludePattern: typeof excludePatternOrDisregardExcludes === 'string' ? excludePatternOrDisregardExcludes : undefined, </ins> _reason: 'startFileSearch' });

Discussion:
Use this code in an extension, run the command In 1.31, it returns no results because takes a single glob pattern In 1.32, it returns results because the include and exclude patterns for are split on the comma
This is a candidate because it would be an API change. If we want to support multiple glob patterns we should use an array like we discussed in Parsing a comma-delimited string in this API feels wrong.

1) use yo code to create an extension 2) Replace the with the code below 4) Press F5 to run the workspace 5) Open a project for a node module that has a nodemodules folder with many modules. 6) Execute the ´Hello World' command --the call workspace.findFiles returns file matches from the folder, but the nodemodules folder is excluded. Running the same extension in stable properly excludes matches in the folder. Tagging as a candiate for February since the change of behavour impacts NPM script running and now proposes scripts from the node_modules. The code for
Would be fixed by .
Change:
const outputQueue = new Queue<void>(); this.rawListeners.push(this.raw.onDidOutput(async event => { <ins> const outputSeverity = event.body.category === 'stderr' ? Severity.Error : event.body.category === 'console' ? Severity.Warning : Severity.Info; </ins> // When a variables event is received, execute immediately to obtain the variables value #126967 if (event.body.variablesReference) { const source = event.body.source && event.body.line ? {

Discussion:
on macOS ventura, using Angular 12. See screenshot. ! The line of code below is what causes the above error to be logged: But the text is grey, and there doesn't seem to be a way around this, which is a problem.
Seems like the class is not applied to stderr output with variablesReferences
I think there is an issue for this, I can't find it right now. Started working on it but needs a little refactor
Going to steal this since involves fixing that todo
Change:
}); } <ins> private doSetFileIconTheme(iconThemeData: FileIconThemeData): void { if (iconThemeData) { this.currentIconTheme = iconThemeData; } else { this.currentIconTheme = FileIconThemeData.noIconTheme(); } if (this.container) { if (iconThemeData) { $(this.container).addClass(fileIconsEnabledClass); } else { $(this.container).removeClass(fileIconsEnabledClass); } } if (iconThemeData) { this.sendTelemetry(iconThemeData.id, iconThemeData.extensionData, 'fileIcon'); } this.onFileIconThemeChange.fire(this.currentIconTheme); } </ins> private writeFileIconConfiguration(settingsTarget: ConfigurationTarget): TPromise<IFileIconTheme> { if (!types.isUndefinedOrNull(settingsTarget)) { return this.configurationWriter.writeConfiguration(ICON_THEME_SETTING, this.currentIconTheme.settingsId, settingsTarget).then(_ => this.currentIconTheme);

Discussion:
It would be nice if icons would show up directly after starting the workbench instead of having to wait for the extension host to be ready. Similar to color themes where the data is stored in local storage, the icons data should also be stored so that the overall experience is smooth.
can we consider this for this milestone? I want to mark this "perf-startup" because the fact that the icons only "kick in" later after the UI is already done makes the entire editor appear like a website that needs to load icons later separately which is ugly. It also causes some ugly jumping for opened tabs. ! /cc
PR: