jiebi/CodeConvo huggingface dataset:
Change:
import { FindReplaceState, FindReplaceStateChangedEvent } from 'vs/editor/contrib/find/findState'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; <del> import { contrastBorder, editorFindMatch, editorFindMatchBorder, editorFindMatchHighlight, editorFindMatchHighlightBorder, editorFindRangeHighlight, editorFindRangeHighlightBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetResizeBorder, errorForeground, inputActiveOptionBorder, inputActiveOptionBackground, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground, focusBorder } from 'vs/platform/theme/common/colorRegistry'; </del> <ins> import { contrastBorder, editorFindMatch, editorFindMatchBorder, editorFindMatchHighlight, editorFindMatchHighlightBorder, editorFindRangeHighlight, editorFindRangeHighlightBorder, editorWidgetBackground, editorWidgetBorder, editorWidgetResizeBorder, errorForeground, inputActiveOptionBorder, inputActiveOptionBackground, inputActiveOptionForeground, inputBackground, inputBorder, inputForeground, inputValidationErrorBackground, inputValidationErrorBorder, inputValidationErrorForeground, inputValidationInfoBackground, inputValidationInfoBorder, inputValidationInfoForeground, inputValidationWarningBackground, inputValidationWarningBorder, inputValidationWarningForeground, widgetShadow, editorWidgetForeground, focusBorder, toolbarHoverBackground } from 'vs/platform/theme/common/colorRegistry'; </ins> import { IColorTheme, IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { ContextScopedFindInput, ContextScopedReplaceInput } from 'vs/platform/browser/contextScopedHistoryWidget'; import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';

Discussion:
! //cc
Works great in most cases! Maybe this button needs manual tweaking though to align with the one we have in search view: ! !
Removed the border radius for the expanding chevron: <img width="139" alt="CleanShot 2021-09-13 at 15 40 09 src="https://user-"
Change:
} } <ins> export class ContextKeyGlobExpr implements ContextKeyExpr { constructor(private key: string, private value: any) { } public getType(): ContextKeyExprType { return ContextKeyExprType.Glob; } public cmp(other: ContextKeyGlobExpr): number { if (this.key < other.key) { return -1; } if (this.key > other.key) { return 1; } if (this.value < other.value) { return -1; } if (this.value > other.value) { return 1; } return 0; } public equals(other: ContextKeyExpr): boolean { if (other instanceof ContextKeyGlobExpr) { return (this.key === other.key && this.value === other.value); } return false; } public evaluate(context: IContext): boolean { return match(this.value, context.getValue(this.key)); } public normalize(): ContextKeyExpr { return this; } public serialize(): string { return this.key + ' =~ '' + this.value + '''; } public keys(): string[] { return [this.key]; } } </ins> export class ContextKeyAndExpr implements ContextKeyExpr { public readonly expr: ContextKeyExpr[];

Discussion:
VSCode Version: 1.12.0 OS Version: MacOS Sierra 10.12.4 In , we'd like to be able to provide context menus for all gradle files. The current clause is limited to language types () or a single file name (). It would be helpful if there was support for glob pattern matching, as mentioned in
Hi, Any update on this?
I will push an additional change that expands this to support normal regular expressions instead of just glob-patterns. We figured that's more powerful and closer to ST
Will this be usable in matching any when clause value? Can you give an example?
You write , so will execute this . A sample from my dummy extensions (matches filenames ending in )
This is AWESOME! Should reduce the number of duplicate menu items I need to define
Slight update on this: The value must be enclosed in slashes, so . I have updated above sample
FYI: I tried to apply this feature to the "loaded script view" by following the entry in the release notes: ! But without much success. After looking into the test item and the corresponding feature item, I noticed that the latest syntax uses regular regexp syntax. I've taken the liberty to change the release notes to this: ! I did not attempt to clarify why actually matches "Docker files".
Hmm, I am writing a simple extension, and would like to copy any resourceName. It works without any when clause, but the menu item also shows up, when r-clicking inside the empty space. I would like to prevent it. Is there something like this ?
Ok I found . And its actually what I was looking for. But I did not found it in the docs, but code base.
Change:
this.add(new CustomEditorInfo({ id: webviewEditorContribution.viewType, displayName: webviewEditorContribution.displayName, <ins> providerDisplayName: extension.description.isBuiltin ? builtinProviderDisplayName : extension.description.displayName || extension.description.identifier.value, </ins> selector: webviewEditorContribution.selector || [], priority: getPriorityFromContribution(webviewEditorContribution, extension.description), }));

Discussion:
re This uses VS Code as hard-coded name, not the product name This reads a little cumbersome, why not "Text Editor" and as description (built-in) <img width="361" alt="Screenshot 2020-04-03 at 13 46 27" src="https://user-"
Fixed by
Change:
*  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ <del> import { ExtensionContext } from 'vscode'; </del> <ins> import { ExtensionContext, Uri } from 'vscode'; </ins> import { LanguageClientOptions } from 'vscode-languageclient'; import { startClient, LanguageClientConstructor } from '../jsonClient'; import { LanguageClient } from 'vscode-languageclient/browser';

Discussion:
The usage of as seen here only works because there is there is special code to return a url-string (instead of a path, see ). For loading extension relative resources the and should be used. That is the new, web-ready replacement API
fyi
tried to adopt this. When will be available. I can't find it in .
Opened for ESLint
It's in the API since 4 months:
Change:
}); }); <ins> test('file pattern trimming', () => { const content = 'content'; assertEqualQueries( queryBuilder.text( PATTERN_INFO, undefined, { filePattern: ` ${content} ` } ), <ISearchQuery>{ contentPattern: PATTERN_INFO, filePattern: content, type: QueryType.Text }); }); </ins> test('exclude ./ syntax', () => { assertEqualQueries( queryBuilder.text(

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --trim file name search <!-- Describe the feature you'd like. --Suppose you're looking for or . If you search them exactly, you'll get the file result. If you prepend and/or append whitepace, e.g. , you won't. It's common to accidentally include spaces when copy & pasting file names from, say, test reports. I'd love to fix this issue if you don't mind!
Assuming leading and trailing whitespace is never relevant to any filePattern in a search, I think the correct spot would be here: A PR would be great!
Change:
containerIcon: sourceControlViewIcon, openCommandActionDescriptor: { id: viewContainer.id, <del> mnemonicTitle: localize({ key: 'miViewSCM', comment: ['&& denotes a mnemonic'] }, "S&&CM"), </del> <ins> mnemonicTitle: localize({ key: 'miViewSCM', comment: ['&& denotes a mnemonic'] }, "Source &&Control"), </ins> keybindings: { primary: 0, win: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyG },

Discussion:
Within the UI in VS Code there are differing names for the SCM view depending on whereabouts you are in the UI. Under the "View Menu" there is an entry from "SCM" but everywhere else it is referred to as Source Control. (Hovering over the icon in the activity bar names it Source Control, the view container title says Source Control and in the command palette, the command is listed as "Source Control: Focus on Source Control View".) Then under settings there is a group "Features SCM" For consistency, it would be better to keep with a single (user facing) name that is used in all places.
I don't like using of abbreviations in the program GUI, especially if they are not as much popular and known. It took me a while to understand what is that SCM thing.
fixing this makes sense to me, though I might be missing some historical context.
Yeah the correct term is Source Control. SCM is just an internal name, should not be surfaced.
I've pushed a small PR that should rename this in all the places I could find.
Merged! thank you very much for the contribution!
Change:
private _getEditorOptions(location?: ITerminalLocationOptions): TerminalEditorLocation | undefined { if (location && typeof location === 'object' && 'viewColumn' in location) { <del> // When ACTIVE_GROUP is used, resolve it to an actual group to ensure the is created in // the active group even if it is locked if (location.viewColumn === ACTIVE_GROUP) { location.viewColumn = this._editorGroupsService.activeGroup.index; } </del> <ins> location.viewColumn = columnToEditorGroup(this._editorGroupsService, this._configurationService, location.viewColumn); </ins> return location; } return undefined;

Discussion:
I noticed terminals can accept : Note that this does not map 1 to 1 to , you have to: offset properly: convert properly: //cc
Steps: open 2 empty editor groups, focus the first group execute a command that triggers below code [1] terminal opens in first group not second
Moving to September. //cc
Change:
get delay() { // Delay implementation borrowed froms src/vs/workbench/browser/parts/statusbar/statusbarPart.ts <del> if (Date.now() - this.lastHoverHideTime < 200) { </del> <ins> if (Date.now() - this.lastHoverHideTime < 500) { </ins> return 0; // show instantly when a hover was recently shown }

Discussion:
Type: <bBug</b! VS Code version: Code - Insiders 1.76.0-insider (, 2023-02-16T05:23:44.671Z) OS version: Windows_NT x64 10.0. Modes: Sandboxed: Yes /assign <!-- generated by issue reporter --
Thanks! This is also a regression because we are only supposed to show it on files with decorations (such as source control) or overflowing text (such as ).
I don't get this custom hover ever. Can you please add steps to verify?
These custom hovers have been removed from product due to being too buggy at the moment. I will just mark this as verified as this feature isn't ready for testing yet.
Change:
if (this._isDisposed) { return; } <del> const trusted = await this._trust(); if (!trusted) { this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); </del> <ins> const activeWorkspaceRootUri = this._historyService.getLastActiveWorkspaceRoot(Schemas.file); if (activeWorkspaceRootUri) { const trusted = await this._trust(); if (!trusted) { this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminal', "Cannot launch a terminal process in an untrusted workspace") }); } } else if (this._cwd && this._userHome && this._cwd !== this._userHome) { // something strange is going on if cwd is not userHome in an empty workspace this._onProcessExit({ message: nls.localize('workspaceNotTrustedCreateTerminalCwd', "Cannot launch a terminal process in an untrusted workspace with cwd {0} and userHome {1}", this._cwd, this._userHome) }); </ins> } // Re-evaluate dimensions if the container has been set since the xterm instance was created

Discussion:
It's an edge case but worthwhile considering 1) Ensure that all new windows are in restricted mode by default 2) Open a new empty window (no open files at all, no open folder) 3) Use <kbdCmd</kbd+<kbd`</kbd-prompt for trusting the workspace, but there is nothing there to be trusted
In this case, it definitely gets in the way that we ask about trust, and also doesn't make too much to limit access to the terminal. However, what considerations should be in place for when someone decides to bring in untrusted content into the workspace after the terminal is opened? Does this matter for empty workspaces
it's only useful for the terminal if the folder is of a potentially foreign origin. I could special case this since it's going to open in the home directory anyway, but should it even be possible to have an empty window in restricted mode? Might need to handle this special case in multiple places if it's not handled by the trust request service?
we have settings to configure the empty window experience... this allows empty windows to bring in untrusted content easily without prompting.
Ok, let's allow opening the terminal if the active workspace root is undefined then as it's safe in that case.
Change:
vscode-languageserver-types "^3.17.3" vscode-uri "^3.0.7" <del> vscode-html-languageservice@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-5.0.5.tgz#3c7c7fdcea8f93914dfd8762a40dbfbe770e2243" integrity sha512-7788ZT+I7/UhFoI4+bzaAiGGZEW7X39kTeuytLtw6jJA6W7ez85bWKYoFDcwrPNmywj3n/IkU9Op9asaje44jg== </del> <ins> vscode-html-languageservice@^5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-5.0.6.tgz#e7a7f78e9f98d0f5341c5518dd9305e3cc438bb6" integrity sha512-gCixNg6fjPO7+kwSMBAVXcwDRHdjz1WOyNfI0n5Wx0J7dfHG8ggb3zD1FI8E2daTZrwS1cooOiSoc1Xxph4qRQ== </ins> dependencies: <del> "@vscode/l10n" "^0.0.13" </del> <ins> "@vscode/l10n" "^0.0.14" </ins> vscode-languageserver-textdocument "^1.0.8" vscode-languageserver-types "^3.17.3" vscode-uri "^3.0.7"

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 <!-- 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.77.3 () OS Version: 10.0. Steps to Reproduce: the file the file containing a with a attribute and attempt to use URL autocompletion (as with the attribute of elements) to set its value to . The same issue occurs with a element (and there may be others I'm unaware of).
I don't see any smart suggestions, only word-based, when I type in here , is that how it's supposed to work?
Change:
import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; import { IExplorerService } from 'vs/workbench/contrib/files/browser/files'; <ins> import { IProductService } from 'vs/platform/product/common/productService'; </ins> /** * An implementation of editor for file system resources.

Discussion:
Issue Type: <bBug</bWhat's "it" here? I assume it means VS Code. Should probably be explicit. VS Code version: Code 1.55.2 (, 2021-04-13T09:36:32.643Z) OS version: Darwin x64 19.6.0 <details<summarySystem Info</summary </details<details<summaryExtensions (6)</summaryExtensionVersion ------ vscode-sqlite0.12.0 rainbow-csv1.8.1 dotenv1.0.1 vscode-js-profile-flame0.0.15 material-icon-theme4.6.0 rewrap1.14.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
Change:
} } <del> export class GoToNextConflict extends MergeEditorAction { </del> <ins> export class GoToNextUnhandledConflict extends MergeEditorAction { </ins> constructor() { super({ <del> id: 'merge.goToNextConflict', </del> <ins> id: 'merge.goToNextUnhandledConflict', </ins> category: mergeEditorCategory, title: { <del> value: localize('merge.goToNextConflict', 'Go to Next Conflict'), original: 'Go to Next Conflict', </del> <ins> value: localize('merge.goToNextUnhandledConflict', 'Go to Next Unhandled Conflict'), original: 'Go to Next Unhandled Conflict', </ins> }, icon: Codicon.arrowDown, menu: [

Discussion:
Testing Clone Use the command and select the folder Select in the quick pick It looks like the file has 4 conflict Pressing "Go to Next Conflict" highlights the first conflict Pressing "Go to Next Conflict" again does not do anything Also interesting that the editor minimap only has one conflict marker
I also saw this. It seemed to happen when both inputs make the same change.
On , once it moves past the first conflict and try to go back to it, it doesn't go back to it properly. !
This is weird, I cannot reproduce this. Also, for , I only have 2 conflicts. And this checkbox is also very weird: !
I'm on commit , not the latest commit. Does that make a difference?
If you can reproduce on the latest commit, can you try to give me a call?
yup, things look good on the latest on master for diff-merge-datasets for demo1. :) One thing I noticed, though, is that, if you're focused on the result and try to skip to next conflict, it's hard to tell by looking at the two inputs where the conflict is (seems that the two inputs aren't telling me anything in this screenshot): ! When I make the input editors a little bigger, then it starts making a little more sense. ! Not too big of a deal though, just wanted to bring your attention to it!
Change:
this._oldTelemetryEnablement = this.getTelemetryConfiguration(); this._level = level; const telemetryDetails = this.getTelemetryDetails(); // Loop through all loggers and update their level this._telemetryLoggers.forEach(logger => { logger.updateTelemetryEnablements(telemetryDetails.isUsageEnabled, telemetryDetails.isErrorsEnabled);

Discussion:
Testing Given this code: I was expecting my event handlers not to fire since the logger is disposed, but they still fire.
This still repros for me <img width="1210" alt="image" src="https://user-"
Change:
}, description: nls.localize('scope.markdownEnumDescriptions', 'Descriptions for enum values in the markdown format.') }, <ins> enumItemLabels: { type: 'array', items: { type: 'string' }, markdownDescription: nls.localize('scope.enumItemLabels', 'Labels for enum values to be displayed in the Settings editor. When specified, the {0} values still show after the labels, but less prominently.', '`enum`') }, </ins> markdownDescription: { type: 'string', description: nls.localize('scope.markdownDescription', 'The description in the markdown format.')

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. --You can localise many aspects of , including config, but you cannot localise the options in an enum dropdown - you can but your extension will get the translated value. I think these should be translated, but the value the extension gets should be a fixed value no matter what langauge is enabled in the GUI. Currently I now have to keep the dropdown values in english and add enumDescriptions for each label explaining what those mean in other languages. Can you add an enumLabels array to the enum configuration and use that for labels within the dropdown and use the enum array just for the values that a develop gets when accessing settings? Currently the enum array is used as both label and value.
You can use to explain about your enums and also translated. See how we use it at other places:
I already use this, but it is not a very good solution. It should be possible to localise what users see in the dropdown. Why can everything else be localised but not the dropdowns? I wrote in my post that I already use enumDescriptions
I see, thanks for clarification. We already have to use internally for Settings editor. Can this be extended to json language server so that user can see the labels in the file and also in the settings editor?
Do you mean to also use the in the JSON editor? Can you make an example of what should be seen there? IMO the labels seen in code complete should always correspond to the text that is typed.
I see, makes sense and let's make it Settings Editor only feature and JSON shows the ids.
What is the current progress of this issue?
It turns out already exists, but we never exposed it to the user. See in the Settings editor for an example of a setting that uses it.
Change:
} } <del> export function getAccessibilityHelpText(): string { </del> <ins> function getAccessibilityHelpText(): string { </ins> return [ localize('notebook.overview', 'The notebook view is a collection of code and markdown cells. Code cells can be executed and will produce output directly below the cell.'), localize('notebook.cell.edit', 'The Edit Cell command{0} will focus on the cell input.', '<keybinding:notebook.cell.edit>'),

Discussion:
verification steps: get the latest pre-release for python extension run while focused in the REPL editor, press alt+F1 to open the a11y help view press escape to return focus to the editor
Change:
public registerCustomLinkHandler(regex: RegExp, handler: (uri: string) => void, matchIndex?: number, validationCallback?: XtermLinkMatcherValidationCallback): number { const options: ILinkMatcherOptions = { matchIndex, <del> tooltipCallback: (e: MouseEvent) => { if (this._terminalService && this._terminalService.configHelper.config.rendererType === 'dom') { const target = (e.target as HTMLElement); this._widgetManager.showMessage(target.offsetLeft, target.offsetTop, this._getLinkHoverString()); } else { this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()); } }, </del> <ins> tooltipCallback: this._tooltipCallback, </ins> leaveCallback: () => this._widgetManager.closeMessage(), willLinkActivate: (e: MouseEvent) => this._isLinkActivationModifierDown(e), priority: CUSTOM_LINK_PRIORITY

Discussion:
Example:
Do you mind if I take on this issue? I assume the request is to make and Ctrl-clickable such that the links open the correct versions of the files.
sounds good. The link registration is done here and it's based on regexs: We basically want the and parts to be matched, but ignored as part of the link.
I'm having a bit of trouble with getting the two git blob IDs and , which are necessary to get the correct versions of the files. I tried to write a multi-line regex for that captures the blob IDs in groups, along with the paths we want to link, but currently only runs the regex on a per line basis (by iterating through the buffer), not on the whole content of the terminal. So the regex didn't find any matches. I also tried to get the blob IDs by parsing the contents of the terminal manually, but doesn't seem to offer a public interface to retrieve the contents. I do see but I don't want to rely on an internal implementation to do something like this. How do you suggest I proceed? Should I submit a PR to to allow multi-line regex in ?
I'm having a bit of trouble with getting the two git blob IDs and , which are necessary to get the correct versions of the files. Oh I wouldn't go that far, just pointing both links to the current version of the file would be good enough start with.
Ah I see, that's a lot simpler to do. Will open a PR soon.