jiebi/CodeConvo huggingface dataset:
Change:
registerEditorAction(CompatChangeAll); registerEditorAction(InsertCursorAtEndOfLineSelected); registerEditorAction(InsertCursorAtTopOfLineSelected); <ins> registerEditorAction(FocusNextCursor); registerEditorAction(FocusPreviousCursor); </ins>

Discussion:
When a user adds multiple cursors we nicely announce the locations for each additional cursors. However the user can not check what is going on at the second / third cursor. I thought it would be nice if the user could change which one is the primary cursor using a command. That way the user could traverse each of the cursors and be able to read the line on each cursor for example. Since for screen reader reading we only respect the primary cursor. Now I am not sure if this is even possible from the implementation. Thus I am creating this issue for discussion. I am also open for ideas.
Currently, the primary cursor is always the first one, right?
Yes.
I like the suggestion, such a command ("focus next cursor") should be straight-forward to implement using editor API from an editor contrib.
Great. I like the "Focus Next Cursor" name. Maybe we also introduce "Focus Previous Cursor". I suggest no keybinding by default and then users can assign whatever they prefer. Maybe we assign this to November if it is low hanging fruit?
This feature could go well with to have clear visual feedback for when the primary cursor changes.
Thanks a lot for pushing this Once this is in insiders tomorrow I will do a push in our accessibility community for multi cursor, since I think with this it should be much more usable. So we get feedback. Did you verify if you change the focus of the cursor, does the screen reader read the new line (where the newly focused cursor is). I believe it should just work.
Verification steps: Launch nvda Set multiple cursors Use "Focus Next Cursor" / "Focus Previous Cursor" Verify that NVDA reads the text of the primary cursor and that the primary cursor rotates
Works great
Change:
"type": "node", "request": "launch", "name": "Launch VS Code (Main Process)", <del> "runtimeExecutable": "${workspaceFolder}/scripts/code.sh", </del> <ins> "windows": { "runtimeExecutable": "${workspaceFolder}/scripts/code.bat" }, "osx": { "runtimeExecutable": "${workspaceFolder}/scripts/code.sh" }, "linux": { "runtimeExecutable": "${workspaceFolder}/scripts/code.sh" }, </ins> "runtimeArgs": [ <del> "--no-cached-data" </del> <ins> "", "--no-cached-data" </ins> ], "smartStep": true, "outFiles": [ "${workspaceFolder}/out/**/*.js" <del> ] </del> <ins> ] </ins> }, { "type": "node",

Discussion:
VSCode Version: 1.26.0 OS Version: macOS Steps to Reproduce: in command line. Code seems opened a workspace of current directory folder, like Does this issue occur when all extensions are disabled?: Yes When I run some command like (e.g. in Linux), if the inner command failed, it return empty string as argument. VSCode shouldn't open current directory and replace the workspace (which is annoying), but should just open or focus the application instead.
Note: Neither Notepad++ or Sublime Text will open a folder wrongly with empty string argument.
what would you expect to happen, open an empty window?
Yes. Or focus existing window only. Just like running .
Wrong press "close"
Can I be assigned to this? I'd like to take a stab at it.
I've code that should do the trick. I've tested that it removes an empty argument. I wasn't able to test the actual functionality though because both and change the current directory. I couldn't figure out how to mimic production without hacking the startup scripts.
I just edited the main description to add an example usage - - which open a script file in environment PATH by VS Code to edit it. If the argument "$1" (for the script name) have typo, VS Code open a big slow workspace folder annoyingly. The existing behavior has no use, and it put the burden to user to write extra lines of if-else to avoid it, resulting in a big command & more typings.
Change:
const actions = createCancelablePromise(async token => { if (this._settingEnabledNearbyQuickfixes() && trigger.trigger.type === CodeActionTriggerType.Invoke && (trigger.trigger.triggerAction === CodeActionTriggerSource.QuickFix || trigger.trigger.filter?.include?.contains(CodeActionKind.QuickFix))) { const codeActionSet = await getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token); <ins> const allCodeActions = [...codeActionSet.allActions]; </ins> if (token.isCancellationRequested) { return emptyCodeActionSet; }

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: OS Version: Steps to Reproduce: Python <img width="296" alt="Screenshot 2023-11-07 at 8 00 18 AM" src=""<img width="312" alt="Screenshot 2023-11-07 at 8 00 30 AM" src=""
Change:
const extensions: typeof vscode.extensions = { getExtension(extensionId: string, includeFromDifferentExtensionHosts?: boolean): vscode.Extension<any> | undefined { <del> if (equalsIgnoreCase(extensionId, 'ms-vscode.references-view')) { extHostApiDeprecation.report(`The extension 'ms-vscode.references-view' has been renamed.`, extension, `Use 'vscode.references-view' instead.`); extensionId = 'vscode.references-view'; } </del> if (!isProposedApiEnabled(extension, 'extensionsAny')) { includeFromDifferentExtensionHosts = false; }

Discussion:
continues We need to ping extensions that use the old extension id and then remove the workaround we
These are the extensions that use the old extension identfier [ ] byted-ide.gallery - no issue tracker? [ ] Apex- - not in market place [ ] Goldman-Sachs.secview-extension - not in market place [x] - [ ] juliencroain.private-extension-manager - [x] -
Can you help with the first three extensions?
I will email since they are on the marketplace. We have no way to reach the second and third. So I suggest to go ahead and break them, and once things stop working they will ideally reach out to us and we can then advise them on how to update their extensions.
Change:
*/ class Protocol implements IMessagePassingProtocol { <del> readonly onMessage = Event.fromNodeEventEmitter<VSBuffer>(this.port, 'message', (e: MessageEvent) => VSBuffer.wrap(e.data)); </del> <ins> readonly onMessage = Event.fromNodeEventEmitter<VSBuffer>(this.port, 'message', (e: MessageEvent) => { if (e.data) { return VSBuffer.wrap(e.data); } return VSBuffer.alloc(0); }); </ins> constructor(private port: MessagePortMain) {

Discussion:
Here we have a stack trace which hints that a from the extension host utility process to the renderer process ended up firing a message event on the renderer process with a property which is null ( is null).
values are possible if de-serialization .
Change:
type: 'string' } } <ins> }, strings: { description: nls.localize('vscode.extension.contributes.debuggers.strings', "UI strings contributed by this debug adapter."), type: 'object', properties: { unverifiedBreakpoints: { description: nls.localize('vscode.extension.contributes.debuggers.strings.unverifiedBreakpoints', "When there are unverified breakpoints in a language supported by this debug adapter, this message will appear on the breakpoint hover and in the breakpoints view. Markdown and command links are supported."), type: 'string' } } </ins> } } }

Discussion:
Continuing This is just a flag in Example: In this case, vscode is in control of when and where to show this message.
Is a good name? Drop the ?
If I see some "messages" related to a debugger, I first think of something like DAP messages. I would only use this property to drive some feature in the UI and it feels good to tie it to that. But if feels awkward I don't have a strong opinion.
Change:
const delegate: IContextViewDelegate = { getAnchor: () => { return { x: (window.innerWidth / 2) - (DEFAULT.WIDTH / 2), y: DEFAULT.TOP }; }, render: (container) => { <ins> container.classList.add('accessible-view-container'); </ins> return this._render(provider, container); }, onHide: () => {

Discussion:
Testing GitHub Pull Request extension. Open GitHub view on the side. Hover over an issue, and put focus in it F2 to open Accessibility View. Nothing happens I could not get the Accessibility View to work with any hover. What am I missing here?
Hm, any errors in the dev tools console?
Yeah they're not working in the scm view for me
This still does not work for me for the GitHub issues view. can you reproduce with the GitHub issues view? You should just install the GH PR extension and you should get the issues view and you can try out this there. Thanks
Here's what I see in the GH PR view - I'll try issues
it's also working for me in the github issues view - I'm using the keyboard shortcut of . are you? also works for me if I hover and click.
Works now. I was doing something wrong. Thank you. Adding verified.
Change:
import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; import { isEqualAuthority } from 'vs/base/common/resources'; import { isWeb } from 'vs/base/common/platform'; <ins> import { IFileService } from 'vs/platform/files/common/files'; </ins> export const WORKSPACE_TRUST_ENABLED = 'security.workspace.trust.enabled'; export const WORKSPACE_TRUST_STARTUP_PROMPT = 'security.workspace.trust.startupPrompt';

Discussion:
I have a window that should be trusted, but is in Restricted mode. When I click "Trust" on the workspace trust management page, nothing happens. Here's what I'm doing, not sure what is important Clone a the windows remote and open in remote-ssh from a mac Debug the extension, open some folder The folder is already in the trusted list: <img width="1427" alt="image" src="https://user-"But when I click "Trust Parent", that works
I've been hitting this quite regularly for the past few months, also with (Windows) SSH remotes. I haven't been able to nail down what triggers it but give me a few attempts at reopening the remote and it'll always get into the bad untrusted state. Clicking Trust does nothing. In order to "re-trust" the workspace, I need to delete one of the bolded entries and then click Trust. ! Windows 11, VS Code 1.72.1 (user).
Okay I could not reproduce this myself, but my hunch is that this is a drive letter capitalization issue. I do not know why this is inconsistent, however. are you able to reproduce the state still? If so, can you help debug this check
Yeah, it's a drive capitalization issue. My workspace has a capital C:, the trust info has lowercase
! I'm experiencing a similar issue with VScode. It's launching in the restricted mode all the time regardless of whether I hit <kbdTrust</kbdin the past or not. This have been happening over the last few monthes or so already. Event though it's convenient that the vscode is prevented from wasting cpu & i/o time upon launching (I've over 3 apps opened daily) by the trust-wall, I'm still considering this an issue.
are you also using remote ssh?
No, I don't. I don't think that the issue with remote SSH connection.
can you provide more information about your setup. e.g. which patch you have trusted and the path that is being considered "untrusted"
Basically every path I work with everyday. There is also a problem with various tabs that are getting opened everytime computer gets started up. These include "Get started" and "Git Lenses" pages. I have to close them everytime code is started.

<!-- 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!
Change:
const target1 = sinon.stub().returns(nullEvent); instantiationService.stub(ITelemetryService, 'publicLog', target1); <del> instantiationService.stub(ISearchService, searchServiceWithResults([])); </del> <ins> instantiationService.stub(ISearchService, searchServiceWithResults([], { limitHit: false, messages: [], results: [] })); </ins> instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject = instantiationService.createInstance(SearchModel);

Discussion:
to , run a text search search is running, hit cancel on the "downloading repository index..." notification in the bottom right corner :bug: search view should show two messages (see below) but only the first one shows up !
Saw the notification about indexing but it was before I clicked search and now whenever I click search I don't see the notification come up.
I believe that you can try to do this with a larger repo (like ), and there should be enough time to cancel the index. Not too sure how to remove the index once it's downloaded, but you can try that first!
You can delete the downloaded index with the Delete All Repository Indexes command
The search result message changed but I see two messages at least !
Change:
}, description: { description: nls.localize('snippetSchema.json.description', 'The snippet description.'), <del> type: 'string' </del> <ins> type: ['string', 'array'] </ins> } }, additionalProperties: false

Discussion:
While creating a user snippet, the rule must be like this: If I want to show a lot of description, I must write a huge string which includes many escape characters like this: It maybe a good idea that option receive a list value, like the :
The Version infomations: Code Version: 1.30.1 (user setup) Commit: Date: 2018-12-18T18:12:07.165Z Electron: 2.0.12 Chrome: 61.0.3163.100 8.9.3 V8: 6.1.534.41 OS: Windows_NT x64 10.0.
Can you guide me on resolving this issue?
sure, checkout , and
Change:
import * as nls from 'vs/nls'; import { MenuId, MenuRegistry } from 'vs/platform/actions/common/actions'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; <ins> import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; </ins> import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';

Discussion:
Reproduce: output panel click to open context menu The and should be hidden: <img width="1440" alt="image" src="https://user-"
Will be fixed for Share with
Fixed for Add to Watch as well
Change:
assert(_minimumHeight <= _maximumHeight, 'gridview view minimum height must be <= maximum height'); } <del> layout(width: number, height: number): void { </del> <ins> layout(width: number, height: number, top: number, left: number): void { </ins> this._width = width; this._height = height; <del> this._onDidLayout.fire({ width, height }); </del> <ins> this._top = top; this._left = left; this._onDidLayout.fire({ width, height, top, left }); </ins> } focus(): void {

Discussion:
Was finally able to repo this but not reliably. It seems to rely on a new being created, but this doesn't always happen. The most reliable repo for me: with a notebook and text editor in a single editor group the notebook editor down to create a new group below the text editor grab the notebook editor and drag it right to move the bottom editor to the right I think the root cause is that the notebook widget is passed the wrong position. I'm going to work around this by making the notebook editor ignore the position it is given, however this will also undo the performance fixes we made this iteration for notebook layout I don't fully understand the grid layout code but it seems that is being set incorrectly in cases where a new BranchNode/SplitView is created. Here's what I see happening after step 3 of the repo above: setter is called calls which creates a new the constructor, a new Split View is created is called on it. At this point, of the split view is: the time layout is called on the notebook editor widget, is computed as zero. This results in the wrong layout. Looking at the code, we can see that is passed in as the absolute offset in step 4: <img width="1104" alt="Screenshot 2022-11-30 at 12 48 54 PM" src="https://user-"If I then slightly resize the window, here's what happens: call on the split View for the new group now is: we layout the notebook editor, is now correctly computed as Originally posted by in
Change:
var telemetryReporter: TelemetryReporter | null; <ins> interface IToken { type: string; map: [number, number]; } interface MarkdownIt { render(text: string): string; parse(text: string): IToken[]; } class MarkdownEngine { private _markdownIt: MarkdownIt | undefined; private get markdownIt(): MarkdownIt { if (!this._markdownIt) { const hljs = require('highlight.js'); const mdnh = require('markdown-it-named-headers'); const md = require('markdown-it')({ html: true, highlight: (str: string, lang: string) => { if (lang && hljs.getLanguage(lang)) { try { return `<pre class="hljs"><code><div>${hljs.highlight(lang, str, true).value}</div></code></pre>`; } catch (error) { } } return `<pre class="hljs"><code><div>${md.utils.escapeHtml(str)}</div></code></pre>`; } }).use(mdnh, {}); this._markdownIt = md as MarkdownIt; } return this._markdownIt; } render(text: string): string { return this.markdownIt.render(text); } parse(text: string): IToken[] { return this.markdownIt.parse(text); } } const FrontMatterRegex = /^---s*(.|s)*?---s*/; </ins> export function activate(context: vscode.ExtensionContext) { let packageInfo = getPackageInfo(context); telemetryReporter = packageInfo && new TelemetryReporter(packageInfo.name, packageInfo.version, packageInfo.aiKey); <del> let provider = new MDDocumentContentProvider(context); let registration = vscode.workspace.registerTextDocumentContentProvider('markdown', provider); </del> <ins> const engine = new MarkdownEngine(); const contentProvider = new MDDocumentContentProvider(engine, context); const contentProviderRegistration = vscode.workspace.registerTextDocumentContentProvider('markdown', contentProvider); const symbolsProvider = new MDDocumentSymbolProvider(engine); const symbolsProviderRegistration = vscode.languages.registerDocumentSymbolProvider({ language: 'markdown' }, symbolsProvider); </ins> let d1 = vscode.commands.registerCommand('markdown.showPreview', showPreview); let d2 = vscode.commands.registerCommand('markdown.showPreviewToSide', uri => showPreview(uri, true)); let d3 = vscode.commands.registerCommand('markdown.showSource', showSource); <del> context.subscriptions.push(d1, d2, d3, registration); </del> <ins> context.subscriptions.push(d1, d2, d3, contentProviderRegistration, symbolsProviderRegistration); </ins> vscode.workspace.onDidSaveTextDocument(document => { if (isMarkdownFile(document)) { const uri = getMarkdownUri(document.uri); <del> provider.update(uri); </del> <ins> contentProvider.update(uri); </ins> } }); vscode.workspace.onDidChangeTextDocument(event => { if (isMarkdownFile(event.document)) { const uri = getMarkdownUri(event.document.uri); <del> provider.update(uri); </del> <ins> contentProvider.update(uri); </ins> } });

Discussion:
It's very hard to navigate a large markdown file, such as our release notes. Outline information would be very helpful, let's do this!
See
Change:
height: 100%; width: 100%; white-space: nowrap; <ins> overflow: hidden; </ins> } .monaco-table > .monaco-split-view2 {

Discussion:
Type: <bBug</bin a small window, with multiple tab groups, open the keyboard shortcuts page in the left tab group. Mouse over the keyboad shortcuts view :bug: column UI shows up in the editor to the right VS Code version: Code - Insiders 1.72.0-insider (, 2022-09-22T07:20:03.786Z) OS version: WindowsNT x64 10.0. Modes: Sandboxed: Yes <details<summarySystem Info</summary </details<details<summaryExtensions (30)</summaryExtensionVersion ------ Bookmarks13.3.1 tsl-problem-matcher0.6.2 wwbd2022.1.0 vscode-eslint2.2.6 python-environment-manager1.0.4 gitlens-insiders2022.9.2205 EditorConfig0.16.4 prettier-vscode9.8.0 copilot1.46.6822 vscode-pull-request-github0.51. vscode-test-explorer2.21.1 svg1.4.20 prettify-json0.0.3 vscode-language-pack-de1.72. vscode-dotnet-runtime1.5.0 python2022.15. vscode-pylance2022.9.30 data-wrangler0.0.461 jupyter2022.9. jupyter-keymap1.0.0 jupyter-renderers1.0.9 remote-containers0.252.0 remote-ssh0.87. remote-wsl0.66.3 js-debug-nightly2022.9.717 remote-explorer0.1. test-adapter-converter0.1.6 vscode-github-issue-notebooks0.0.119 vscode-js-profile-flame1.0.4 vscode-yaml1.10.1 </details<details<summaryA/B Experiments</summary</details<!-- generated by issue reporter --
!
Is this table issue?
Change:
} } <del> this.onlyTags.add(TestTag.namespace(match[1], tagId)); </del> <ins> if (match[0].startsWith('!')) { this.excludeTags.add(TestTag.namespace(match[1], tagId)); } else { this.includeTags.add(TestTag.namespace(match[1], tagId)); } </ins> nextIndex++; }

