jiebi/CodeConvo huggingface dataset:
Change:
showSimilarKeybindings(keybindingEntry: IKeybindingItemEntry): void; } <ins> export const DEFINE_KEYBINDING_EDITOR_CONTRIB_ID = 'editor.contrib.defineKeybinding'; export interface IDefineKeybindingEditorContribution extends IEditorContribution { showDefineKeybindingWidget(): void; } </ins> export const FOLDER_SETTINGS_PATH = '.vscode/settings.json'; export const DEFAULT_SETTINGS_EDITOR_SETTING = 'workbench.settings.openDefaultSettings'; export const USE_SPLIT_JSON_SETTING = 'workbench.settings.useSplitJSON';

Discussion:
With there is a new -menu which a big blue buttons. This is used in the merge editor and to hint to open the merge editor. This new menu should be used for: [x] [ ] ~~ / [x] [ ]
Other potential adoptors [ ] [ ] [ ] [ ]
Digging into it, I don't think can be adopted for the diff editor, as the button should be for both editors, not only the right side ( is a , but is ).
Change:
this.shouldShowViewsContext = EDIT_SESSIONS_SHOW_VIEW.bindTo(this.contextKeyService); this._register(this.fileService.registerProvider(EditSessionsFileSystemProvider.SCHEMA, new EditSessionsFileSystemProvider(this.editSessionsWorkbenchService))); <ins> this.lifecycleService.onWillShutdown((e) => e.join(this.autoStoreEditSession(), { id: 'autoStoreEditSession', label: localize('autoStoreEditSession', 'Storing current edit session...') })); } private async autoStoreEditSession() { if (this.configurationService.getValue('workbench.experimental.editSessions.autoStore') === 'onShutdown') { await this.progressService.withProgress({ location: ProgressLocation.Window, type: 'syncing', title: localize('store edit session', 'Storing edit session...') }, async () => this.storeEditSession(false)); } </ins> } private registerViews() {

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. -- introduces which controls when we attempt to restore an edit session for the current workspace. The user still has to remember to store their edit session or use the explicit Continue Working On trigger. In order to make it harder to lose edit sessions across , , , and RemoteHub on desktop, we should introduce a setting with initial setting values and . When set to , we'll attempt to store the current edit session (if any) before a workbench unload. This will only really reliably work in desktop because in web we cannot run long running tasks in the onbeforeunload handler (, tracked in ). To mitigate this we should also explore introducing an option to continuously sync edit sessions. That first requires tolerance of edit sessions originating from multiple VS Code clients concurrently.
On , we do have a service worker which is used primarily for caching. Service workers can outlive their associated pages, and can be synchronously 'd to like other workers. Perhaps we can use that service worker (or a new one) to allow the workbench to send information to save before it unloads.
Change:
import { isCompositeNotebookEditorInput, NotebookEditorInput, NotebookEditorInputOptions } from 'vs/workbench/contrib/notebook/common/notebookEditorInput'; import { INotebookService } from 'vs/workbench/contrib/notebook/common/notebookService'; import { NotebookService } from 'vs/workbench/contrib/notebook/browser/notebookServiceImpl'; <del> import { CellKind, CellToolbarLocation, CellToolbarVisibility, CellUri, DisplayOrderKey, UndoRedoPerCell, IResolvedNotebookEditorModel, NotebookDocumentBackupData, NotebookTextDiffEditorPreview, NotebookWorkingCopyTypeIdentifier, ShowCellStatusBar, CompactView, FocusIndicator, InsertToolbarLocation, GlobalToolbar, ConsolidatedOutputButton, ShowFoldingControls, DragAndDropEnabled, NotebookCellEditorOptionsCustomizations, ConsolidatedRunButton, TextOutputLineLimit, GlobalToolbarShowLabel } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </del> <ins> import { CellKind, CellToolbarLocation, CellToolbarVisibility, CellUri, DisplayOrderKey, UndoRedoPerCell, IResolvedNotebookEditorModel, NotebookDocumentBackupData, NotebookTextDiffEditorPreview, NotebookWorkingCopyTypeIdentifier, ShowCellStatusBar, CompactView, FocusIndicator, InsertToolbarLocation, GlobalToolbar, ConsolidatedOutputButton, ShowFoldingControls, DragAndDropEnabled, NotebookCellEditorOptionsCustomizations, ConsolidatedRunButton, TextOutputLineLimit, GlobalToolbarShowLabel, IOutputItemDto } from 'vs/workbench/contrib/notebook/common/notebookCommon'; </ins> import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IUndoRedoService } from 'vs/platform/undoRedo/common/undoRedo'; import { INotebookEditorModelResolverService } from 'vs/workbench/contrib/notebook/common/notebookEditorModelResolverService';

