jiebi/CodeConvo huggingface dataset:
Change:
Sorry for asking questions in the issue tracker. Reading I originally assumed vscode was normalizing the drive letter casing. uses upper case drive letter. However, I noticed that variables like , , on my Windows are resolved to file paths with lower case drive name, e.g. . is not consistently applied from this part of the code but I am not sure if they are supposed to be handled elsewhere. Is there a documentation on what is normalized or not normalized, and if normalized, it will be upper case or lower case. (It's not clear to me what's the final conclusion of length discussions like ) And, for debugging requests, can we assume all requests that carry the absolute file paths use normalized file path?
Another fun finding is, normalizes the drive casing to lower-case As a result, our extension ends up normalizing a path to use upper case drive letter, converting it to which uses lower-case in fsPath, and at some point, translating fsPath to upper case, ...
I think the conclusion is that we should try to be consistent with URIs coming from vscode, but remember that we can't control the whole environment- e.g. the runtime may do something different than URIs that come from DAP. I don't know why would have a different drive letter case than . Seems wrong. Do you know anything about that
I think it's just an oversight that the drive letter isn't always normalized. I'm happy to make this change during the next debt week so that it has plenty of time in insiders for folks to notice if it breaks anything.

Discussion:
const filePath = this._context.getFilePath(); if (filePath) { <del> return filePath; </del> <ins> return normalizeDriveLetter(filePath); </ins> } throw new VariableError(variableKind, (localize('canNotResolveFile', "Variable {0} can not be resolved. Please open an editor.", match))); };

if (this._context.getWorkspaceFolderPathForFile) { const folderPath = this._context.getWorkspaceFolderPathForFile(); if (folderPath) { <del> return folderPath; </del> <ins> return normalizeDriveLetter(folderPath); </ins> } } throw new VariableError(variableKind, localize('canNotResolveFolderForFile', "Variable {0}: can not find workspace folder of '{1}'.", match, paths.basename(filePath)));

