jiebi/CodeConvo huggingface dataset:
Change:
"description": "%typescript.preferences.useAliasesForRenames%", "scope": "language-overridable" }, <ins> "javascript.preferences.renameMatchingJsxTags": { "type": "boolean", "default": true, "description": "%typescript.preferences.renameMatchingJsxTags%", "scope": "language-overridable" }, "typescript.preferences.renameMatchingJsxTags": { "type": "boolean", "default": true, "description": "%typescript.preferences.renameMatchingJsxTags%", "scope": "language-overridable" }, </ins> "typescript.updateImportsOnFileMove.enabled": { "type": "string", "enum": [

Discussion:
!
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We closed this issue because we in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider. If you wonder what we are up to, please see our and . Thanks for your understanding, and happy coding!
Why has this been marked out of scope? This is a feature that was .
facing the same
Same problem here. This IS crucial for big projects.
To verify: renames should rename matching tags now. Test on both html tag names () and custom components () you change , then renaming custom components should instead renaming all references to that component
Change:
} } <ins> export class ExpandAllAction extends Action2 { constructor() { super({ id: 'multiDiffEditor.expandAll', title: { value: localize('ExpandAllDiffs', "Expand All Diffs"), original: 'Expand All Diffs' }, icon: Codicon.expandAll, precondition: ContextKeyExpr.and(ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID), ContextKeyExpr.has('multiDiffEditorAllCollapsed')), menu: { when: ContextKeyExpr.and(ContextKeyExpr.equals('activeEditor', MultiDiffEditor.ID), ContextKeyExpr.has('multiDiffEditorAllCollapsed')), id: MenuId.EditorTitle, group: 'navigation', }, f1: true, }); } async run(accessor: ServicesAccessor, ...args: any[]): Promise<void> { const editorService = accessor.get(IEditorService); const activeEditor = editorService.activeEditor; if (activeEditor instanceof MultiDiffEditorInput) { const viewModel = await activeEditor.getViewModel(); viewModel.expandAll(); } } } </ins> registerAction2(GoToFileAction); registerAction2(CollapseAllAction); <ins> registerAction2(ExpandAllAction); </ins> Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({ properties: {

Discussion:
We have a "collapse all" button: And other places in vscode this typically toggles to an "expand all". Would make sense to have it here as well
PR is now available for review
Change:
export const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hc: null }, nls.localize('unnecessaryCodeOpacity', 'Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.')); export const ghostTextBorder = registerColor('editorGhostText.border', { dark: null, light: null, hc: Color.fromHex('#fff').transparent(0.8) }, nls.localize('editorGhostTextBorder', 'Border color of ghost text in the editor.')); <del> export const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#FFFa'), light: Color.fromHex('#0007'), hc: null }, nls.localize('editorGhostTextForeground', 'Foreground color of the ghost text in the editor.')); </del> <ins> export const ghostTextForeground = registerColor('editorGhostText.foreground', { dark: Color.fromHex('#ffffff56'), light: Color.fromHex('#0007'), hc: null }, nls.localize('editorGhostTextForeground', 'Foreground color of the ghost text in the editor.')); </ins> const rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6)); export const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', { dark: rulerRangeDefault, light: rulerRangeDefault, hc: rulerRangeDefault }, nls.localize('overviewRulerRangeHighlight', 'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'), true);

Discussion:
This came in as feedback from configure ! Using I believe the color can be made darker on the dark theme, as the current contrast is very high: !
Just make sure to have a larger contrast ratio than the required for accessibility. More details for those interested can be found . Thank you
I reduced it to 3.1:1 for dark theme: ! It is 3.6:1 for light theme: (personally, I would not reduce it to 3:1 here) ! Btw. tool is amazing.
Change:
this._evaluateLocalCwd(shellLaunchConfig); let instance: ITerminalInstance; <del> if (options?.target === TerminalLocation.Editor || this.configHelper.config.defaultLocation === TerminalLocation.Editor) { </del> <ins> if (options?.target === TerminalLocation.Editor) { </ins> instance = this.createInstance(shellLaunchConfig); instance.target = TerminalLocation.Editor; this._terminalEditorService.openEditor(instance);

Discussion:
The terminal commands and are used for both the panel buttons and the commands in the CP (that we do want to use the defaultLocation for). Not sure how to differentiate between them - don't think we want to duplicate the actions. let me know what you think
Let's wait until after is done since that will likely add target support to the create commands
Other reproes: Ctrl / Cmd J to open the panel - terminal editor is created focus the terminal editor, click the trash can on the panel , close the editor tab - a bunch of errors in the console
Change:
super(); // TODO: @justschen caching of code actions based on extensions loaded: https://github.com/microsoft/vscode/issues/216019 languageFeatures.codeActionProvider.onDidChange(() => { this.updateSettingsFromCodeActionProviders(); this.updateConfigurationSchemaFromContribs();

Discussion:
Testing I have the following set: When using the sample extension at I expect this to not trigger the code action on save but it does do it. Because there is no auto-complete I tried a bunch of other things also to no avail.
Change:
private getKeybinding() { const keybindings = this.keybindingService.lookupKeybindings('interactive.execute'); const shiftEnterConfig = this.configurationService.getValue(InteractiveWindowSetting.executeWithShiftEnter); <del> const hasChord = (chord: string, kb: ResolvedKeybinding) => { </del> <ins> const hasEnterChord = (kb: ResolvedKeybinding, modifier: string = '') => { </ins> const chords = kb.getDispatchChords(); <del> return chords.length === 1 && chords[0] === chord; </del> <ins> const chord = modifier + 'Enter'; const chordAlt = modifier + '[Enter]'; return chords.length === 1 && (chords[0] === chord || chords[0] === chordAlt); </ins> }; if (shiftEnterConfig) { <del> const keybinding = keybindings.find(kb => hasChord('shift+Enter', kb)); </del> <ins> const keybinding = keybindings.find(kb => hasEnterChord(kb, 'shift+')); </ins> if (keybinding) { return keybinding; } } else { <del> let keybinding = keybindings.find(kb => hasChord('Enter', kb)); </del> <ins> let keybinding = keybindings.find(kb => hasEnterChord(kb)); </ins> if (keybinding) { return keybinding; } keybinding = this.keybindingService.lookupKeybindings('python.execInREPLEnter') <del> .find(kb => hasChord('Enter', kb)); </del> <ins> .find(kb => hasEnterChord(kb)); </ins> if (keybinding) { return keybinding; }

Discussion:
Testing From gear icon, enable the setting Switch back to the interactive window and see no hint in the input box Reloading the workspace does not help as well <img width="1031" alt="Screenshot 2024-06-25 at 18 49 24" src=""
does shift+enter work as a keybinding?
Yes the keybinding works, issue is only about the hint UI.
the hint text keeps saying "Press Command+Enter to execute" and doesn't update depending on the setting. I was expecting the hint to display "Enter" or "Shift+Enter" depending on the setting.
- can you enable the shift+enter option, run and try to press enter in the input box? Do you get something like this in the troubleshooting logs?
it looks like you may have a custom keyboard layout that changes the key label to . I don't know how many ways there are to modify key labels, so I'll just rely on the order of the keybinding registration to show shift+enter instead of always showing cmd/ctrl+enter. It might still show cmd+enter when in the python REPL experiment with a custom keyboard layout, but I think this is as close as I can reliably get.
verification: with Jupyter and python extensions installed run The execution hint should show in the input box click the gear, change the setting shift+enter setting the hint should update should at least show in the hint with the setting enabled. When disabled, it will either show or
<img width="1381" alt="Screenshot 2024-06-27 at 10 21 16 AM" src=""still occurring - key bindings come in as Resolving meta+[Enter] and Resolving shift+[Enter]
Change:
export abstract class ErrorHandler { <del> static { </del> <ins> static async installEarlyHandler(accessor: ServicesAccessor): Promise<void> { </ins> // increase number of stack frames (from 10, https://github.com/v8/v8/wiki/Stack-Trace-API) Error.stackTraceLimit = 100; <del> } static async installEarlyHandler(accessor: ServicesAccessor): Promise<void> { </del> // does NOT dependent of extension information, can be installed immediately, and simply forwards // to the log service and main thread errors const logService = accessor.get(ILogService);

Discussion:
Looks like we have broad support for . Static initialisers are the slight exception as they are only in Safari since ~2months. We might want to special case them, but otherwise we should be good to go:
On native privates: using them will be faster than weak-map-privates but slower than normal properties (much, much slower for Safari):
Some, perf number for some new API native privates - , faster than WeakMap privates but slower than conventional privates slower than []-access needs which need broader adoption because of semantic change.
Upstream issues for private property performance v8 - Webkit -
Change:
const channel = client.getChannel<ILaunchChannel>('launch'); const service = new LaunchChannelClient(channel); <del> return service.start(environmentService.args, process.env) </del> <ins> let promise = TPromise.as(null); if (platform.isWindows) { promise = service.getMainProcessId() .then(processId => { logService.log('Sending some foreground love to the running instance:', processId); try { const { allowSetForegroundWindow } = <any>require.__$__nodeRequire('windows-foreground-love'); allowSetForegroundWindow(processId); } catch (e) { // noop } }); } return promise .then(() => service.start(environmentService.args, process.env)) </ins> .then(() => client.dispose()) .then(() => TPromise.wrapError('Sent env to running instance. Terminating...')); },

Discussion:
This can happen when code is already running and you start it again from the command line: The process that is started is killed very early after sending a IPC message to the running instance and that running instance is then trying to restore/focus the last active window which often fails. Related: As a workaround if you have access to the windows registry: find change its value to (decimal) restart windows
Pushed a workaround.
Reopening, using the () workaround causes issues as it will undock windows it seems.
This happens EVERY time for me - on all 3 machines I use it on, Windows 7 and Windows 10.
As a workaround if you have access to the windows registry: find change its value to (decimal) restart windows
Just tried the suggested workaround and it did not work. Using Windows 10 Home
I've been hit with this bug suddenly after having style execution from WinSCP work flawlessly for months. On top of that, the suggested workaround doesn't work as is nowhere to be found in my registry. Reading this it looks like the issue was fixed but has there been a regression?
Seems to have re-emerged for me. On first launch of VSCode it will focus on top of other windows, but on subsequent launches it stays in the background and flashes in the taskbar. I searched the registry but can't find any reference to . I'm on Win10 Build
Must have made the rookie mistake of not starting the search in the registry root earlier. It turns out there are several hits and the first one in seems to have worked.
I started running into this issue today. Started when I would open a new window from my current window and the new window would not appear on screen, only in the taskbar. Upon restarting the PC, no windows now appear. Tried the workaround but with no luck. Windows10 Build
Update: I made it to work by right clicking the task bar editor thumbnail of VSC and clicking on move. This made my cursor move to the edge of the desktop. I then dragged the corner of the VSC window to bring it to the center. It looks like VSC window was off the desktop boundary for some reason I have made registry changes to hkeylocalmachine and hkeycurrentuser as mentioned but it still doesn't work. Any other suggestions? Reinstalling doesn't fix the issue either.
This is happening to me also since the previous 2 releases. Changing the value of did not help
Change:
if (!response) { return; } <del> if ( !this.accessibilityService.isScreenReaderOptimized() && // do not auto synthesize when screen reader is active this.configurationService.getValue<boolean>(AccessibilityVoiceSettingId.AutoSynthesize) === true ) { </del> <ins> const autoSynthesize = this.configurationService.getValue<'on' | 'off' | 'auto'>(AccessibilityVoiceSettingId.AutoSynthesize); if (autoSynthesize === 'on' || autoSynthesize === 'auto' && !this.accessibilityService.isScreenReaderOptimized()) { </ins> let context: IVoiceChatSessionController | 'focused'; if (controller.context === 'inline') { // TODO@bpasero this is ugly, but the lightweight inline chat turns into

Discussion:
Type: <bFeature Request</bCC setting is ignored when accessibility mode is on. While screen reader's TTS can auto-announce Chat response, some users may want to use this new synthesizer. so, we may want to turn off aria-live when this setting is on. Another consideration is that some low-vision users, who don't necessarily use SR, have turned on the a11y mode and they still want to benefit from this auto-synthesize setting. VS Code version: Code - Insiders 1.91.0-insider (, 2024-06-10T05:48:36.787Z) OS version: Windows_NT x64 10.0. Modes: <!-- generated by issue reporter --
Makes sense cc
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
would you, yourself, enable this? I worry about turning off regions.
I don’t know whether I would turn this on permanently, but would like to try this out definitely to see if it gives me any new experience. I may be able to manage to listen to two different TTS simultaneously (one for Copilot; SR TTS for my own drive).
That makes sense. It would be great if you could try it out. You can do this now by using the action in the toolbar,
Yes, I have tried this, but this is a manual trigger which does not give me the same experience as the auto-read-aloud.
do you mute NVDA speech and use a braille device when you want to use voice input? or do you use a separate speaker/headphones? When testing this experience, the screen reader's speech is getting recorded by the mic and used as chat input for me unless I mute VoiceOver speech.
That happens when microphone is too sensitive. SR users need to mute their speech synthesizer or they need to use a different sound card or headset.
I use a separate sound card for my screen reader.
what are some verification steps for this issue?

enable screen reader mode, adjust the setting to on, run a chat request, (make sure volume is up), hear the response
I am still unsure what to test and what I should hear. I followed the steps and didn't hear the chat response. I only heard it when talking to chat in the first place.
Sorry - in order to hear the response, I forgot that you have to use voice input to the chat. So pls try that with screen reader mode enabled and that setting on.
Change:
continue; } <del> // Make sure the entire line matches, not just a subpart. </del> let matches = firstLine.match(association.firstline); <del> if (matches && matches.length > 0 && matches[0].length === firstLine.length) { </del> <ins> if (matches && matches.length > 0) { </ins> return association.mime; } }

Discussion:
From For a file such as: We currently do not recognize the file as python even though the internal python extension's contribution matches. The reason is that the entire first line has to match: This seems inconsistent with how TextMate uses , and some of our grammars use patterns that do not work well with this restriction, such as : which fails to match:
and Adding you since I had trouble tracking down who implemented the logic in originally. Do you know why we currently require the entire line to match? Can we do like the xml grammar and add to the end of some of the contributions?
sorry I cannot answer this question, the code was a long time ago (I think by ) and since then has not been touched. I am fine changing this so that we align with TextMate's way of doing things. Happy to review a PR if you are interested.
Change:
import {LineStream} from 'vs/editor/common/modes/lineStream'; import {NullMode, NullState, nullTokenize} from 'vs/editor/common/modes/nullMode'; import {Token} from 'vs/editor/common/modes/supports'; <ins> import {ModeTransition} from 'vs/editor/common/core/ModeTransition'; </ins> export interface ILeavingNestedModeData { /**

Discussion:
VSCode Version: 1.4.0 OS Version: Windows 10 .51 Steps to Reproduce: the sample code from below, set HTML as Language Mode cursor at Line 8, Col 5 Tab message !
Looks like it occurs in emmet's editorAccessor, which calls , that apparently returns null. !
, created a PR for this issue. The issue can also be fixed by removing the optimization at which checks just the first element to be ModeTransition, but other elements are not. Let me know if this fix makes more sense than the PR I submitted, so that I can provide a PR for that as well.
Change:
import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { Event, Emitter } from 'vs/base/common/event'; import { ExtHostTelemetryShape } from 'vs/workbench/api/common/extHost.protocol'; <ins> import { TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import type { TelemetryConfiguration } from 'vscode'; </ins> export class ExtHostTelemetry implements ExtHostTelemetryShape { private readonly _onDidChangeTelemetryEnabled = new Emitter<boolean>(); readonly onDidChangeTelemetryEnabled: Event<boolean> = this._onDidChangeTelemetryEnabled.event; <del> private _enabled: boolean = false; </del> <ins> private readonly _onDidChangeTelemetryConfiguration = new Emitter<TelemetryConfiguration>(); readonly onDidChangeTelemetryConfiguration: Event<TelemetryConfiguration> = this._onDidChangeTelemetryConfiguration.event; </ins> <del> getTelemetryEnabled(): boolean { return this._enabled; </del> <ins> private _level: TelemetryLevel = TelemetryLevel.NONE; private _oldTelemetryEnablement: boolean | undefined; getTelemetryConfiguration(): boolean { return this._level === TelemetryLevel.USAGE; } getTelemetryDetails(): TelemetryConfiguration { return { isCrashEnabled: this._level >= TelemetryLevel.CRASH, isErrorsEnabled: this._level >= TelemetryLevel.ERROR, isUsageEnabled: this._level >= TelemetryLevel.USAGE }; </ins> } <del> $initializeTelemetryEnabled(enabled: boolean): void { this._enabled = enabled; </del> <ins> $initializeTelemetryLevel(level: TelemetryLevel): void { this._level = level; </ins> } <del> $onDidChangeTelemetryEnabled(enabled: boolean): void { this._enabled = enabled; this._onDidChangeTelemetryEnabled.fire(enabled); </del> <ins> $onDidChangeTelemetryLevel(level: TelemetryLevel): void { this._oldTelemetryEnablement = this.getTelemetryConfiguration(); this._level = level; if (this._oldTelemetryEnablement !== this.getTelemetryConfiguration()) { this._onDidChangeTelemetryEnabled.fire(this.getTelemetryConfiguration()); } this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails()); </ins> } }

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:
'default': DefaultConfig.editor.snippetSuggestions, 'description': nls.localize('snippetSuggestions', "Controls whether snippets are shown with other suggestions and how they are sorted.") }, <ins> 'editor.emptySelectionClipboard': { 'type': 'boolean', 'default': DefaultConfig.editor.emptySelectionClipboard, 'description': nls.localize('emptySelectionClipboard', "Controls whether copying without a selection copies the current line.") }, </ins> 'editor.wordBasedSuggestions': { 'type': 'boolean', 'default': DefaultConfig.editor.wordBasedSuggestions,

Discussion:
Like the title says, when nothing is selected, copying shouldn't copy a blank character.
As of now, cmd+c without any selection, copies the entire line. Sublime also does the same. Are we suggesting to change this behavior as part of this issue? I really like the current functionality. Or are we suggesting one more option/flag which user can enable to have the new functionality?
Yes, it would be behind an option
Can we have the option for this behavior or disable it? I don't like the auto copy of a blank line and would like to disable that feature. I agree it can be annoying especially in the type of coding I do (debugging).
Was a setting for this?
it is
disables the line copying entirely. Is there a way to have line copying enabled, while simultaneously ignoring the empty lines?
This doesn't disable the copying within my VS Code at all and I can still copy whitespace - anyone else had any luck? fingers crossed
Change:
pid?: number; } <ins> export function isCandidatePort(candidate: any): candidate is CandidatePort { return candidate && 'host' in candidate && typeof candidate.host === 'string' && 'port' in candidate && typeof candidate.port === 'number' && (!('detail' in candidate) || typeof candidate.detail === 'string') && (!('pid' in candidate) || typeof candidate.pid === 'string'); } </ins> export interface IRemoteExplorerService { readonly _serviceBrand: undefined; onDidChangeTargetType: Event<string[]>;

Discussion:
Testing When I try to return , , and aren't working for me. an extension as described in and create a ports attribute provider. the following to return one of the above actions: running the command, we just get a notification. :bug: I'm not sure whether this is happening because I'm in a devcontainer.
Hmm, I'm still seeing this in an alpine devcontainer. The previews/browsers should open immediately upon detection, right?
Verified using different verif steps than above.