jiebi/CodeConvo huggingface dataset:
Change:
resolver = new ClipboardBasedVariableResolver(clipboardService, 0, 2); assertVariableResolve(resolver, 'CLIPBOARD', 'line1'); }); <ins> function assertVariableResolve3(resolver: VariableResolver, varName: string) { const snippet = new SnippetParser().parse(`$${varName}`); const variable = <Variable>snippet.children[0]; assert.equal(variable.resolve(resolver), true, `${varName} failed to resolve`); } test('Add time variables for snippets #41631', function () { const resolver = new TimeBasedVariableResolver; assertVariableResolve3(resolver, 'CURRENT_YEAR'); assertVariableResolve3(resolver, 'CURRENT_YEAR_SHORT'); assertVariableResolve3(resolver, 'CURRENT_MONTH'); assertVariableResolve3(resolver, 'CURRENT_DATE'); assertVariableResolve3(resolver, 'CURRENT_HOUR'); assertVariableResolve3(resolver, 'CURRENT_MINUTE'); assertVariableResolve3(resolver, 'CURRENT_SECOND'); }); </ins> });

Discussion:
Edit: Sorry if this is a terrible issue... The current list of variables available when writing a snippet can be found . Existing variables expose great contextual information - such as current file, directory, line number, word, etc. Development happens so fast that information can become outdated, so knowing when some custom snippets were inserted could be useful. For example, when creating files or adding comments. My current use case is a snippet that inserts copyright headers. The key binding inserts the header: It would help to include the date: and could also apply to updates or comments: Doing so could mean a simple variable like , but that may not work for non-US users who's date format is different i/e not month/day/year. Perhaps exposing the variables separately such as , etc or localization can help? I'd like to know if there is any interest in this. I know an extension could do this but it seems like overkill, but that could depend on potential use cases. Thanks for any feedback.
Hm, this is dupe of many requests we have gotten around this but made a valid point. Adding variables for year, month, day and hour, minute, second makes sense. That will allow anyone to compose it's own date. So, yeah feel free to drop a PR
Good to hear. Thanks for the PR!
Change:
this.dropdownButton.style(styles); // Separator <ins> const border = styles.buttonBorder ? styles.buttonBorder.toString() : ''; this.separatorContainer.style.borderTopWidth = border ? '1px' : ''; this.separatorContainer.style.borderTopStyle = border ? 'solid' : ''; this.separatorContainer.style.borderTopColor = border; this.separatorContainer.style.borderBottomWidth = border ? '1px' : ''; this.separatorContainer.style.borderBottomStyle = border ? 'solid' : ''; this.separatorContainer.style.borderBottomColor = border; </ins> this.separatorContainer.style.backgroundColor = styles.buttonBackground?.toString() ?? ''; this.separator.style.backgroundColor = styles.buttonSeparator?.toString() ?? ''; }

Discussion:
You can see in the image that the split part doesn't look right. FYI my theme is ! /cc
//cc
I think this might be another style issue with the button border since the separator container use the full height: <img width="430" alt="CleanShot 2022-07-20 at 10 56 10 src="https://user-"If you don't set a border it looks normal: <img width="237" alt="CleanShot 2022-07-20 at 10 54 13 src="https://user-"
thanks for tracking this down. I will try to squeeze a fix in this week.
Change:
import { WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification } from 'vs/base/common/actions'; import { IThemeService, ThemeColor } from 'vs/platform/theme/common/themeService'; import { isThemeColor } from 'vs/editor/common/editorCommon'; <del> import { addDisposableListener, EventType, hide, show, append } from 'vs/base/browser/dom'; </del> <ins> import { addDisposableListener, EventType, hide, show, append, EventHelper } from 'vs/base/browser/dom'; </ins> import { INotificationService } from 'vs/platform/notification/common/notification'; import { assertIsDefined } from 'vs/base/common/types'; import { Command } from 'vs/editor/common/languages';

