jiebi/CodeConvo huggingface dataset:
Change:
return { text, offset }; } <ins> private tokenize(document: SkinnyTextDocument, engine: MarkdownIt): Token[] { const UNICODE_NEWLINE_REGEX = /u2028|u2029/g; const { text, offset } = this.stripFrontmatter(document.getText()); const uri = document.uri; if (this.cachedTokens.has(uri)) { return this.cachedTokens.get(uri)!; } const tokens = engine.parse(text.replace(UNICODE_NEWLINE_REGEX, ''), {}).map(token => { if (token.map) { token.map[0] += offset; token.map[1] += offset; } return token; }); this.cachedTokens.set(uri, tokens); return tokens; } </ins> public async render(document: SkinnyTextDocument, stripFrontmatter: boolean): Promise<string> { let offset = 0; let text = document.getText();

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: --<!-- Use Help Report Issue to prefill these. --- VSCode Version: Windows 7 & Mac 10.14 (Only these 2 Tested) A user of my extension reports duplicate html elements in export markdown, I debug & find this issue as described in header. It doesn't affect the preview rendering, so I cannot tell the step to reproduce. But I can tell, it's reproducible when all extension (except mine) is disabled, and the issue is gone in extension debugging environment. Please find more details here: PS: My extension uses VSCode Markdown render instance to provide WYSIWYG export
Is is causing any use facing problems?
Not really, copy HTML used most in copy & paste to rich text editors, as I know, which could still render right result. Only matters if user cares about the excessive codes, or performance worries (for running many times)
We have two calls to markdown it: Render the markdown to html parse the markdown to a set of tokens Markdown it has an internal render method that takes a list of tokens instead: We could cache the tokens and use this api instead. Marking as help wanted. Here's where the two calls are:
, I am trying this one :)
Change:
}; const viewPreviousCommitCommand = { <del> description: { description: localize('scm view previous commit', "SCM: View Previous Commit"), args: [] }, </del> <ins> description: { description: localize('scm view previous commit', "Source Control: View Previous Commit"), args: [] }, </ins> weight: KeybindingWeight.WorkbenchContrib, handler: (accessor: ServicesAccessor) => { const contextKeyService = accessor.get(IContextKeyService);

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:
const args = ['for-each-ref', '--format', '%(refname) %(objectname)']; if (opts && opts.sort && opts.sort !== 'alphabetically') { <del> args.push('--sort', opts.sort); </del> <ins> args.push('--sort', `-${opts.sort}`); </ins> } const result = await this.run(args);

Discussion:
Steps to Reproduce: a couple of branches on the branch picker =:bug: the branches are no longer sorted by commit date This works fine in stable, so seems like a regression. INSIDERS ! STABLE ! (my git version is )
Stable: Insiders: Yup, there's a missing.
Change:
continue; } <ins> // make sure auth information is correct if (this._isUsingAuth(extension.identifier, data.metadata)) { await this._fakeAuthPopulate(data.metadata); } </ins> let apiObject = data.apiObjects.get(extension.identifier); if (!apiObject) {

Discussion:
Testing Used Cat sample extension to test this. Please correct me if I misunderstood something the following code to the end of the method (so it runs on activation) extension Log: =This is expected, consent has not been given yet a chat message using the participant () Consent is requested =Accept the extension Log: Consent has been given by now, so the expected response would be ? When sending another message, consent is not requested again.
Nice find!
<!-- UNABLETOLOCATECOMMITMESSAGE issue --Issue marked as unreleased but unable to locate closing commit in issue timeline. You can manually reference a commit by commenting , or directly add the label if you know this has already been releaased
Change:
*/ export const numberComparator: Comparator<number> = (a, b) => a - b; <ins> export function reverseOrder<TItem>(comparator: Comparator<TItem>): Comparator<TItem> { return (a, b) => -comparator(a, b); } </ins> /** * Returns the first item that is equal to or greater than every other item. */

Discussion:
When a code fragment of at least 3 lines of code is deleted somewhere in inserted somewhere else without modifications, this move should be detected. . (select latest -dev version to verify)
Change:
const context = explorerService.getContext(true); const toPaste = resources.distinctParents(await clipboardService.readResources(), r => r); const element = context.length ? context[0] : explorerService.roots[0]; <ins> const incrementalNaming = configurationService.getValue<IFilesConfiguration>().explorer.incrementalNaming; </ins> try { // Check if target is ancestor of pasted folder

Discussion:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file
Change:
private scopedInstantiationService!: IInstantiationService; private replElementsChangeListener: IDisposable | undefined; private styleElement: HTMLStyleElement | undefined; <ins> private styleChangedWhenInvisible: boolean = false; </ins> private completionItemProvider: IDisposable | undefined; private modelChangeListener: IDisposable = Disposable.None; private filter: ReplFilter;

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/No <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.85.0 OS Version: win10 Steps to Reproduce: a C/C++ program. "Ctrl +j" to Toggle Panel invisible. Change the debug console font size, then toggle panel visible. It can be seen the debug console content is cleared is a video demonstration
Weird bug. I can repro it
Still repros
I see that this works sometimes, but sometimes it still clears the debug console content.
I would like to work on this. Can you please assign this to me?
Feel free to send a PR if you'd like
Tried to reproduce this on the latest stable release and it seems like this is already fixed.
The original steps:
I submitted a to fix this problem. But I'm not sure if it is an ideal approach. Any feedback would be helpful .
Change:
// on the newer package, this hack skips the dep.  This is safe because // libgcc-s1 is a dependency of libc6.  This hack can be removed once // support for Debian Buster and Ubuntu Bionic are dropped. <ins> // // Remove kerberos native module related dependencies as the versions // computed from sysroot will not satisfy the minimum supported distros // Refs https://github.com/microsoft/vscode/issues/188881. // TODO(deepak1556): remove this workaround in favor of computing the // versions from build container for native modules. </ins> const filteredDeps = depsStr.split(', ').filter(dependency => { <del> return !dependency.startsWith('libgcc-s1'); </del> <ins> return !dependency.startsWith('libgcc-s1') && !dependency.startsWith('libgssapi-krb5-2') && !dependency.startsWith('libkrb5-3'); </ins> }).sort(); const requires = new Set(filteredDeps); return requires;

Discussion:
On Ubuntu 16.04 <img width="571" alt="image" src=""Originally posted by in
On ubuntu 18.04 and using apt, almost the same error
Steps for verification: In Ubuntu 18.04 VM or Ubuntu 16.04 VM Install insiders debian package from Verify that error seen in is not shown and update completes successfully
Closing for verification.
Change:
}); } <del> async run(accessor: ServicesAccessor, ...args: any[]): Promise<void> { const editorService = accessor.get(IEditorService); const activeEditor = editorService.activeEditor; </del> <ins> async run(accessor: ServicesAccessor, resourceOrContext?: URI | IEditorCommandsContext, context?: IEditorCommandsContext): Promise<void> { const { editor } = resolveCommandsContext(accessor.get(IEditorGroupsService), getCommandsContext(accessor, resourceOrContext, context)); </ins> <del> if (activeEditor instanceof MultiDiffEditorInput) { const viewModel = await activeEditor.getViewModel(); </del> <ins> if (editor instanceof MultiDiffEditorInput) { const viewModel = await editor.getViewModel(); </ins> viewModel.expandAll(); } }

Discussion:
You should not be assuming that the editor for which the action is being run for is the active editor. Make sure to correctly extract the context from the arguments passed to the script. The run method should be defined the following way: You can get the correct context with and resolve it with Make sure to adopt this for the following MultiDiffActions: - You can test that it works correctly with and 2 editor groups
Change:
} const trustedHtml = ttPolicy?.createHTML(html) ?? html; el.innerHTML = trustedHtml as string; <del> if (tokenizationStyleElement) { el.insertAdjacentElement('beforebegin', tokenizationStyleElement.cloneNode(true) as HTMLElement); </del> <ins> const root = el.getRootNode(); if (root instanceof ShadowRoot) { if (!root.adoptedStyleSheets.includes(tokenizationStyle)) { root.adoptedStyleSheets.push(tokenizationStyle); } </ins> } }

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --- VS Code version: 1.79.1 Jupyter Extension version: 2023.5. Python Extension version: 2023.10.1 OS and version: Windows 11 Home Version 22H2, build .1778 If I change the theme after entering code in a Markdown cell, the code highlighting should change accordingly. Light theme: <img width="51" alt="image" src=""Dark theme: <img width="52" alt="image" src=""The code highlighting in Markdown cells does not change according to the theme. Light theme: <img width="44" alt="image" src=""Dark theme: <img width="48" alt="image" src=""an .ipynb file. a Markdown cell. some text formatted as code, e.g. python a = 5 ` Shift + Enter to render cell. theme (for example, if code was entered when using Light Modern, switch to Dark Modern). The code highlighting in the Markdown cell does not change and is now difficult to read.
Change:
{ "markdown.preview.title" : "Open Preview", "markdown.previewSide.title" : "Open Preview to the Side", <del> "markdown.showSource.title" : "Show Source" </del> <ins> "markdown.showSource.title" : "Show Source", "markdown.styles.dec": "A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '' need to be written as ''.", "markdown.previewFrontMatter.dec": "Sets how YAML front matter should be rendered in the markdown preview. 'hide' removes the front matter. Otherwise, the front matter is treated as markdown content" </ins> }  No newline at end of file

Discussion:
VSCode Version:1.6 insiders OS Version: doesn't matter All settings related to css, sass, less, html, json and markdown. This might be because these come from extensions that are built in?
I've gone through the builtin extensions and opened new issues for each one that is missing setting localization. Please met me know if I missed any
Change:
return this._terminalGroupService.instances.concat(this._terminalEditorService.instances); } <ins> private _primaryBackendRegistered: Barrier = new Barrier(); get primaryBackendRegistered(): Promise<void> { return this._primaryBackendRegistered.wait().then(() => { }); } </ins> private _reconnectedTerminals: Map<string, ITerminalInstance[]> = new Map(); getReconnectedTerminals(reconnectionOwner: string): ITerminalInstance[] | undefined {

Discussion:
Started in first 1.72 insider build !
It's related to not being and going this route: Probably more fallout from the change in and
View visibility changes before the backend is registered:
Change:
window.showInformationMessage(l10n.t('JSON schema cache cleared.')); })); <del> toDispose.push(workspace.onWillSaveTextDocument(event => { const sortOnSave = workspace.getConfiguration().get<boolean>(SettingIds.enableSortOnSave); const document = event.document; if (sortOnSave && (document.languageId === 'json' || document.languageId === 'jsonc')) { const documentOptions = getOptionsForDocument(document); const textEditsPromise = getSortTextEdits(document, documentOptions?.tabSize, documentOptions?.insertSpaces); event.waitUntil(textEditsPromise); } })); </del> toDispose.push(commands.registerCommand('json.sort', async () => {

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:
this._register(DOM.addDisposableListener(clearSearch, DOM.EventType.CLICK, (e: MouseEvent) => { DOM.EventHelper.stop(e, false); this.clearSearchResults(); <del> this.focusSearch(); </del> })); DOM.append(this.noResultsMessage, clearSearchContainer);

Discussion:
<!-- Please search existing issues to avoid creating duplicates. --Currently the 'focusSearch' method is called directly after the 'clearSearchResults' method returns. I think they should be called in one function as they get called one after another anyways and effect the same widget. I propose to add the 'focus search' method to the code below.. Also.. there's an extra 'clear search' function in the settings editor that can be replaced by this code. <!-- Describe the feature you'd like. --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.508 --- <!-- score: 0.498 --<!-- potentialduplicatescomment --
Change:
const versionProvider = new StaticVersionProvider( new TypeScriptVersion( TypeScriptVersionSource.Bundled, <del> context.asAbsolutePath('dist/browser/typescript-web/tsserver.web.js'), </del> <ins> vscode.Uri.joinPath(context.extensionUri, 'dist/browser/typescript-web/tsserver.web.js').toString(), </ins> API.v400)); const lazyClientHost = createLazyClientHost(context, false, {

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:
// Shared process lifecycle const onExit = async () => { <del> if (this.lifecycleService) { await this.lifecycleService.fireOnWillShutdown(); this.lifecycleService.dispose(); this.lifecycleService = undefined; } </del> <ins> this.lifecycleService?.fireOnWillShutdown(); </ins> this.dispose(); }; process.once('exit', onExit);

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:
const nextWidget: ReviewZoneWidget | undefined = sortedWidgets[idx]; if (nextWidget !== undefined) { this.editor.setSelection(nextWidget.commentThread.range ?? new Range(1, 1, 1, 1)); <del> nextWidget.reveal(undefined, CommentWidgetFocus.Widget); </del> <ins> nextWidget.reveal(undefined, focusThread ? CommentWidgetFocus.Widget : CommentWidgetFocus.None); </ins> } } <del> public previousCommentThread(): void { this._findNearestCommentThread(true); </del> <ins> public previousCommentThread(focusThread: boolean): void { this._findNearestCommentThread(focusThread, true); </ins> } private _findNearestCommentingRange(reverse?: boolean): void {

Discussion:
Screen reader users like want to navigate between editor ranges that have comments. I think this makes sense. the recording I will share describes this in more detail.
I just realized that these already exist, and .
I respectfully think that we have miscommunication here. I am requesting a feature going to the next commented area. The commands that you are referring to are moving between commentable range, instead of commented area. The closest commands are alt+F9 () and alt+shift+F9 (). However, these commands directly and automatically opens the comment widget. I just want to jump to the next commented lines and manually open the applied comments manually if I need to review.
Ah, yes makes sense thanks for reminding me!
Change:
private viewHasSomeCollapsibleRootItem: IContextKey<boolean>; private viewVisibleContextKey: IContextKey<boolean>; <ins> private setTreeInputPromise: Promise<void> | undefined; </ins> private horizontalScrolling: boolean | undefined; private dragHandler!: DelayedDragHandler;

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. --For example when I open a project in v, I expand the folder on the file tree. When I refresh the whole page, the default behavior now is that the folders are collapsed, which means that I need to expand the folders one by one again the last time I opened them. !
If the expansion state of the file tree folder can remember the last expansion like tabs, similar to the gif below, I think this is a better effect. !
I have fixed this problem and will mention a pr later.
The reason for this problem is that there are multiple calls to the function during the rendering of the file tree. The state will be read from the cache for the first time, but before the execution is completed for the first time, the will be executed again. At this time, the tree already has a value. However, because the file tree data is not ready (because the data on the Web side is asynchronous), the state returned by the function is empty, resulting in the final file tree returning to the default collapsed state.
Change:
}, { id: 'features/scm', <del> label: localize('scm', "SCM"), </del> <ins> label: localize('scm', "Source Control"), </ins> settings: ['scm.*'] }, {

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:
} const hasRemoteAuthority = !!this.remoteAuthority; <ins> // Create variable resolver const activeWorkspaceRootUri = this._historyService.getLastActiveWorkspaceRoot(); const lastActiveWorkspace = activeWorkspaceRootUri ? withNullAsUndefined(this._workspaceContextService.getWorkspaceFolder(activeWorkspaceRootUri)) : undefined; const variableResolver = terminalEnvironment.createVariableResolver(lastActiveWorkspace, await this._terminalProfileResolverService.getShellEnvironment(this.remoteAuthority), this._configurationResolverService); </ins> // resolvedUserHome is needed here as remote resolvers can launch local terminals before // they're connected to the remote. this.userHome = this._pathService.resolvedUserHome?.fsPath;

Discussion:
With we are trying to remove from the configuration resolver service. The new way to get the environment is async and requires that the all the configuration resolver methods be async. I have started the adoption of the new async methods in , but there's one use in terminal that looks like it will require more work: Option 1: Convert that use of to use . Option 2: I provide a new method on the configuration resolver service that is sync, but requires you to pass in your own . Which option makes the most sense here?
I think the usage of in must remain sync since it's used as part of the extension API. Is this a problem there since is fine to use? The main purpose of this type was to share code between variable processes.
Sounds like Option 2 is the way to go then. I will add a new method that is sync and lets you pass in your own .
Added: will that let you keep your code reuse?