jiebi/CodeConvo huggingface dataset:
Change:
new TextSearchMatch('preview 1', new OneLineRange(1, 4, 11))), aRawMatch('/2', new TextSearchMatch('preview 2', lineOneRange))]; <del> instantiationService.stub(ISearchService, searchServiceWithResults(results)); </del> <ins> instantiationService.stub(ISearchService, searchServiceWithResults(results, { limitHit: false, messages: [], results: [] })); </ins> instantiationService.stub(INotebookSearchService, notebookSearchServiceWithInfo([], undefined)); const testObject: SearchModel = instantiationService.createInstance(SearchModel); await testObject.search({ contentPattern: { pattern: 'somestring' }, type: QueryType.Text, folderQueries });

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:
}; let handleActiveEditorChange = (activeEditor?: TextEditor) => { <del> const uriStr = activeEditor && activeEditor.document.uri.toString(); if (uriStr && fileSchemaErrors.has(uriStr)) { const message = fileSchemaErrors.get(uriStr)!; showStatusBarItem(message); </del> <ins> if (!activeEditor) { return; } const activeDocUri = activeEditor.document.uri.toString(); if (activeDocUri && fileSchemaErrors.has(activeDocUri)) { schemaResolutionErrorStatusBarItem.show(); </ins> } else { <del> statusBarItem.hide(); </del> <ins> schemaResolutionErrorStatusBarItem.hide(); </ins> } };

Discussion:
testing : Yes, there is now a warning icon in the status bar, but it is difficult to understand its purpose: For a json scheme url with a non-existing hostname the hover message shows this: ! For a json scheme url with a non-existing version number the hover message shows this: ! In both cases the error shown is too low-level and the message does not explain that the status refers to the json scheme of the current editor contents.
FYI
Looks like I misinterpreted what kind of messages I'd get from the backend, sorry for that! We could resort to showing a generic message like 'Unable to resolve JSON schema from (url)', which would probably be sufficient for most issues. I also considered logging the error to console (don't know your policy on that), but if we get whole pages in the error message, that's not an option. Displaying a generic message with the URL only would also Otherwise I guess we'd need to parse the error message to find out which kind and display a meaningful message, but that doesn't seem right. Another implication of this is that we'll probably have to re-add at least one layer of error description to vscode-languageservice-json - I always had a prefix with something like "Unable to resolve (something)", but that might have been a code reloading issue or specific to the way I was testing, by cutting the Internet connection and blocking DNS resolutions. Let me know if a generic error message defined only in the client would work.
That's fine. Users don't really see logs.
I can repro with this setting:
Change:
}; } <ins> private gemerateUnknownConfigurationMarker(setting: ISetting): IMarkerData { return { severity: MarkerSeverity.Hint, tags: [MarkerTag.Unnecessary], ...setting.range, message: nls.localize('unknown configuration setting', "Unknown Configuration Setting") }; } </ins> private generateUntrustedSettingCodeActions(diagnostics: IMarkerData[]): languages.CodeAction[] { return [{ title: nls.localize('manage workspace trust', "Manage Workspace Trust"),

Discussion:
Add an unrecognized setting to See that it is correctly dimmed with no warning underline Add it to a language-specific settings block There is a warning, "This setting does not support per-language configuration which is misleading" !
Yeah, this feature is not supported for language specific settings.
To verify: Open and have following snippetMake sure first two settings and are shown dimmed with proper message.
<!-- 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:
assertEdit(content, edits, '{n  "x": "y"n}'); }); <del> test('insert item to empty array', () => { </del> <ins> test('insert item at 0', () => { let content = '[n  2,n  3n]'; let edits = setProperty(content, [0], 1, formatterOptions); assertEdit(content, edits, '[n  1,n  2,n  3n]'); }); test('insert item at 0 in empty array', () => { let content = '[n]'; let edits = setProperty(content, [0], 1, formatterOptions); assertEdit(content, edits, '[n  1n]'); }); test('insert item at an index', () => { let content = '[n  1,n  3n]'; let edits = setProperty(content, [1], 2, formatterOptions); assertEdit(content, edits, '[n  1,n  2,n  3n]'); }); test('insert item at an index im empty array', () => { let content = '[n]'; let edits = setProperty(content, [1], 1, formatterOptions); assertEdit(content, edits, '[n  1n]'); }); test('insert item at end index', () => { let content = '[n  1,n  2n]'; let edits = setProperty(content, [2], 3, formatterOptions); assertEdit(content, edits, '[n  1,n  2,n  3n]'); }); test('insert item at end to empty array', () => { </ins> let content = '[n]'; let edits = setProperty(content, [-1], 'bar', formatterOptions); assertEdit(content, edits, '[n  "bar"n]'); }); <del> test('insert item', () => { </del> <ins> test('insert item at end', () => { </ins> let content = '[n  1,n  2n]'; let edits = setProperty(content, [-1], 'bar', formatterOptions); assertEdit(content, edits, '[n  1,n  2,n  "bar"n]');

Discussion:
Currently json edit allows to insert items in an array at the end by passing . It does not support inserting at an index.
Change:
return response.body.definitions .map((location): vscode.DefinitionLink => { const target = typeConverters.Location.fromTextSpan(this.client.toResource(location.file), location); <ins> if ((location as any).contextStart) { return { originSelectionRange: span, targetRange: typeConverters.Range.fromLocations((location as any).contextStart, (location as any).contextEnd), targetUri: target.uri, targetSelectionRange: target.range, }; } </ins> return { originSelectionRange: span, targetRange: target.range, <del> targetUri: target.uri, </del> <ins> targetUri: target.uri </ins> }; }); }

Discussion:
Issue Type: <bBug</bGitHub Pull Request extension repo Hover on Press CMD key ! Ideally we should be able to implementation of at the top and definition at the bottom, but :( VS Code version: Code - Insiders 1.34.0-insider (, 2019-04-09T05:14:40.620Z) OS version: Darwin x64 18.5.0 <details<summarySystem Info</summary </details<details<summaryExtensions (50)</summaryExtensionVersion ------ vscode-apollo1.5.2 markdown-emoji0.0.7 solargraph0.19.6 npm-intellisense1.3.0 vscode-svgviewer2.0.0 vscode-markdownlint0.26.0 vscode-eslint1.8.2 xml2.4.0 gitlens9.6.0 remotehub0.2.0 tsl-problem-matcher0.0.4 EditorConfig0.13.0 tslint1.0.43 vscode-npm-script0.3.5 vsc-material-theme2.8.2 prettier-vscode1.8.1 flow-for-vscode1.1.1 vscode-pull-request-github-insiders1.98.0 ocaml0.6.43 beautify1.4.11 references-plusplus0.0.5 graphql-for-vscode1.13.0 dotenv1.0.1 theme-monokai-pro-vscode1.1.12 vscode-azurefunctions0.16.0 vscode-language-pack-zh-hans1.33.2 python2019.3.6558 azure-account0.8.1 cpptools0.22.1 Go0.9.2 powershell1.12.0 vscode-typescript-tslint-plugin1.0.0 wordcount0.1.0 vsliveshare1.0.18 debugger-for-chrome4.11.3 debugger-for-ios-web0.1.2 vetur0.18.1 subtitles-editor1.0.2 vscode-versionlens0.22.0 material-icon-theme3.7.0 seti-icons0.1.3 ruby0.22.3 smartpaste0.0.3 toggle0.0.1 vscode-fuzzsymbols0.0.1 sass-indented1.5.1 rust0.6.1 sourcekit-lsp0.0.

1 vscode-lldb1.2.2 vscode-intelli-nav0.0.6 (12 theme extensions excluded) </details<!-- generated by issue reporter --
adding since I believe the implementation peak when holding CMD is determined by VS Code
Yeah, today we count matching bracket (up to a low maximum of lines) to compute the preview. not sure if TypeScript provides  but that would certainly help here
Ok, we do set the but it is just the range of the identifier (). I've opened to track having this information returned from TypeScript
Planning to do work to support API proposed by in June. We would not actually ship this until TS 3.6 however
To verify, please make sure you are using TS 3.6 in your workspace and follow original instructions in the github PR extension's codebase
Change:
return result; } <ins> if (node !== this.root) { const treeNode = this.tree.getNode(node); if (treeNode.collapsed) { node.hasChildren = !!this.dataSource.hasChildren(node.element!); node.stale = true; return; } } </ins> return this.doRefreshSubTree(node, recursive, viewStateContext); }

Discussion:
If you "refresh" an item (with children) by calling and the item is not expanded, the method still gets called. should not be called until the item is expanded, otherwise potentially expensive operations can be run for no visible reason (since the children are hidden).
This could result in unexpected behavior. If an extension currently relies on to always update the children then there would be out-of-date tree items.
How would this result in unexpected behavior? If the tree item has not loaded its children, why should calling refresh on it force its children to load?
I'm concerned that some extension authors have come to depend on the current behavior to keep their internal tree structure updated. I suppose we can try it and see if there are any complaints.
I think a change like this would need to happen in the , as at the custom tree view level we have no knowledge of whether a node is currently expanded or not. Is this something you'd be interested in doing?
Not sure I follow. What describes is exactly how the AsyncDataTree works: children aren't resolved until the user expands the parent the first time.
I am looking for a way to call on the AsyncDataTree such that if the tree item passed in to is collapsed, it will: "invalidate" the children or the tree item and not actually call on that tree item rerender the tree item instead of: calling for the tree item rerendering the tree item
Oh I guess I was wrong, what I said only applies to the next level. But the first node is called with will always have its be called. We can maybe add an option here, or even change the default behavior as I see no reason for collapsed tree nodes to need a call.
any update here? This issue causes GitLens to request way more data than desired in multiple cases (before the user expands them that is).
Thank you!
Thanks for the nudge!
Maybe it's easier if you verify this one.
will verify.
FYI, I tested GitLens with this change (in today's insiders) and it looks good to me!
Change:
const text = lastLine.isEmptyOrWhitespace ? `${textToAppend}n` : `n${textToAppend}n`; edit.insert(document.uri, lastLine.range.end, text); <del> workspace.applyEdit(edit); </del> <ins> await workspace.applyEdit(edit).then(document.save); </ins> }); }

Discussion:
Bug Is there any way to automatically add node_modules to .gitignore or ask the user? I see this every time - <img width="454" alt="image" src="https://user-"VS Code version: Code - Insiders 1.21.0-insider (, 2018-02-20T10:16:08.796Z) OS version: Darwin x64 17.4.0 <details<summarySystem Info</summary </details<details<summaryExtensions (3)</summaryExtensionVersion ------ vscode-eslint1.4.6 prettier-vscode1.1.3 python2018.1.0 </detailsReproduces only with extensions <!-- generated by issue reporter --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.604 --- <!-- score: 0.462 --<!-- potentialduplicatescomment --
Negative Mr. Bot
That's a great idea, would you like to submit a PR?
I'll look into it. Can you put some pointers in the bug? What code files to look at?
This is where that message is sent: Here you have some API to add stuff to the ignore file: You can use basic NodeJS fs stuff to find out whether the user has a folder in the root of the workspace folder.
Thank you
Change:
return undefined; } <del> private async _fireWillEvent<E extends IWaitUntil>(emitter: AsyncEmitter<E>, data: Omit<E, 'waitUntil'>, timeout: number, token: CancellationToken): Promise<IWillRunFileOperationParticipation | undefined> { </del> <ins> private async _fireWillEvent<E extends IWaitUntil>(emitter: AsyncEmitter<E>, data: IWaitUntilData<E>, timeout: number, token: CancellationToken): Promise<IWillRunFileOperationParticipation | undefined> { </ins> const extensionNames = new Set<string>(); const edits: WorkspaceEdit[] = [];

Discussion:
continues Timeout and user-cancellation applies when calling -events. However, we don't expose that in the API and silently stop async-event delivery and ignore results. We could let extension know via
For some big repo, it is possible for LS to parse more then hundreds files (which takes long time), right now, this can't be cancelled since we (LS) don't get any cancellation token (hence, no cancellation request). vscode side acts like it is cancelled, but only front end (vscode) is cancelled, all the backends (LSP and LS) that are actually doing the work are not cancelled. so even if vscode code send new requests (since vscode side is cancelled), LSP/LS won't be able to respond (not all LS is designed to process concurrent requests especially requests that have potential to change LS states). so only front end cancellation won't help much overall experiences.
fyi - this is now a thing and ready for LSP adoption
Neat, thanks
I verified that the token is available on the events, but it wasn't clear to me how to cause a user cancellation of the save/rename/delete. Can this only be done if there's slow file system provider?
You can call of the event with a promise that never or slowly resolves. Eventually the UI shows a progress notification which allows to cancel. That cancel will propagate to the extension.
I have now also verified that the token properly reflects the cancel status.
Thanks!
Change:
} class ListDelegate implements IListVirtualDelegate<TestExplorerTreeElement> { <del> getHeight(_element: TestExplorerTreeElement) { return 22; </del> <ins> getHeight(element: TestExplorerTreeElement) { return element instanceof TestTreeErrorMessage ? 17 + 10 : 22; </ins> } getTemplateId(element: TestExplorerTreeElement) {

Discussion:
Testing It shows the error's message, but doesn't make explicit that there was an error thrown. ! This is from:
Change:
} this.beginCompute(); })); <del> this.globalToDispose.add(this.commentService.onDidSetDataProvider(_ => this.beginCompute())); this.globalToDispose.add(this.commentService.onDidUpdateCommentingRanges(_ => this.beginCompute())); </del> <ins> this.globalToDispose.add(this.commentService.onDidSetDataProvider(_ => this.beginComputeAndProvideStatus())); this.globalToDispose.add(this.commentService.onDidUpdateCommentingRanges(_ => this.beginComputeAndProvideStatus())); </ins> this.globalToDispose.add(this.commentService.onDidSetResourceCommentInfos(e => { const editorURI = this.editor && this.editor.hasModel() && this.editor.getModel().uri;

Discussion:
[x] Indicate when a document has commentable ranges Aria status when a document is opened [x] Add keyboard shortcut for adding a comment [x] Provide commands to go to next and previous commentable range [x] Add an accessible help menu to the comment widget Esc dismisses widget Lists go to next/previous commentable range commands + keyboard shortcuts Lists command and keyboard shortcut to add a comment Lists keyboard shortcut to execute the comment primary action and what the primary action is [x] The Comments view should respect the enter/space = reveal+focus/reveal [x] Make the comment widget toolbar always visible when in screen reader mode
Related to
is the last part of this, and it's almost done!
Mr.KITSANAPAN MEEKEAW
Change:
data: DOM.Dimension; } <ins> export interface IWheelMessage { __vscode_notebook_message: boolean; type: 'did-scroll-wheel'; payload: any; } </ins> export interface IScrollAckMessage { __vscode_notebook_message: boolean;

Discussion:
Issue Type: <bFeature Request</bCurrently it's unclear and difficult to handle scrolling events inside an output which is rendered in the webview due to the disadvantage of our current architecture: we listen to event in the webview and scroll the list view in the main thread accordingly. It means if users attempt to scroll in a native scrollable element, the element will be scrolled in the webview, and also trigger the whole editor to scroll. Events triggered when users scroll on a scrollable element events come right after events, usually in a few milliseconds. If users trigger scroll (by mouse wheel or touchpad) on a non-scrollable element, there are only events. For our scenario, we want to emit events to the main thread, only when there is no event followed right after. This can be archived by delaying the wheel event message to the main thread The catch of this solution is how long should we delay. Usually a scroll event comes after a wheel event in just a few ms but it's not guaranteed. Renderers handle the scrolling themselves. For example, a renderer can stop sending event on a scrollable element. The challenge for renderers is they need to be keep track of any element with it renders and stop events only when necessary. VS Code version: Code - Insiders 1.44.0-insider (, 2020-03-27T05:28:16.333Z) OS version: Darwin x64 19.2.0 <!-- generated by issue reporter --
cc as you mentioned that it would be painful to write a list view in the output.
I would suggest listening to the wheel event, and triggering a scroll in the notebook if there's no parent element that will scroll. You should be able to tell that with something like
thanks very much, the suggestion is pretty solid. ! The only update to 's snippet above is the scroll should stop at the container of each output container instead of going all the way up to body (potentially). The event listener should also then be registered only in notebook webview other than all webviews.
Change:
'Variable 0 will be a file name.' ] }, <del> "{0}: tokenization, wrapping and folding have been turned off for this large file in order to reduce memory usage and avoid freezing or crashing.", </del> <ins> "{0}: tokenization, wrapping, folding and sticky scroll have been turned off for this large file in order to reduce memory usage and avoid freezing or crashing.", </ins> path.basename(model.uri.path) );

Discussion:
Repro: a perf profile a ~100mb TypeScript file (duplicate the contents of a large TS file to make this) perf profile ! It doesn't end up working properly anyway: !
After delete and undo: !
Change:
} // Pass the sequence along to the capability <del> const [command, ...args] = data.split(';'); switch (command) { </del> <ins> const argsIndex = data.indexOf(';'); const sequenceCommand = argsIndex === -1 ? data : data.substring(0, argsIndex); // Cast to strict checked index access const args: (string | undefined)[] = argsIndex === -1 ? [] : data.substring(argsIndex + 1).split(';'); switch (sequenceCommand) { </ins> case VSCodeOscPt.PromptStart: this._createOrGetCommandDetection(this._terminal).handlePromptStart(); return true;

Discussion:
Run a command - for example - then and it doesn't exit that command !
Same issue: Versione: 1.78.1 Commit: Data: 2023-05-04T09:57:42.343Z Electron: 22.5.1 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 Sistema operativo: Darwin x64 18.7.0 In modalità sandbox: No
insiders-releasecontrl+Cbash: no job control in this shell
me too!
I am also facing the same problem and it is quite frustrating since killing the terminal is not killing the process and every time I have identify the pid and kill it from another terminal. I notice that it is tagged "Closed" but it is not fixed as of yet, atleast in Code-Insiders. Please fix this issue or suggest some sort of solution.
me either
this clearly isn't fixed
The issue this was tracking with the error in console is fixed, let's track any separate problem in
Change:
{ urlFormat: '{0}({1},{2})', line: '5', column: '3' }, { urlFormat: '{0} ({1},{2})', line: '5', column: '3' }, { urlFormat: '{0}:{1}', line: '5' }, <del> { urlFormat: '{0}:{1}:{2}', line: '5', column: '3' } </del> <ins> { urlFormat: '{0}:{1}:{2}', line: '5', column: '3' }, { urlFormat: '{0}[{1}]', line: '5' }, { urlFormat: '{0} [{1}]', line: '5' }, { urlFormat: '{0}[{1},{2}]', line: '5', column: '3' }, { urlFormat: '{0} [{1},{2}]', line: '5', column: '3' } </ins> ]; linkUrls.forEach(linkUrl => {

Discussion:
tslint outputs errors in this format: /cc Related:
Doesn't work for me when there's a space between line and col, it looks like tslint is outputting it that way Top goes to correct line/col, bottom just goes to the file !
do you have an example program that outputs like this?
tslint apparently does, from the example above?
I actually can't click at all in this example !
Change:
} }; navigator.serviceWorker.addEventListener('message', versionHandler); <del> assertIsDefined(registration.active).postMessage({ channel: 'version' }); </del> <ins> const postVersionMessage = () => { assertIsDefined(navigator.serviceWorker.controller).postMessage({ channel: 'version' }) }; // At this point, either the service worker is ready and // became our controller, or we need to wait for it. // Note that navigator.serviceWorker.controller could be a // controller from a previously loaded service worker. const currentController = navigator.serviceWorker.controller; if (currentController && currentController.scriptURL.endsWith(swPath)) { // service worker already loaded & ready to receive messages postVersionMessage(); } else { // either there's no controlling service worker, or it's an old one: // wait for it to change before posting the message const onControllerChange = () => { navigator.serviceWorker.removeEventListener('controllerchange', onControllerChange); postVersionMessage(); }; navigator.serviceWorker.addEventListener('controllerchange', onControllerChange); } </ins> }, error => { reject(new Error(`Could not register service workers: ${error}.`));

Discussion:
Issue Type: <bBug</bI could reproduce this issue only in a browser environment (using the project). Starting a jupyter notebook can sometimes fail to start the notebook (the editor keeps showing a blank page and a loading indicator that never stops). It's very frequent in Firefox and less frequent in Chrome. I also have a fix for the issue that I'll be submitting in a PR soon. VS Code version: Code 1.59.1 (Universal) (, 2021-08-19T11:53:52.479Z) OS version: Darwin x64 19.6.0 Restricted Mode: No <!-- generated by issue reporter --