Discussion:
Issue Type: <bBug</b<kbdTab</kbdto move focus to status bar. right-arrow to move focus to Settings Profiles item. spacebar to click the item (instead of Enter). :bug: quickpick opens pre-seeded with a single space character, causing the placeholder text not to appear. VS Code version: Code - Insiders 1.69.0-insider (, 2022-07-01T05:17:04.343Z) OS version: Windows_NT x64 10.0. Restricted Mode: No <!-- generated by issue reporter --
/assign
This seems to be coming from status bar as the status bar triggers the command.
<!-- 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!
/verified
Change:
shouldForwardArgs: true, }, toolbarOptions: { primaryGroup: g => g.startsWith('navigation') }, <ins> actionViewItemProvider: action => createActionViewItem(_instantiationService, action), </ins> })); }

Discussion:
Type: <bBug</bAn extension that contributes a submenu with a valid icon to is rendered without the icon (screenshot made on mouse hover, without hovering it's not even visible): ! For comparison, the same submenu icon shows fine as a contribution to : ! To reproduce this, I created an empty extension with a simple set of menu contributions. [1] [2] VS Code version: Code - Insiders 1.86.0-insider (, 2024-01-30T03:56:13.017Z) OS version: WindowsNT x64 10.0. Modes: Remote OS version: Linux x64 4.18.0-372.19.1.el86.x8664 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Can you look into why this happens?
I will give it a try.
Since I'm not familiar with either TypeScript or the vscode structure, I don't have a fix, only some random findings. Inspecting the 2 HTML elements (the submenu which does have an icon and the which does not): the working one has an element with ; the broken one has an element with (note the instead of ); For both of these, we eventually construct a , but the call trace for getting there is a bit different: rendering (working fine) in created with an that calls ; calls creates an instance of is set to the expected value based on the object before calling the super () constructor: (not working fine) is created constructor calls the constructor of the super () constructor calls the constructor of the super () the constructor can set a classname for the "More" codicon , but doesn't know what to do for our submenu: so we end up with an untouched class name ("submenu") that was set at the beginning: The difference between the two is that the first one creates an instance of (which extends ), while the second creates directly a . Now, given the separation between and , I'm not sure whether we should just handle the classes for the submenu along the calls in or not. But once we get to the class in , we no longer hold a reference to the that contains the we are interested in.

What does work and is probably not how we should handle this is setting the class name from the start in Like I said, I'm a bit out of my depth here, I'm not familiar with the design and how this should be handled, I'm just writing this down in case it helps.
Thank you, that is a very detailed analysis! Will look into it
Change:
scmValidation: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.scmValidation.d.ts', tabs: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.tabs.d.ts', taskPresentationGroup: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.taskPresentationGroup.d.ts', <ins> telemetry: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.telemetry.d.ts', </ins> terminalDataWriteEvent: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDataWriteEvent.d.ts', terminalDimensions: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDimensions.d.ts', terminalDisablePersistence: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalDisablePersistence.d.ts',

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:
import { fetching } from './node/fetch'; import { ExtensionHost, GitHubTarget, getFlows } from './flows'; import { NETWORK_ERROR, USER_CANCELLATION_ERROR } from './common/errors'; <ins> import { Config } from './config'; import { base64Encode } from './node/buffer'; </ins> // This is the error message that we throw if the login was cancelled for any reason. Extensions // calling `getSession` can handle this error to know that the user cancelled the login.

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Currently signing out of your GitHub account only removes the token from the secret store but the token continues to be valid, which means that if it was leaked the attacker can continue to make use of it. To mitigate this, VS Code should revoke the token on sign out, see this API:
I wish this API didn't require the client secret...
Change:
} const activeElement = window.document.activeElement; if (activeElement?.tagName === 'INPUT' || activeElement?.tagName === 'TEXTAREA') { <del> e.preventDefault(); // We will handle selection in editor code. </del> <ins> // The input element will handle this. </ins> return; }

Discussion:
Type: <bBug</bI'm using a custom widget built using AnyWidget. It has a text input area. In the latest Code Insiders, I can no longer type text in the input area. The text field is selected, but no input appears. Extension version: 2024.2.0 VS Code version: Code - Insiders 1.88.0-insider (Universal) (, 2024-03-29T22:24:49.191Z) OS version: Darwin arm64 23.4.0 Modes: <details<summarySystem Info</summary </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Can you confirm this works with a regular input element, E.g. run the following code and verify this works Now try typing into the textbox.
That reproduces the issue, i.e. typing in that field produces no text.
Change:
existingCell = existingRawCell; } } <ins> existingCell?.clearAllMatches(); </ins> const cell = existingCell ?? new CellMatch(this, match.cell, match.index); cell.addContentMatches(contentMatchesToTextSearchMatches(match.contentMatches, match.cell)); cell.addWebviewMatches(webviewMatchesToTextSearchMatches(match.webviewMatches));