case 'workspaceRootFolderName': case 'workspaceFolderBasename': <del> return paths.basename(this.fsPath(getFolderUri(VariableKind.WorkspaceFolderBasename))); </del> <ins> return normalizeDriveLetter(paths.basename(this.fsPath(getFolderUri(VariableKind.WorkspaceFolderBasename)))); </ins> case 'userHome': { if (environment.userHome) {
Change:
<img width="667" alt="image" src="https://user-"The source is a notebook with a single cell:
This rendering is handled by core.
I think this might be 's area?

Discussion:
.katex-error { color: var(--vscode-editorError-foreground); } <ins> .katex-block { counter-reset: katexEqnNo mmlEqnNo; } </ins> `; // Put Everything into a template
Change:
Type: <bBug</bmenu the window Bug The widget ends up being incorrectly positioned: <img width="672" alt="Screen Shot 2022-07-21 at 1 24 17 PM" src="https://user-"VS Code version: Code - Insiders 1.70.0-insider (Universal) (, 2022-07-21T05:17:20.056Z) OS version: Darwin x64 21.5.0 Modes: <details<summarySystem Info</summary </details<!-- generated by issue reporter --

Discussion:
} const TEMPLATE_ID = 'codeActionWidget'; <del> const codeActionLineHeight = 27; </del> <ins> const codeActionLineHeight = 26; </ins> class CodeMenuRenderer implements IListRenderer<ICodeActionMenuItem, ICodeActionMenuTemplateData> { get templateId(): string { return TEMPLATE_ID; }

); renderDisposables.add(this.codeActionList.value.onDidChangeSelection(e => this._onListSelection(e))); <ins> renderDisposables.add(this._editor.onDidLayoutChange(e => this.hideCodeActionWidget())); </ins> // Populating the list widget and tracking enabled options. inputArray.forEach((item, index) => {

const maxWidth = Math.max(...arr); // 40 is the additional padding for the list widget (20 left, 20 right) <del> renderMenu.style.width = maxWidth + 40 + 'px'; </del> <ins> renderMenu.style.width = maxWidth + 52 + 'px'; </ins> this.codeActionList.value?.layout(height, maxWidth); // List selection

*--------------------------------------------------------------------------------------------*/ .codeActionMenuWidget { <del> padding: 10px 0px 10px 0px; </del> <ins> padding: 8px 0px 8px 0px; </ins> overflow: auto; font-size: 13px; border-radius: 5px;

/* flex-direction: column; flex: 0 1 auto; */ width: 100%; <del> border-style: solid; border-width: 1px; border-color: var(--vscode-editorSuggestWidget-border); background-color: var(--vscode-editorSuggestWidget-background); </del> <ins> border-width: 0px; border-color: none; background-color: var(--vscode-menu-background); color: var(--vscode-menu-foreground); </ins> } .codeActionMenuWidget .monaco-list:not(.element-focused):focus:before {

-ms-user-select: none; border: none !important; border-width: 0px !important; <del> color: var(red) !important; </del> } /* .codeActionMenuWidget .monaco-list:not(.element-focus) {

display: flex; -mox-box-sizing: border-box; box-sizing: border-box; <del> padding: 0px 20px 0px 20px; </del> <ins> padding: 0px 26px 0px 26px; </ins> background-repeat: no-repeat; background-position: 2px 2px; white-space: nowrap;

.codeActionMenuWidget .monaco-list .monaco-list-row:hover:not(.option-disabled), .codeActionMenuWidget .monaco-list .moncao-list-row.focused:not(.option-disabled) { <ins> color: var(--vscode-menu-selectionForeground) !important; </ins> background-color: var(--vscode-menu-selectionBackground) !important; }

-moz-user-select: none; -ms-user-select: none; user-select: none; <del> color: var(--vscode-list-inactiveSelectionBackground) !important; </del> <ins> color: var(--vscode-disabledForeground) !important; </ins> } .codeActionMenuWidget .monaco-list .separator {
Change:
That is, when I click down, it will shrink (88%), which will be more tactile (of course, adding will make it smoother!) https://user-
The effect is like this, I initiated a pr, can you review it for me? https://user-

Discussion:
mouseMarker.style.top = `${e.clientY - mouseIndicatorSize / 2}px`; mouseMarker.style.left = `${e.clientX - mouseIndicatorSize / 2}px`; mouseMarker.style.display = 'block'; <ins> mouseMarker.style.transform = `scale(${1})`; mouseMarker.style.transition = 'transform 0.1s'; </ins> const mouseMoveListener = onMouseMove.event(e => { mouseMarker.style.top = `${e.clientY - mouseIndicatorSize / 2}px`; mouseMarker.style.left = `${e.clientX - mouseIndicatorSize / 2}px`; <ins> mouseMarker.style.transform = `scale(${.8})`; </ins> }); Event.once(onMouseUp.event)(() => {
Change:
<!-- 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: vscode built using current branch OS Version: Ubuntu 20.04 LTS When selecting previous/next commands in a terminal with ctr+shift+up/down, if one of the boundaries is reached, the selection disappeared and the current position is moved to the bottom. Current behaviour: ! In the last stable release, the behaviour is: !

Discussion:
// Clear the current marker so successive focus/selection actions are performed from the // bottom of the buffer this._currentMarker = Boundary.Bottom; <ins> this._resetNavigationDecoration(); this._selectionStart = null; } private _resetNavigationDecoration() { </ins> this._navigationDecoration?.dispose(); this._navigationDecoration = undefined; <del> this._selectionStart = null; </del> } scrollToPreviousCommand(scrollPosition: ScrollPosition = ScrollPosition.Middle, retainSelection: boolean = false): void {

if (markerIndex < 0) { this._currentMarker = Boundary.Top; this._terminal.scrollToTop(); <del> this.clearMarker(); </del> <ins> this._resetNavigationDecoration(); </ins> return; }

if (markerIndex >= this._getCommandMarkers().length) { this._currentMarker = Boundary.Bottom; this._terminal.scrollToBottom(); <del> this.clearMarker(); </del> <ins> this._resetNavigationDecoration(); </ins> return; }
Change:
Type: <bBug</bOriginally from When executing a new task, the displayed name is incorrect. Potentially related to ? VS Code version: Code - Insiders 1.70.0-insider (, 2022-07-25T05:27:52.229Z) OS version: WindowsNT x64 10.0. Modes: <details<summarySystem Info</summary </details<details<summaryExtensions (5)</summaryExtensionVersion ------ tsl-problem-matcher0.6.2 vscode-eslint2.2.6 vscode-docker1.22.5-alpha remote-containers0.243.0 azure-account0.11.0 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
/cc and
yes looks like the same as
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for . See also our . Happy Coding!
The Docker extension is not using the task name change emitter, though. Previously for all our tasks, it was just displaying the task type, which was good enough.
are you sure this is the same as ? The more I look into it, the less it seems so. In the original bug, the user ran one task that executes as a --this one displays its task name correctly--and then runs another task that executes as a --and this one keeps the title from the .
what is it displaying if not the task type?
just a guess; could this be only a problem on reconnected terminals where we restore the title but not the fact that the title source was "API", so title sequences override it?
It was showing the name of the previous task, instead of the new one. Actual: ! Expected: !
I have the same problem. Here is a simple way to reproduce it: Create a file with the following content in a new folder: Then open the folder in vscode, and run task 1, then task 2. This is the output: It looks like this regression was caused by is called before the line , so it uses the old .
Thanks I verified this is fixed on the latest Insiders build.

Discussion:
// Print initialText if specified if (shell.initialText) { <ins> this._shellLaunchConfig.initialText = shell.initialText; </ins> await new Promise<void>(r => this._writeInitialText(xterm, r)); }
Change:
<!-- 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. --Today, the command only supports an describing the folder/workspace path to be opened. It would be interesting to allow adding the set of extensions to be used as well, or at least the profile, just like the CLI interface created in . Thank you
To verify: Create a profile Verify passing the profile name as an argument to the command from the extension and make sure the folder is opened in that profile. Eg:

Discussion:
gotoLineMode: options.gotoLineMode, noRecentEntry: options.noRecentEntry, waitMarkerFileURI: options.waitMarkerFileURI, <del> remoteAuthority: options.remoteAuthority || undefined </del> <ins> remoteAuthority: options.remoteAuthority || undefined, forceProfile: options.forceProfile, forceTempProfile: options.forceTempProfile, </ins> }); } }

readonly gotoLineMode?: boolean; readonly waitMarkerFileURI?: URI; <ins> readonly forceProfile?: string; readonly forceTempProfile?: boolean; </ins> } export interface IAddFoldersRequest {

forceReuseWindow?: boolean; noRecentEntry?: boolean; forceLocalWindow?: boolean; <ins> forceProfile?: string; forceTempProfile?: boolean; </ins> } CommandsRegistry.registerCommand({

forceNewWindow: arg?.forceNewWindow, forceReuseWindow: arg?.forceReuseWindow, noRecentEntry: arg?.noRecentEntry, <del> remoteAuthority: arg?.forceLocalWindow ? null : undefined </del> <ins> remoteAuthority: arg?.forceLocalWindow ? null : undefined, forceProfile: arg?.forceProfile, forceTempProfile: arg?.forceTempProfile, </ins> }; const uriToOpen: IWindowOpenable = (hasWorkspaceFileExtension(uri) || uri.scheme === Schemas.untitled) ? { workspaceUri: uri } : { folderUri: uri };
Change:
Note the shadow clipping on the left: <img width="256" alt="CleanShot 2022-07-25 at 09 57 06 src="https://user-"

Discussion:
*--------------------------------------------------------------------------------------------*/ import { CompareResult } from 'vs/base/common/arrays'; <ins> import { BugIndicatingError } from 'vs/base/common/errors'; </ins> import { autorun, derived } from 'vs/base/common/observable'; import { IModelDeltaDecoration, MinimapPosition, OverviewRulerLane } from 'vs/editor/common/model'; import { localize } from 'vs/nls';

import { LineRange } from 'vs/workbench/contrib/mergeEditor/browser/model/lineRange'; import { applyObservableDecorations, join } from 'vs/workbench/contrib/mergeEditor/browser/utils'; import { handledConflictMinimapOverViewRulerColor, unhandledConflictMinimapOverViewRulerColor } from 'vs/workbench/contrib/mergeEditor/browser/view/colors'; <ins> import { EditorGutter } from 'vs/workbench/contrib/mergeEditor/browser/view/editorGutter'; </ins> import { CodeEditorView } from './codeEditorView'; export class ResultCodeEditorView extends CodeEditorView {

this._register(applyObservableDecorations(this.editor, this.decorations)); <ins> this.htmlElements.gutterDiv.style.width = '5px'; this._register( new EditorGutter(this.editor, this.htmlElements.gutterDiv, { getIntersectingGutterItems: (range, reader) => [], createView: (item, target) => { throw new BugIndicatingError(); }, }) ); </ins> this._register(autorun('update remainingConflicts label', reader => { const model = this.model.read(reader);
Change:
Currently in merge conflict and in the SCM view we talk about and changes, but the new Merge Editor talks about and -- IMO we should align to the and terms.
The opener of the merge editor is in control of the labels. Thus, this can easily be changed in the git extension. Incoming and Current makes sense for conflicts when merging in a remote branch, but not when applying stashes (though in that case "Theirs" and "Mine" also doesn't make much sense).
I always just think of it as there are always changes (from a merge, stash, etc) that are being incorporated (incoming) into the current state.

Discussion:
type InputData = { uri: Uri; title?: string; detail?: string; description?: string }; const mergeUris = toMergeUris(uri); <del> const ours: InputData = { uri: mergeUris.ours, title: localize('Yours', 'Yours') }; const theirs: InputData = { uri: mergeUris.theirs, title: localize('Theirs', 'Theirs') }; </del> <ins> const current: InputData = { uri: mergeUris.ours, title: localize('Current', 'Current') }; const incoming: InputData = { uri: mergeUris.theirs, title: localize('Incoming', 'Incoming') }; </ins> try { const [head, rebaseOrMergeHead] = await Promise.all([

isRebasing ? repo.getCommit('REBASE_HEAD') : repo.getCommit('MERGE_HEAD') ]); // ours (current branch and commit) <del> ours.detail = head.refNames.map(s => s.replace(/^HEAD ->/, '')).join(', '); ours.description = '$(git-commit) ' + head.hash.substring(0, 7); </del> <ins> current.detail = head.refNames.map(s => s.replace(/^HEAD ->/, '')).join(', '); current.description = '$(git-commit) ' + head.hash.substring(0, 7); </ins> // theirs <del> theirs.detail = rebaseOrMergeHead.refNames.join(', '); theirs.description = '$(git-commit) ' + rebaseOrMergeHead.hash.substring(0, 7); </del> <ins> incoming.detail = rebaseOrMergeHead.refNames.join(', '); incoming.description = '$(git-commit) ' + rebaseOrMergeHead.hash.substring(0, 7); </ins> } catch (error) { // not so bad, can continue with just uris

const options = { base: mergeUris.base, <del> input1: isRebasing ? ours : theirs, input2: isRebasing ? theirs : ours, </del> <ins> input1: isRebasing ? current : incoming, input2: isRebasing ? incoming : current, </ins> output: uri };
Change:
Testing When find box is not visible and I just type but there are multiple results, then maybe allow me via keybindings (F3?) to go to next/prev result?
You mean using the type navigation feature? I think this would be too implicit. I don't know of any other native widget doing something like this.
I think the editor has a way to navigate in find results even without showing find. i think in that mode it only puts the search toggles up in a little overlay.
The editor opens up the widget once again, when pressing <kbdF3</kbd. Yeah we can do that.
I think the tree does the same, I had tried and it showed the input box, but it was empty though.
Yeah. Renamed this to remember the input across usages, which is what the editor does.

Discussion:
this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', "Type to filter") : localize('type to search', "Type to search")); } <ins> get value(): string { return this.findInput.inputBox.value; } set value(value: string) { this.findInput.inputBox.value = value; } </ins> private readonly modeToggle: ModeToggle; private readonly findInput: FindInput; private readonly actionbar: ActionBar;

private _pattern = ''; get pattern(): string { return this._pattern; } <ins> private previousPattern = ''; </ins> private _mode: TreeFindMode; get mode(): TreeFindMode { return this._mode; }

this.widget.layout(this.width); this.widget.focus(); <ins> this.widget.value = this.previousPattern; this.widget.select(); </ins> this._onDidChangeOpenState.fire(true); }

this.enabledDisposables.dispose(); this.enabledDisposables = new DisposableStore(); <ins> this.previousPattern = this.pattern; </ins> this.onDidChangeValue(''); this.tree.domFocus();
Change:
Testing <img width="728" alt="image" src="https://user-"- I would suggest that we update the placeholder to indicate that you can type in a name to create a new file Is there any reason why we have description for the capabilities that are included in VS Code? <img width="728" alt="image" src="https://user-"- I would suggest that we update the quick pick item to something like "Create New File" and remove the "Built-In" description <img width="728" alt="image" src="https://user-"- I would suggest to place the "New File" quick pick item at the end of the list separated from the file types
It's just been the precedent whenever we have some features that are contributed in a list with built-in features there as well. The Reopen With... picker does the same thing. I think the division here is built-in vs non built-in and not necessarily file types vs not file types. The New File (name) will actually choose a file type based off of the file extension

Discussion:
const disposables = new DisposableStore(); const qp = this.quickInputService.createQuickPick(); <del> qp.title = localize('selectFileType', "Select File Type..."); qp.placeholder = qp.title; </del> <ins> qp.title = localize('newFileTitle', "New File..."); qp.placeholder = localize('newFilePlaceholder', "Select File Type or Enter File Name..."); </ins> qp.sortByLabel = false; qp.matchOnDetail = true; qp.matchOnDescription = true;

const currentTextEntry: NewFileItem = { commandID: 'workbench.action.files.newFile', commandArgs: { languageId: undefined, viewType: undefined, fileName: val }, <del> title: localize('miNewFileWithName', "New File ({0})", val), </del> <ins> title: localize('miNewFileWithName', "Create New File ({0})", val), </ins> group: 'file', from: builtInSource, };
Change:
Testing Sandbox is meant to be a global setting, but when setting it in the workplace settings, it doesn't show that it is not allowed and suggests to restart vscode. When it then restarts, it does not start in sandbox mode (No Sandbox message in DevTools). I believe that the setting should actually be showing an error when set in the workplace settings (red squiggly line) and should not prompt to restart.
I guess I am missing

Discussion:
type: 'boolean', description: localize('experimentalUseSandbox', "Experimental: When enabled, the window will have sandbox mode enabled via Electron API."), default: false, <ins> 'scope': ConfigurationScope.APPLICATION, </ins> ignoreSync: true }, }
Change:
Testing You could remove "manual" from the action name, i.e. "Create folding range from selection" or maybe even "Fold selection".
Fold selection could be confusing if there are already folding ranges at the selection position. it's more than just folding (it creates a range) sounds too similar than the commands that just collapse (, ,...)
I'm not opposed to remove the 'Manual'

Discussion:
constructor() { super({ id: 'editor.createFoldingRangeFromSelection', <del> label: nls.localize('createManualFoldRange.label', "Create Manual Folding Range from Selection"), alias: 'Create Manual Folding Range from Selection', </del> <ins> label: nls.localize('createManualFoldRange.label', "Create Folding Range from Selection"), alias: 'Create Folding Range from Selection', </ins> precondition: CONTEXT_FOLDING_ENABLED, kbOpts: { kbExpr: EditorContextKeys.editorTextFocus,
Change:
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.

Discussion:
const yesButton = nls.localize('TaskQuickPick.changeSettingYes', "Yes"); const changeSettingResult = await this._dialogService.show(Severity.Warning, nls.localize('TaskQuickPick.changeSettingDetails', <del> "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. Do you want to enable {0} task detection for all workspaces?", selectedType), [noButton, yesButton]); </del> <ins> "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), [noButton, yesButton] ); </ins> if (changeSettingResult.choice === 1) { await this._configurationService.updateValue(`${selectedType}.autoDetect`, 'on'); await new Promise<void>(resolve => setTimeout(() => resolve(), 100));
Change:
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.

Discussion:
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');