jiebi/CodeConvo huggingface dataset:
Change:
// Reveal the newly selected element if (prev) { <ins> if (prev === selected) { this.tree.setFocus([]); } </ins> this.tree.setFocus([prev], getSelectionKeyboardEvent(undefined, false)); this.tree.reveal(prev); }

Discussion:
Repro: vscode for "interface ITerminalChild" (or any search with a single result) F4 to some other file F4, nothing happens (presumably because the item is still selected in the search viewlet)
I think this was fixed with but we can verify it separately
Doesn't work still
Change:
export function getVscodeDevHost(): string { return `https://${vscode.env.appName.toLowerCase().includes('insiders') ? 'insiders.' : ''}vscode.dev/github`; } <ins> export async function ensurePublished(repository: Repository, file: vscode.Uri) { if ((repository.state.HEAD?.type === RefType.Head || repository.state.HEAD?.type === RefType.Tag) // If HEAD is not published, make sure it is && !repository?.state.HEAD?.upstream ) { const publishBranch = vscode.l10n.t('Publish Branch'); const selection = await vscode.window.showInformationMessage( vscode.l10n.t('The current branch is not published to the remote. Would you like to publish your branch before copying a link?'), { modal: true }, publishBranch ); if (selection !== publishBranch) { throw new vscode.CancellationError(); } await vscode.commands.executeCommand('git.publish'); } const uncommittedChanges = [...repository.state.workingTreeChanges, ...repository.state.indexChanges]; if (uncommittedChanges.find((c) => c.uri.toString() === file.toString())) { const commitChanges = vscode.l10n.t('Commit Changes'); const copyAnyway = vscode.l10n.t('Copy Anyway'); const selection = await vscode.window.showWarningMessage( vscode.l10n.t('The current file has uncommitted changes. Please commit your changes before copying a link.'), { modal: true }, commitChanges, copyAnyway ); if (selection !== copyAnyway) { // Focus the SCM view vscode.commands.executeCommand('workbench.view.scm'); throw new vscode.CancellationError(); } } else if (repository.state.HEAD?.ahead) { const pushCommits = vscode.l10n.t('Push Commits'); const selection = await vscode.window.showInformationMessage( vscode.l10n.t('The current branch has unpublished commits. Would you like to push your commits before copying a link?'), { modal: true }, pushCommits ); if (selection !== pushCommits) { throw new vscode.CancellationError(); } await repository.push(); } await repository.status(); } </ins>

Discussion:
Testing One can copy links to & github & azure repos even though I just created the file and copying such a link will result in empty or 404 on GH. Seeing links to just created file : <img width="451" alt="image" src="https://user-"
No progress on this one yet, but would you expect the actions to be hidden, or would you want to be prompted to commit the file to the remote when the command is invoked?
I think users could be confused if the actions wouldn't appear (eg they might've forgotten the file isn't pushed), so the latter sounds better. But I wonder whether checking whether the file is available on remote would be slow
Change:
<ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import * as platform from 'vs/base/common/platform'; suite('Keytar', () => { test('loads and is functional', function (done) { if (platform.isLinux) { // Skip test due to set up issue with Travis. this.skip(); return; } (async () => { const keytar = await import('keytar'); const name = `VSCode Test ${Math.floor(Math.random() * 1e9)}`; try { await keytar.setPassword(name, 'foo', 'bar'); assert.equal(await keytar.getPassword(name, 'foo'), 'bar'); await keytar.deletePassword(name, 'foo'); assert.equal(await keytar.getPassword(name, 'foo'), undefined); } catch (err) { // try to clean up try { await keytar.deletePassword(name, 'foo'); } finally { // tslint:disable-next-line: no-unsafe-finally throw err; } } })().then(done, done); }); }); </ins>  No newline at end of file

Discussion:
What is the purpose of in vs/platform? should only be used for shared services across processes. Please move it elsewhere, e.g. .
Change:
export interface SymbolTree { /** <del> * Set the contents of the references viewlet. * </del> <ins> * Set the contents of the references viewlet. * </ins> * @param input A symbol tree input object */ setInput(input: SymbolTreeInput<unknown>): void;

Discussion:
Ah, sorry for the breakage... I believe asking for both is the best option for now but I can also add a "migration" path into the implementation, e.g use when seeing Originally posted by in
Change:
'LINE_COMMENT': true, 'WORKSPACE_NAME': true, 'WORKSPACE_FOLDER': true, <ins> 'RANDOM': true, 'RANDOM_HEX': true, </ins> }); export class CompositeSnippetVariableResolver implements VariableResolver {

Discussion:
[use case] generate a simple random string as a quick debug flag [feature request] add a $RANDOM varible to snippet or support JS expression as ES6 did e.g. ${().toString(36).slice(-6)}`
, I can take this up but need some starter and code pointers for this :) I just need some more understanding as we can do something like this (,$1);
Is this still open? Can I take this?
Go for it. Code pointer:
Duplicate of Alka
Change:
const DEFAULT_LINE_HEIGHT = 1.0; const MINIMUM_FONT_SIZE = 6; <ins> const MAXIMUM_FONT_SIZE = 25; </ins> /** * Encapsulates terminal configuration logic, the primary purpose of this file is so that platform

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:
VSCODE_DEV: 'x', VSCODE_IPC_HOOK: 'x', VSCODE_NLS_CONFIG: 'x', <del> VSCODE_PORTABLE: 'x', </del> <ins> VSCODE_PORTABLE: '3', </ins> VSCODE_PID: 'x', VSCODE_SHELL_LOGIN: '1', VSCODE_CODE_CACHE_PATH: 'x',

Discussion:
Does this issue occur when all extensions are disabled?: 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.74.2 OS Version: Arch with Linux v6.1.3 Steps to Reproduce: VS Code in portable mode (VSCODEPORTABLE env var set to a directory) a file in the instance by typing in the integrated terminal. Code opens a new window rather than opening the file as a tab, and the new window reads userdata from instead of "$VSCODEPORTABLE". Possible solution: I investigated and noticed that the integrated terminal in VS Code reads the env var as unset even if it is set by the OS. As a workaround, I have this to my config, and it works:
Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.74.3. Please try upgrading to the latest version and checking whether this issue remains. Happy Coding!
Happens on the latest version as well: !
Oh if we just need set for this to work I can remove that from the env sanitization.
<!-- 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:
let cachedExtensionToggleData: ExtensionToggleData | undefined; <del> export async function getExperimentalExtensionToggleData(extensionGalleryService: IExtensionGalleryService, environmentService: IEnvironmentService, productService: IProductService): Promise<ExtensionToggleData | undefined> { </del> <ins> export async function getExperimentalExtensionToggleData(extensionGalleryService: IExtensionGalleryService, productService: IProductService): Promise<ExtensionToggleData | undefined> { </ins> if (!ENABLE_EXTENSION_TOGGLE_SETTINGS) { return undefined; }

Discussion:
On the latest Stable or Insiders, the Copilot setting button does not show up in the Settings editor when the Copilot extension is disabled or not installed. ! removed the dependency on the assignment/experimentation service incorrectly, and ended up making it so that the feature was only available in OSS aka from-source builds. The main branch fix is available in The candidate PR is available in . [x] Set up a candidate PR
Change:
} async log(options?: LogOptions): Promise<Commit[]> { <del> const maxEntries = options && typeof options.maxEntries === 'number' && options.maxEntries > 0 ? options.maxEntries : 32; const args = ['log', '-' + maxEntries, `--format:${COMMIT_FORMAT}`, '-z']; </del> <ins> const maxEntries = options?.maxEntries ?? 32; const args = ['log', `-n${maxEntries}`, `--format=${COMMIT_FORMAT}`, '-z', '--']; </ins> const result = await this.run(args); if (result.exitCode) {

Discussion:
VSCode Version: 1.42.0 OS Version: Darwin x64 19.2.0 Git version: 2.24.1 Steps to Reproduce: and Debug extension git api commands, specifically Results in This format option was introduced here, and seems to be the change causing the issues I'm experiencing:
Reopening as it is not merged yet.
Change:
// task is already running and isn't busy - nothing to do. return Promise.resolve(null); } <del> once(e => ((e.kind === TaskEventKind.Active) || (e.kind === TaskEventKind.DependsOnStarted)) && getTaskKey(e.__task) === taskKey, this.taskService.onDidStateChange)(() => { // Task is active, so everything seems to be fine, no need to prompt after 10 seconds // Use case being a slow running task should not be prompted even though it takes more than 10 seconds taskStarted = true; }); </del> const taskPromise = this.taskService.run(task); if (task.configurationProperties.isBackground) { return inactivePromise;

Discussion:
Clone and npm install. Hit F5, it never starts: <img width="484" alt="image" src=""I am on macOS.
This is probably because a prelaunch task is still running / your problem matchers haven't matched anything. Please make sure you have the right problem matchers installed, otherwise I suggest opening issues for them if they don't match correctly.
Would be great if debug could give me a hint.
Will keep open to track it, it's not a rare problem
We should also keep the terminal open if the task fails, currently it closes immediately which can be confusing
Would also be nice if we could cancel the pending launch attempt, e.g. by showing the debug toolbar immediately and disabling all buttons except the stop button. Right now when I get into this state I end up just reloading the whole window and incurring the pain of all extensions reactivating, which takes several seconds on my machine (git, TS etc)
After 10 seconds we'll show !
<!-- UNABLETOLOCATECOMMITMESSAGE repo --Issue marked as unreleased but unable to locate closing commit in repo history. If this was closed in a separate repo you can add the label directly, or comment .
<!-- UNABLETOLOCATECOMMITMESSAGE --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased
Change:
} } <ins> testItems.sort((a, b) => { const ai = a.testItem.test.item; const bi = b.testItem.test.item; return (ai.sortText || ai.label).localeCompare(bi.sortText || bi.label); }); </ins> const disposable = new DisposableStore(); <del> const testSubmenus = testItems.map(({ currentLabel, testItem }) => { </del> <ins> let testSubmenus: IAction[] = testItems.map(({ currentLabel, testItem }) => { </ins> const actions = this.getTestContextMenuActions(testItem.test, testItem.resultItem); disposable.add(actions); return new SubmenuAction(testItem.test.item.extId, stripIcons(currentLabel), actions.object); }); <ins> const overflow = testSubmenus.length - MAX_TESTS_IN_SUBMENU; if (overflow > 0) { testSubmenus = testSubmenus.slice(0, MAX_TESTS_IN_SUBMENU); testSubmenus.push(new Action( 'testing.gutter.overflow', localize('testOverflowItems', '{0} more tests...', overflow), undefined, undefined, () => this.pickAndRun(testItems), )); } </ins> return { object: Separator.join(allActions, testSubmenus), dispose: () => disposable.dispose() }; } <ins> private async pickAndRun(testItems: IMultiRunTest[]) { const doPick = <T extends IQuickPickItem>(items: T[], title: string) => new Promise<T | undefined>(resolve => { const pick = this.quickInputService.createQuickPick<T>(); pick.placeholder = title; pick.items = items; pick.onDidHide(() => { resolve(undefined); pick.dispose(); }); pick.onDidAccept(() => { resolve(pick.selectedItems[0]); pick.dispose(); }); pick.show(); }); const item = await doPick( testItems.map(({ currentLabel, testItem }) => ({ label: currentLabel, test: testItem.test, result: testItem.resultItem })), localize('selectTestToRun', 'Select a test to run'), ); if (!item) { return; } const actions = this.getTestContextMenuActions(item.test, item.result); try { (await doPick(actions.object, item.label))?.run(); } finally { actions.dispose(); } } </ins> } class RunSingleTestDecoration extends RunTestDecoration implements ITestDecoration {

Discussion:
the setup of microsoft/vscode-python click the Test gutter decoration Numbers appear in random order: <img width="485" alt="image" src=""Also, if you change to , you'll get a very slow opening menu. cc
Maybe we should have a "X more tests..." item that opens a quickpick after like 10. What do you think
yeah agreed that its not worth displaying more than 10 tests in a quick pick and I think the "X more tests..." will be a good way to tell users
Change:
import { SnippetController2 } from 'vs/editor/contrib/snippet/browser/snippetController2'; import { SuggestController } from 'vs/editor/contrib/suggest/browser/suggestController'; import { IChatService } from 'vs/workbench/contrib/chat/common/chatService'; <ins> import { setupCustomHover } from 'vs/base/browser/ui/hover/updatableHoverWidget'; import { getDefaultHoverDelegate } from 'vs/base/browser/ui/hover/hoverDelegateFactory'; </ins> export interface InlineChatWidgetViewState {

Discussion:
When inline chat changes more than one hunk it just shows "N changes". We should make that more explicit, e.g that it is todo-list-like and something that we need to accept explicit per change
I made the message more explicit, the info icon, and a hover message. This is how it now looks <img width="1136" alt="image" src=""
Change:
'default': SpeechTimeoutDefault, 'minimum': 0, 'tags': ['accessibility'] <del> } </del> <ins> }, [AccessibilityWorkbenchSettingId.AccessibleViewCloseOnKeyPress]: { markdownDescription: localize('terminal.integrated.accessibleView.closeOnKeyPress', "On keypress, close the accessible view and focus the element from which it was invoked."), type: 'boolean', default: true }, </ins> } };

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. --In previous versions, with the use of and the extension, I could easily select and copy terminal output content in the "Accessible View" via Vi mode. However, in the update, I noticed a change that "The Accessible View now closes when a user starts typing and focuses the prior element for a smoother work flow.". This change prevents me from using Vi mode to select content in the "Accessible View." Could you please consider providing an option that allows users to choose whether or not this feature is enabled? Alternatively, are there any other solutions to this issue?
Related to
can you take a look at this one? Thanks!
To verify, disable and make sure the view does not close on key press.
Fixed now! Thanks for the quick resolution!
Change:
import { Barrier } from 'vs/base/common/async'; import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; import { NewWorkerMessage, TerminateWorkerMessage } from 'vs/workbench/services/extensions/common/polyfillNestedWorker.protocol'; <ins> import { FileAccess } from 'vs/base/common/network'; </ins> export interface IWebWorkerExtensionHostInitData { readonly autoStart: boolean;

Discussion:
Issue Type: <bBug</bWhen attempting to launch a web-compatible extension with entry point under node VS Code host, following error is thrown:  When entry point is specified (in addition to ), the error is not thrown, but I need the extension to run in browser environment to access API (it uses .NET Blazor, which doesn't work with node's module). Here is the sample extension sources: VS Code version: Code 1.62.3 (, 2021-11-17T08:11:14.551Z) OS version: WindowsNT x64 10.0. Restricted Mode: No <details<summarySystem Info</summary </details<details<summaryExtensions (4)</summaryExtensionVersion ------ dotnetjs1.0.6 naninovel1.6.1 vscode-dotnet-runtime1.5.0 code-spell-checker2.0.13 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
And here is the published extension in question, in case you'd like to test it: It works fine in browser (via ), but throws the error in standalone VS Code.
VS Code uses as additional measure to protect from XSS. This is defined per document(-header). When running in web, e.g or , we isolate the web-worker running extensions in a separate iframe and that iframe doesn't inherit nor use trusted types. In contrast, when running in desktop we don't further isolate the web worker and therefore trusted types restrictions apply to extensions too
Thanks for the response! I've checked the linked article, but still not sure how to solve the issue. Should I add a trusted type policy before the extension is activated? If that's the case, what exactly should be inside the policy object for it to work in VS Code? It complains about evaluating a string as JavaScript code, so I guess it's about , but the extension doesn't use eval, nor does it use any of the DOM APIs, which are governed by the trusted types.
Yeah, I guess it's about , likely inside library or generated code. We don't allow that in our code and in the web_worker+desktop case that's a restriction that you are inheriting. I believe that's unwanted strictness from our side and something we should relax.
There are indeed 3 eval calls in the generated code, but they're not executed.

Just to make sure, I've replaced all of them with , but the same error is still thrown in VS Code.
Thanks for fixing this so quickly! Can you please clarify if there are still some limitations on using API in web extensions running in standalone? I can't connect to local websocket server () in standalone mode, while in browser it works fine.
Even locally we are strict and want (note the secure )
Ah, I see. Thought about it, but the fact that unsecure connection is working in browser and in standalone with .NET runtime gave me hope that you could allow it in this case as well. Thanks for the quick response!
Change:
const changeSettingResult = await this._dialogService.show(Severity.Warning, nls.localize('TaskQuickPick.changeSettingDetails', "Task detection for {0} tasks causes files in any workspace you open to be run as code. Enabling {0} task detection is a user setting and will apply to any workspace you open. nn Do you want to enable {0} task detection for all workspaces?", selectedType), <del> [noButton, yesButton] </del> <ins> [noButton, yesButton], { cancelId: 1 } </ins> ); if (changeSettingResult.choice === 1) { await this._configurationService.updateValue(`${selectedType}.autoDetect`, 'on');

Discussion:
Testing !
I also wonder why none of the buttons are focused by default?
I don't see a way via the to indicate which should be pre-selected
Try setting the option as well.
Change:
private readonly _onRecommendationChange: Emitter<RecommendationChangeNotification> = new Emitter<RecommendationChangeNotification>(); onRecommendationChange: Event<RecommendationChangeNotification> = this._onRecommendationChange.event; <ins> private sessionSeed: number; </ins> constructor( @IExtensionGalleryService private readonly _galleryService: IExtensionGalleryService,

Discussion:
Testing When I open the Extensions Viewlet and choose from the overflow menu, I get a new/different list every time I execute the command. From a user's perspective, I don't understand why I keep getting a new list. I expect that when I issue the command VS Code shows me all of the recommended extensions. Otherwise, I keep clicking the menu to see what else might be recommended.
The ones that change are the tool based recommendations and the one we infer from telemetry. There is no ranking mechanism for these, and so are shuffled to give all a chance to be shown. What we can do is do the shuffle only once for each VS Code session. Sound ok?
yes, for each session sounds good. i can imagine that if we have not yet done the more costly recommendations then the 2nd or 3rd time i invoke that more are to the list.
I didnt follow that. Are you saying that we should keep adding to the list every time is invoked? Why?
Change:
return $('tr', undefined, ...row.map(rowData => { if (typeof rowData === 'string') { <del> return $('td', undefined, rowData); </del> <ins> return $('td', undefined, $('p', undefined, rowData)); </ins> } const data = Array.isArray(rowData) ? rowData : [rowData]; return $('td', undefined, ...data.map(item => {

Discussion:
<img width="1072" alt="image" src=""<img width="838" alt="image" src=""