Discussion:
Testing for with regex matching enabled a notebook, start editing a markdown cell typing more letters bug More search results are to the list instead of updating the existing result !
Change:
import { Connection, TextDocuments, InitializeParams, InitializeResult, NotificationType, RequestType, <del> DocumentRangeFormattingRequest, Disposable, ServerCapabilities, TextDocumentSyncKind, TextEdit, DocumentFormattingRequest, TextDocumentIdentifier, FormattingOptions, Diagnostic </del> <ins> DocumentRangeFormattingRequest, Disposable, ServerCapabilities, TextDocumentSyncKind, TextEdit, DocumentFormattingRequest, TextDocumentIdentifier, FormattingOptions, Diagnostic, CodeAction, CodeActionKind </ins> } from 'vscode-languageserver'; import { runSafe, runSafeAsync } from './utils/runner';

Discussion:
Testing Should be exposed using a code action (specifically a source action) instead of as a setting? Some advantages: We can reuse the existing setting instead of adding a new one Sorting will play nicer with other source actions since users can configure the order in which the actions run Users can trigger source actions through the context menu or with keybindings
Hey that's a good idea! I'll discuss it with the team. What do you think ?
Yes, makes sense!
Change:
readonly _serviceBrand: undefined; /** <del> * An event that fires after after no window has vetoed the shutdown sequence. At * this point listeners are ensured that the application will quit without veto. </del> <ins> * An event for when the application will shutdown </ins> */ <del> readonly onWillShutdown: Event<ShutdownEvent>; } export interface ShutdownEvent { /** * Allows to join the shutdown. The promise can be a long running operation but it * will block the application from closing. */ join(promise: Promise<void>): void; </del> <ins> readonly onWillShutdown: Event<void>; </ins> } export class SharedProcessLifecycleService extends Disposable implements ISharedProcessLifecycleService { declare readonly _serviceBrand: undefined; <del> private pendingWillShutdownPromise: Promise<void> | undefined = undefined; private readonly _onWillShutdown = this._register(new Emitter<ShutdownEvent>()); </del> <ins> private readonly _onWillShutdown = this._register(new Emitter<void>()); </ins> readonly onWillShutdown = this._onWillShutdown.event; constructor(

Discussion:
This here: Is strange to me because while this call is , it will not prolong the shutdown on the main process which is sync: Since the user of this event does not seem to use , I suggest to make the not support promises.
Change:
if (!this.mapRootToExpression.has(null) || !objects.equals(this.mapRootToExpression.get(null), globalExcludes)) { changed = true; <del> this.mapRootToExcludes.set(null, parse(globalExcludes, { trimForExclusions: true })); </del> <ins> this.mapRootToExcludes.set(null, parse(globalExcludes)); </ins> this.mapRootToExpression.set(null, objects.clone(globalExcludes)); }

Discussion:
Steps to Reproduce: a workspace with one folder that contains another folder "qunit" with some files 1 Clear Editor History some files from the qunit folder to add them to quick open history settings and define a files.exclude like this: =the qunit folder should now hide from the explorer =bring up quick open and notice the file from qunit still showing up This is unexpected, I have code that listens to changes to the pattern and remove entries that no longer match. When I debug this I end up in this location right before I enter here: The pattern does not match, but I verified that the setting is the one as defined. It gets created right here: Is there something wrong with parsing maybe? I have lost the ability to understand or even debug our glob implementation. Assigning to you in the hope that you have better ways of doing so. I think what we need is a way to log exactly how the matching happens within glob. Today this method is so heavily optimized and complex that I always loose myself in it.
Should have documented this: trimForExclusions is an optimization that only works for exclusions in a tree traversal. It simplifies the pattern to only match the folder 'qunit', but not the files in it. In a tree traversal that is enough and a much faster check to do. Opened a PR to clarify.
thanks
Change:
throw new Error('Semantic similarity provider timed out'); })); <del> const result = await raceCancellablePromises(cancellablePromises); return result; </del> <ins> try { const result = await raceCancellablePromises(cancellablePromises); return result; } finally { stopwatch.stop(); this.logService.trace(`[SemanticSimilarityService]: getSimilarityScore took ${stopwatch.elapsed()}ms`); } </ins> } }