Discussion:
Version: 1.59.0-insider (user setup) Commit: Date: 2021-08-04T09:44:34.203Z (1 day ago) Electron: 13.1.7 Chrome: 91.0.4472.124 14.16.0 V8: 9.1.269.36-electron.0 OS: Windows_NT x64 10.0. Steps to Reproduce: In a Python notebook or interactive session done click on "show more (open the raw output data in a text editor) ..." ! I would have expected to just see a file with numbers from 1 to 1000
Make sense to me. For single mimetype output, we should directly convert that to the right format.
Change:
onProjectLanguageServiceStateChanged: Event<Proto.ProjectLanguageServiceStateEventBody>; onDidBeginInstallTypings: Event<Proto.BeginInstallTypesEventBody>; onDidEndInstallTypings: Event<Proto.EndInstallTypesEventBody>; <ins> onTypesInstallerInitializationFailed: Event<Proto.TypesInstallerInitializationFailedEventBody>; </ins> logTelemetry(eventName: string, properties?: { [prop: string]: string }): void;

Discussion:
VSCode Version: Code 1.10.0 (, 2017-03-01T17:09:34.031Z) OS Version: Linux x64 4.5.5-300.fc24.x86_64 Extensions: none Steps to Reproduce: -Does not show type-specific proposals There is a single file in the cache: with just the empty object in it. /cc
The root cause seems to be that is not installed. I'm investigating this on other platforms as well
Two issues are tracking this on the TypeScript side: No error being generated: Add error message to typings install failure:
With TS 2.2.2 insiders we just picked up, an error notification is now generated in this case. It still does not have a good user facing message about not having npm installed. That is being tracked by
We don't handle the new event from the TS Server yet.
Change:
const container = document.createElement('span'); container.classList.add('all-options'); parent.appendChild(container); <del> const action = new Action('all', localize('all', "Show Quick Pick Options..."), Codicon.chevronDown.classNames, true, () => { </del> <ins> const action = new Action('all', localize('all', "Show Search Modes..."), Codicon.chevronDown.classNames, true, () => { </ins> quickInputService.quickAccess.show('?'); }); const dropdown = new ActionViewItem(undefined, action, { icon: true, label: false, hoverDelegate });

Discussion:
The 'Last updated' and 'released on' dates on the extension page use the American format. This is confusing to many people. ! I tried to Spanish and German, but the problem remains: ! ! Consider using a unambiguous date format such as yyyy-mm-dd (ISO 8601)
I am not locating the datetime as a resource for localization, I'm assuming it is concatenated in runtime so not a loc issue. Please help if I'm mistaken.
I think using the unambiguous date format is a good way forward. However, we could do something where en-US is displayed one way everything else is displayed the other way... but I don't think that is 100% accurate.
is this issue closed? or still needs help?
Its still open and there is a PR which has to be reviewed.
Hello, is this issue still open? I am new to contributing to GitHub projects and this seems like a good first issue for me. Is there a way to claim this issue? If I am able to work on this, do you have any advice for me in contributing for the first time?
Thanks for your interest. This is already being worked on. Please look for another good first and help wanted issues. Thanks/
Change:
const container = document.createElement('span'); container.classList.add('all-options'); parent.appendChild(container); <del> const action = new Action('all', localize('all', "Show Quick Pick Options..."), Codicon.chevronDown.classNames, true, () => { </del> <ins> const action = new Action('all', localize('all', "Show Search Modes..."), Codicon.chevronDown.classNames, true, () => { </ins> quickInputService.quickAccess.show('?'); }); const dropdown = new ActionViewItem(undefined, action, { icon: true, label: false, hoverDelegate });

Discussion:
Hover over the down arrow in the title bar search -"Show Quick Pick Options" shows up Not convinced by the wording here, most new users might not know what is a quick pick. Instead I would have something like "Search Modes", or something more understandable. These are not really options imho fyi for thoughts !
"Show Search Modes..." is the winner
Change:
@ILogService private readonly logService: ILogService, @IDialogService private readonly dialogService: IDialogService, @IWorkspaceContextService private readonly contextService: IWorkspaceContextService, <del> @IUserDataProfileService private readonly userDataProfileService: IUserDataProfileService, </del> @IUserDataProfilesService private readonly userDataProfilesService: IUserDataProfilesService, ) { super();

Discussion:
When using vscode through a , if I switch profiles and then open an existing project (ctrl+r, left click), the url then updates with some url parameters (). The window loaded with that payload doesn't work correctly. For example, code search only works on the already opened files, and not the entire folder. A workaround is to remove the payload from the url. Version: 1.93.1 Commit: User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Embedder: <!-- generated by web issue reporter --
Change:
} run(accessor: ServicesAccessor): void { <del> accessor.get(IStorageService).log(); </del> <ins> const storageService = accessor.get(IStorageService); const dialogService = accessor.get(IDialogService); storageService.log(); dialogService.info(localize('storageLogDialogMessage', "The storage database contents have been logged to the developer tools."), localize('storageLogDialogDetails', "Open developer tools from the menu and select the Console tab.")); </ins> } }

Discussion:
Run the command . Nothing happens Can we show the dev tools or open an output view that gets focus? From describing a user how to help us debugging an issue with storage:
The action also runs in browsers where we cannot open devtools automatically. We cannot use the output view because we actually show a real table: <img width="1394" alt="image" src=""But we can inform the user via dialog.
For the other action "Log working copies" I will reveal the window log where it is logged to.
Change:
private readonly widget = this._register(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget, this.editor, true)); private sessionPosition: Position | undefined = undefined; <ins> private isDisposed = false; </ins> constructor( private readonly editor: ICodeEditor,

Discussion:
Saw while playing around in code OSS <img width="1251" alt="image" src="https://user-"
I also just ran into this. Here is the complete stack trace:
What are some verification steps for this issue?
I'll mark this as verified just because I was seeing this multiple times daily and am not seeing it anymore.
Change:
} private onQueryTriggered(query: ITextQuery, options: ITextQueryBuilderOptions, excludePatternText: string, includePatternText: string, triggeredOnType: boolean): void { <del> this.addToSearchHistoryDelayer.trigger(() => this.searchWidget.searchInput.onSearchSubmit()); this.inputPatternExcludes.onSearchSubmit(); this.inputPatternIncludes.onSearchSubmit(); </del> <ins> this.addToSearchHistoryDelayer.trigger(() => { this.searchWidget.searchInput.onSearchSubmit(); this.inputPatternExcludes.onSearchSubmit(); this.inputPatternIncludes.onSearchSubmit(); }); </ins> this.viewModel.cancelSearch();

Discussion:
With current implementation of search history it's a bit hard to find previous "proper" searches when is . When used with regular expressions which are not as fast to type as regular text it allows to quickly see RE errors or preliminary results but also saves each a lot of version with only 1-3 changed characters to history. Without better options to navigate field history except <kbdUp</kbd/<kbdDown</kbdit makes hard to find history entry for intentional searches (in my case it was about 20 intermediate results to spot proper search). Current solutions are: 1) Disable and then only "submitted" searches will be in history. 2) Increase to 2s and hope that I can type all capturing groups and lookaheads fast enough, but it might be faster just to hit <kbdEnter</kbdAs for me - ideal solution will be an option to treat searches triggered by as early preview of possible matches and add history entry only after user intentionally hits <kbdEnter</kbd. Is it something that can be implemented and considered by the team? /cc
I think it would make sense to add to history either on enter, or on a "large" (2 seconds maybe) debounce.
Looks like same problem appears in "files to include/exclude" fields (even more spam entries) so I created PR that will debounce saving history entries for these fields too. And the another related question: Will you consider merging PR that will add Setting to completely disable history entries on type and will require explicit <kbdEnter</kbdpress (off by default) or it's unnecessary complexity (which might be source of confusion) that wont be merged? It will basically turn "search on type" into some kind of Search preview mode - ideal for me, but would understand if it's not good for general auditory.
Thanks for the PR, I've merged it. As for the setting, if you propose a good name and description text I think it's reasonable.
Change:
import { IChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chat'; import { IChatResponseViewModel } from 'vs/workbench/contrib/chat/common/chatViewModel'; import { renderStringAsPlaintext } from 'vs/base/browser/markdownRenderer'; <ins> import { MarkdownString } from 'vs/base/common/htmlContent'; </ins> const CHAT_RESPONSE_PENDING_ALLOWANCE_MS = 4000; export class ChatAccessibilityService extends Disposable implements IChatAccessibilityService {

Discussion:
Have a response that contains references to code, e.g. : ! Start screen reader and click on the response. Notice how the full URLs are being read out aloud which are very long. Verbatim text: I think this stems from the fact that we just take the response as string here:
Btw I have a similar challenge for the text-to-speech integration where I am thinking about converting the markdown string to a plain text string using : But I did notice that this would remove some text, such as ordered list.
made a good point in our standup today: why are we not leveraging the HTML screen reader support for chat items but use ?
The HTML screen reader support requires users to enter different modes to navigate - browse/focus mode. Feedback from screen reader users suggested this is not user friendly. Users will examine content in detail in the chat accessible view, not here. Providing an overview of the response with aria alert is desired. This is similar to how sighted users see the response streaming in. Screen reader users press escape if they don't wish to hear the content.
I agree it's not good that it's reading the full URLs. A similar problem is here and my solution to that will be to remove those links and provide an alternate way of setting any keybindings which are undefined.
Potential verification found: I asked for the location of some code, and after Copilot finished typing out the response, it announced the entire response, including all the link text and full command IDs.
LGTM now. I might've forgotten to update something.
A screenshot of the text that was announced would help to know if this was fixed or not
nvm. The symbols are good but the URLs still expand !
unclear how this could be happening as I'm using
figured it out
It is still reading the complete path for me.
and the complete path is expected. what's not expected is these chars
going to see if I can repro on windows
does not reproduce for me on windows either . It makes no sense that this would happen - , we literally parse that stuff out. could you pls debug in oss here? !
I believe the issue is fixed now. I notice that when the announcement is read out that the links are now announced correctly. When I click on the response, the links are read with the Markdown formatting again, but I believe that this behaviour is out of scope of the issue.
Change:
): QuickPickInput<KernelQuickPickItem>[] { const { selected, all, suggestions, hidden } = matchResult; <del> function toQuickPick(kernel: INotebookKernel) { const res = <KernelPick>{ kernel, picked: kernel.id === selected?.id, label: kernel.label, description: kernel.description, detail: kernel.detail }; if (kernel.id === selected?.id) { if (!res.description) { res.description = localize('current1', "Currently Selected"); } else { res.description = localize('current2', "{0} - Currently Selected", res.description); } } return res; } </del> const quickPickItems: QuickPickInput<KernelQuickPickItem>[] = []; if (all.length) { // Always display suggested kernels on the top. <del> if (suggestions.length) { quickPickItems.push({ type: 'separator', label: localize('suggestedKernels', "Suggested") }); quickPickItems.push(...suggestions.map(toQuickPick)); } </del> <ins> this._fillInSuggestions(quickPickItems, suggestions, selected); </ins> // Next display all of the kernels not marked as hidden grouped by categories or extensions. // If we don't have a kind, always display those at the bottom. <del> const picks = all.filter(item => (!suggestions.includes(item) && !hidden.includes(item))).map(toQuickPick); </del> <ins> const picks = all.filter(item => (!suggestions.includes(item) && !hidden.includes(item))).map(kernel => this._toQuickPick(kernel, selected)); </ins> const kernelsPerCategory = groupBy(picks, (a, b) => compareIgnoreCase(a.kernel.kind || 'z', b.kernel.kind || 'z')); kernelsPerCategory.forEach(items => { quickPickItems.push({

Discussion:
Currently when there is one suggested kernel and that's the one users are using in current document, its presentation in kernel picker is weird <img width="601" alt="image" src="https://user-"This can be simplified as a single "Selected" group at the very top <img width="601" alt="image" src="https://user-"
Change:
try { const permalink = getLink(gitAPI, useSelection, getVscodeDevHost(), 'headlink', context, includeRange); if (permalink) { <del> return vscode.env.clipboard.writeText(permalink); </del> <ins> return vscode.env.clipboard.writeText(encodeURI(permalink)); </ins> } } catch (err) { vscode.window.showErrorMessage(err.message);

Discussion:
For links we support perma link and head urls. For we only support perma links but I observe myself to need head links more than permalinks. We should add those. Also, for file and folders with whitespace, the whitespace should be encoded, just like we do for the links we generate.
IMO links should be head links rather than permalinks. We could support both but I want to avoid clutter if possible. Also, I do not see that we encode the whitespace for either or links that we generate--will look into fixing for all our link code.
Verification: pre-release of GitHub Pull Requests extension on desktop a desktop git clone of a GitHub repository on desktop a file a link that the link is a HEAD link (i.e. does not point to a specific commit sha) a GitHub repository on web (e.g. ) steps 2-4
Change:
changed = true; } <del> // Profiles if (typeof config.workbench?.experimental?.settingsProfiles?.enabled === 'boolean' && config.workbench.experimental.settingsProfiles.enabled !== this.settingsProfilesEnabled) { this.settingsProfilesEnabled = config.workbench.experimental.settingsProfiles.enabled; changed = true; } </del> // On linux turning on accessibility support will also pass this flag to the chrome renderer, thus a restart is required if (isLinux && typeof config.editor?.accessibilitySupport === 'string' && config.editor.accessibilitySupport !== this.accessibilitySupport) { this.accessibilitySupport = config.editor.accessibilitySupport;

Discussion:
to the Settings editor on the setting . :bug: The user isn't prompted to restart the editor, so they end up encountering glitchy behaviour.
Change:
private _cursorStyle: TextEditorCursorStyle; private _lastRenderedContent: string; private _lineHeight: number; <ins> private _characterWidth: number; </ins> constructor(context: ViewContext, isSecondary: boolean) { this._context = context;

Discussion:
VSCode Version: 1.5.0 OS Version: OSX Originally posted in but later we found it's a Code issue. Repro steps cursor to any CJK characters !
Change:
}); })); <del> this._register(this.layoutService.onDidChangePartVisibility(() => this.setYCoordinate())); </del> <ins> this._register(this.layoutService.onDidChangePartVisibility(() => this.setCoordinates())); </ins> const resizeListener = this._register(new MutableDisposable()); <ins> const registerResizeListener = () => { resizeListener.value = this._register(dom.addDisposableListener( dom.getWindow(this.layoutService.activeContainer), dom.EventType.RESIZE, () => this.setCoordinates()) ); }; </ins> this._register(this.layoutService.onDidChangeActiveContainer(async () => { this._yRange = undefined;

Discussion:
a breakpoint or log here or copy a file into a new floating window between them a few times. The event fires a couple times but then stops firing
does it reproduce without having devtools opened in any of the windows?
this one takes me by surprise: in the main process I keep track of auxiliary windows and so far I have been using as identifier, assuming it would always match . But as it turns out, that is actually not always the case: if I open devtools and restart or reload, I see how suddenly of does not match the of anymore. In other words, I see an id of for example for the of the floating window, while its has an of . So I do think that I am doing something wrong and I need a different way how to figure out the window ID of a floating window... I track the creation of floating windows here from the :
Ah, that's the repro. Yes, you must have devtools open when you open the aux window. Opening them after the aux window is already open doesn't cause an issue, but once you do open them then the event won't fire properly until vs code is restarted
That is not the intended contract in the runtime, a BrowserWindow can have multiple WebContents at any point and their ids are independent. WebContent ids are incremental within the same process, so it purely depends on the creation order. You can use to get the owner window and that should give you the right id.
I tried that, but at the time fires, returns . In other words, the web content is being created before the window is there... So essentially, I have no way to find the window for the web contents so early.
I think maintaining a would suit this scenario, you can access the webContents a BrowserWindow owns via and this will be valid even at . Should be reliable than id.
Yeah, an alternative would be to pro-long aux-window handshake between main and renderer until the is there but I think thats overkill. I will see to keep aux windows identified by . Its a bit inconsistent because both aux and main window share the same base class and the one will use and the other ...
<!-- 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!