Discussion:
<!-- Do Not Delete This! featurerequesttemplate --<!-- Please read our Rules of Conduct: --<!-- Please search existing issues to avoid creating duplicates. --Splitting this out from In the Test UI you can filter by text or exclude text using and filter by a . It would be nice if we could also negate tags in the filter like to exclude a specific tag. <!-- Describe the feature you'd like. --
Starting point, this is where tag filtering happens:
Change:
this._screenReaderSupport.writeScreenReaderContent(); })); this._register(editContextAddDisposableListener(this._editContext, 'compositionstart', (e) => { <del> const position = this._context.viewModel.getPrimaryCursorState().viewState.position; </del> <ins> const position = this._context.viewModel.getPrimaryCursorState().modelState.position; </ins> const newCompositionRange = Range.fromPositions(position, position); this._compositionRangeWithinEditor = newCompositionRange; // Utlimately fires onDidCompositionStart() on the editor to notify for example suggest model of composition state

Discussion:
Enable the setting which enabled the native edit context adoption (make sure to reload the editor) Toggle word wrap on Resize the editor, so one of the lines is wrapped Type on that line Part of the line is deleted/incorrectly edited
Looks like this could be an issue with the coordinate system chosen too.
Change:
once "^1.3.0" path-is-absolute "^1.0.0" <del> glob@^10.3.10: </del> <ins> glob@^10.0.0, glob@^10.3.10: </ins> version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==

Discussion:
<img width="415" alt="image" src=""Looks localized here though, and hasn't changed in 13 months
language pack looks ok too... Looking into this some more... it seems that the new lines aren't being handled properly.
This still repros :/ is the loc pipeline maybe not running?
it is the newlines... which I thought I fixed... sigh... They are being escaped in the language pack: if I manually delete these extra slashes locally, the problem goes away.
Update... the text has change: Now it's using when it should use and I think I know why. So exporting looks find: is turned in to (we do this manually and it's the XML way to say ) but what we get from the translators... they replace with actual new lines That's not what I was expecting. I would expect them to use the encoded characters but they're not. hacky quick fix that fixes likely most of the scenarios: more accurate longer fix: now that I think about it, this is probably the correct workaround for extensions as well
<img alt="image" src=""Looks like it works now