Discussion:
I see the second entry being selected shortly after the recent results appear: ! My settings:
I did extension bisect and the issue is caused by copilot chat extension. Here is the profile you can use to repro this bug -
Change:
private navbar: NavBar; private content: HTMLElement; private recommendation: HTMLElement; <del> private recommendationText: any; </del> <ins> private recommendationText: HTMLElement; </ins> private ignoreActionbar: ActionBar; private header: HTMLElement;

Discussion:
Testing In a zoomed in view <img width="1053" alt="screen shot 2018-06-26 at 11 35 55 am" src="https://user-"
The Ignore button is missing top and bottom padding of 1 px, which you can see on the button <img width="904" alt="screen shot 2018-06-26 at 11 39 29 am" src="https://user-"
Change:
await repository.add(uris); } <ins> @command('git.stageAllMerge', { repository: true }) async stageAllMerge(repository: Repository): Promise<void> { const resources = repository.mergeGroup.resourceStates.filter(s => s instanceof Resource) as Resource[]; const { merge, unresolved, deletionConflicts } = await categorizeResourceByResolution(resources); try { for (const deletionConflict of deletionConflicts) { await this._stageDeletionConflict(repository, deletionConflict.resourceUri); } } catch (err) { if (/Cancelled/.test(err.message)) { return; } throw err; } if (unresolved.length > 0) { const message = unresolved.length > 1 ? localize('confirm stage files with merge conflicts', "Are you sure you want to stage {0} files with merge conflicts?", merge.length) : localize('confirm stage file with merge conflicts', "Are you sure you want to stage {0} with merge conflicts?", path.basename(merge[0].resourceUri.fsPath)); const yes = localize('yes', "Yes"); const pick = await window.showWarningMessage(message, { modal: true }, yes); if (pick !== yes) { return; } } const uris = resources.map(r => r.resourceUri); if (uris.length > 0) { await repository.add(uris); } } </ins> @command('git.stageChange') async stageChange(uri: Uri, changes: LineChange[], index: number): Promise<void> { const textEditor = window.visibleTextEditors.filter(e => e.document.uri.toString() === uri.toString())[0];

Discussion:
Issue Type: <bBug</bDuring a rebase (not sure if that's the only scenario), my SOURCE CONTROL tab display three sections, MERGE CHANGES, STAGED CHANGES and CHANGES. If I click the + button on the CHANGES section, in order to stage all items below CHANGES, VS Code also adds everything on MERGE CHANGES. VS Code version: Code - Insiders 1.45.0-insider (, 2020-04-29T05:33:59.143Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </details<details<summaryExtensions (19)</summaryExtensionVersion ------ markdown-mermaid1.5.0 better-toml0.3.2 vscode-eslint2.1.5 gitlens10.2.1 plantuml2.13.8 svg1.1.8 vscode-peacock3.7.0 chat0.33.0 rust-analyzer0.2.151 vscode-todo-parser1.9.1 remote-wsl0.44.2 vsliveshare1.0.2104 vsliveshare-audio0.1.85 vsliveshare-pack0.3.4 vscode-xml0.11.0 vscode-yaml0.7.2 crates0.4.9 vscode-hexdump1.7.2 markdown-all-in-one2.8.0 </details<!-- generated by issue reporter --
Hello I would like to work on this issue if no one else is. Regards.
hey could you please review the pr that I have opened and also could you please suggest any changes if required.
Hi I'm also working on this issue. You can check my PR
I have gone through your PR also left a comment.
Change:
tabSize?: number | string; /** <ins> * The number of spaces to insert when {@link TextEditorOptions.insertSpaces insertSpaces} is true. * * When getting a text editor's options, this property will always be a number (resolved). * When setting a text editor's options, this property is optional and it can be a number or `"tabSize"`. */ indentSize?: number | string; /** </ins> * When pressing Tab insert {@link TextEditorOptions.tabSize n} spaces. * When getting a text editor's options, this property will always be a boolean (resolved). * When setting a text editor's options, this property is optional and it can be a boolean or `"auto"`.

Discussion:
This API adds as a property to
Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.
To verify, you would need to write an extension which gets or sets the option on the current active editor. Here is the description: (it has an effect only when and defines the number of spaces that make up an indent)
Setting this is not working for me. I run this code in a command and nothing changes. But it works as a getter <img width="84" alt="image" src=""
This works for me: I the following code to the TS built-in extension: I opened a .js file which was configured with insert spaces: true (it said Spaces: 4) after 2 seconds it changes to: <img width="189" alt="image" src=""Note that indentSize can't be set if insertSpaces:false, it only makes sense when insertSpaces:true
aside from turning , to get this working in a file that already uses tabs, I had to run in the file first
Change:
import { Barrier, CancelablePromise, createCancelablePromise } from 'vs/base/common/async'; import { CancellationToken } from 'vs/base/common/cancellation'; import { CancellationError, getErrorMessage } from 'vs/base/common/errors'; <del> import { Emitter } from 'vs/base/common/event'; </del> <ins> import { Emitter, Event } from 'vs/base/common/event'; </ins> import { Disposable, toDisposable } from 'vs/base/common/lifecycle'; import { isWeb } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri';

Discussion:
VS Code Version: stable and from sources When launching the server and installing extensions using that have a common dependency, one of the extensions will fail activating, prompting to reload VS Code. For example installing, and contains which depends on also depends on installation task finishes first and then trying to activate fails as for installation which is part of installation task Steps to Reproduce: this branch in gitpod or codespaces will fail activating and a notification shows prompting to reload vscode <img width="448" alt="error_iamge" src="https://user-"cc
would you accept a PR fixing this? I took a look but it doesn't look something trivial to fix properly, I but I don't think is a good fix
PR would be always welcome. Agreed it is not trivial. Let's see if there is a simple fix that fixes this and won't cause any regressions.
Created a PR with a possible fix
ping, by any chance for July
I am sorry that I am on vacation so cannot be looked in July.
I was following this other , but it was marked as a duplicate and was therefore closed. This isse seems to be closed as well, although the issue persists. Specifically, it seems that VS Code Dev Containers installs extensions in alphabetical order, so that if an extension that comes later in the order is a pre-requisite for another that is earlier, then the installations will not behave as expected. Example, is a pre-requisite for , but comes later in alphabetical order. Thus, requires a VS Code Session restart after building the Dev Container. Is this issue fixed in VS Code Insiders, but not released yet?
The issue you reported is using the build 1.71. and this fix was pushed in 1.72.. So please update your VS Code and try.