jiebi/CodeConvo huggingface dataset:
Change:
import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; import { AccessibilityCommandId } from 'vs/workbench/contrib/accessibility/common/accessibilityCommands'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; <ins> import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; </ins> export const ID = 'editor.contrib.review';

Discussion:
cc something we should do as a result of discussion with
i think we should use or to indicate this when going to next range since this info is otherwise just strictly visual.
so the idea is the following: command go to next/previous commenting range : "Commenting range lines 4-10" And: on a comment widget : "Comment on lines 3-7" or "Comment on line 3"
I think the latter works well enough already. It's the former that I think we need. !
Actually, I wonder if the precise line number is important. Given a user isn't told what line number they're on when they move their cursor, perhaps instead we could say "spans 4 lines". Since a user has invoked this command, they know that it's a comment range, so we probably want to leave out "comment/commentable" to decrease noise
IMO, the line reference could be useful when users want to backtrace later.
shall we leave out the term 'Comment' here and just say 'lines 730-736' to reduce verbosity?
Or "Lines 1 to 5 can be commented on" as a screen reader user can disrupt it mid message via escape?
I am leaning toward just "Lines 1 to 5" given the user invoked the command so knows it's a comment range already.
Thanks for making the change!
open an editor that has some commentable ranges. Turn on a screen reader. use the command jump to next /previous commenting range. verify you hear the range like "lines 123 to 128" as the cursor's position gets updated.
nothing is being announced for me with that command, I have screen reader optimized and commenting verbosity on
depending on what you have going on otherwise, it will wait to say that since we're using instead of here.
are you seeing it jump to the commenting ranges?
works on my desktop, does not work on my surface laptop - neither the speech viewer nor through volume, nothing is read at all when running that command by NVDA. It is successfully navigating between commentable regions.
sounds like you've verified this works on your desktop. I'm curious to know if other aria alerts are working on your surface laptop - for example, in the chat input, accept a slash command completion. press backspace -you should hear that the state was cleared.
Change:
private doShowInActiveContainer(): void { this.layoutService.activeContainer.appendChild(this.$el); <del> this.trackPixelRatioListener.value = PixelRatio.getInstance(dom.getWindow(this.$el)).onDidChange(() => this.setYCoordinate()); </del> <ins> this.trackPixelRatioListener.value = PixelRatio.getInstance(dom.getWindow(this.$el)).onDidChange( () => this.setCoordinates() ); </ins> } private hide(): void {

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!
Change:
const lineResult = parseSearchResults(document, token)[position.line]; if (!lineResult) { return []; } if (lineResult.type === 'file') { <del> return lineResult.allLocations; </del> <ins> return lineResult.allLocations.map(l => ({ ...l, originSelectionRange: lineResult.location.originSelectionRange })); </ins> } const location = lineResult.locations.find(l => l.originSelectionRange.contains(position));

Discussion:
Testing !
Looking through the code, it seems that it comes from returning multiple from my for the search editor. The problem is with the functionality that allows certain lines to be underlined for mouse definition hover. Instead of underlining the lines individually, it underlines the whole range starting with the start of the first range and ends at the end of the last range. cc
I think the underlines are by the go to definition feature and not by the link provider. Do you think the API is used incorrectly or is there an issue on the UI side?
The UI receives two locations for the definition request. To draw the underline it merges both into a combined range. Looks like it doesn't check if the origin ranges actually contains the position at which the request has been made - I am unsure if that's on purpose or not. So, there might be something in the UI side to fix but the extension also return bogous data. It looks like it return all results when being asks for the definition . That's not how it is intended to work and either a the file itself should be used or no definition should be provided <img width="1461" alt="Screenshot 2023-06-13 at 15 32 19" src=""
I'm not sure if I understand this correctly. What is the position at which the request had been made and what would be wrong with this being the origin? Makes sense. I haven't actually editing anything in this extension before, so I'll take another look at what was intended when it was first implemented.
I'm taking another look at this and I have a few questions about the API. I think that the original intention of using a definition provider was this: so that double-clicking the filename in the search editor would pop up references to the code snippets that are directly below it. Given this, I'm wondering: If I want multiple references listed like this, do I get the provider to return more than one and they would all have the same ? What is the difference between the and ? I read the docs and I don't know the difference between the full target range and the span.
The has two ends - the origin at which it starts and its target to where it goes. The origin defaults to the word at the current position (cursor) but can be refined if that isn't good enough.

The two target ranges are the whole target and its focal point, think of a function where the whole function (comment, signature, body) is and its name is - when navigation a definition link the cursor is placed at the target selection range but the whole targetRange is reveal and/or highlighted etc.
Change:
"source-map": "^0.4.4", "style-loader": "^1.0.0", "ts-loader": "^4.4.2", <del> "tsec": "googleinterns/tsec#630b53fe2b23815c28dd219119cc98dbd59e29b2", </del> <ins> "tsec": "googleinterns/tsec#7bf4ab23686500522341b977b3e2cc04b1f720b1", </ins> "typescript": "4.2.0-dev.20201207", "typescript-formatter": "7.1.0", "underscore": "^1.8.2",

Discussion:
Steps to Reproduce: that 52 of 69 issues are unrelated to security
btw I am seeing 84 errors, many of those are errors for async-import-statements. I am also surprised that complains about the use of trusted types policies. What are we supposed to do with such errors?
84 errors ? After I only see 19 and related issues. The issues are a current limitation of tsec which does not yet understand the Worker construction (we will fix it in tsec and send you and update when it is done, likely sometime next quarter). As for the errors, these are "expected" as they indicate the "vulnerable surface" of your code that requires manual review. In google, usages of are only allowed for the security team, which we use to exposes secure by construction APIs. That being said this does not necessarily translate well to your case, and I will invest some time in the first half of 2021 to: reduce / restrict and review current usages of improve devX around non-TrustedTypes supported browsers The good news is that apart from , it seems that all of your code is Trusted Types compatible & you should be able to start experimenting with enforcing Trusted Types through the header. For reference, here are all the errors I see:
Yeah, the is something new and an oversight. There is also still this then we should we good. I have running locally with trusted types enforced and default policy that logs and haven't found more places
Yeah, after that. I have a feeling that yarn handle these packages well.
Change:
this.parent.removeAttribute('aria-label'); this.parent.title = this.getTooltip(); if (this.extension) { <del> this.parent.setAttribute('aria-label', localize('extension-arialabel', "{0}. {1} Press enter for extension details.", this.extension.displayName)); </del> <ins> this.parent.setAttribute('aria-label', localize('extension-arialabel', "{0}. Press enter for extension details.", this.extension.displayName)); </ins> } }

Discussion:
Extensions smoke tests are failing
This was caused because of two reasons has changed their search strategy and looking for extension by name is broken - label of an extension has string which was a bug introduced recently. Fixed them here -
Change:
this.layoutTrees(dimension); let innerWidth = dimension.width - 24 * 2; // 24px padding on left and right <del> let monacoWidth = (innerWidth > 1000 ? 1000 : innerWidth - 10); </del> <ins> let monacoWidth = (innerWidth > 1000 ? 1000 : innerWidth) - 10; </ins> this.searchWidget.layout({ height: 20, width: monacoWidth }); DOM.toggleClass(this.rootElement, 'narrow', dimension.width < 600);

Discussion:
! See the right side. I think the editor instance width needs to account for the parent padding.
What theme is this?
Monokai
Change:
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 displayName: Generate SBOM (server) inputs: <del> BuildDropPath: $(agent.builddirectory)/vscode-server-darwin </del> <ins> BuildDropPath: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH) </ins> PackageName: Visual Studio Code Server condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'universal')) <del> - publish: $(agent.builddirectory)/vscode-server-darwin/_manifest </del> <ins> - publish: $(agent.builddirectory)/vscode-server-darwin-$(VSCODE_ARCH)/_manifest </ins> displayName: Publish SBOM (server) artifact: vscode_server_darwin_$(VSCODE_ARCH)_sbom condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'universal'))

Discussion:
I noticed in the launcher that today's Darwin server has a nested subdirectory, . This broke our launcher (I initially assumed we changed something), and after checking I noticed that it also causes remote ssh to fail since the binaries are no longer in the expected locations: On the launcher side I can verify that pulling in yesterday's version by adding to the URL fixes the issue
The SSH issue was a separate local problem. Looking at the directories, the contents seem mostly the same structure wise. Not sure why it's extracting differently, since it does not seem to affect remote SSH. Looking into it.
Okay, that was a fun investigation. Yesterday's server's download path was But today's was We would only pop off the first segment of the path when unzipping if it matched the zip name. While the zip was renamed, its nested directory was not, and therefore we would end up with an extra segment in the path. I'll change our logic to just always pop off the first segment, though I think having the zip name match any nested directory is pretty standard so I'll leave this open in case this is worth a tweak.
Related to and
Change:
} async log(options?: LogOptions): Promise<Commit[]> { <ins> const spawnOptions: SpawnOptions = {}; </ins> const args = ['log', `--format=${COMMIT_FORMAT}`, '-z']; if (options?.shortStats) {

Discussion:
SCM Graph Filter from to (There are no results, is this a bug?) the view the view =results are shown for filter state but pill shows the state
Related
Keeping this issue scoped to the following as that is a great find that has to be addressed:
Pushed a change that should improve things, but will continue to look for a long-term fix.
Change:
break; } this._exitCode = exitCodeOrError.code; <ins> if (exitCodeOrError.message.match(/.*error code:s*d{3}.*$/)) { exitCodeOrError.message = `Invalid starting directory ${this.initialCwd}, review your terminal.integrated.cwd setting.`; } </ins> exitCodeMessage = nls.localize('launchFailed.errorMessage', "The terminal process failed to launch: {0}.", exitCodeOrError.message); break; }

Discussion:
This happens when the cwd is invalid, we could give a better error message <img width="645" alt="Screen Shot 2021-09-07 at 12 43 39 PM" src="https://user-"
Is "A native exception occurred during launch" the better error message?
We'd want to detect the error code: 267 part and present something more friendly like the terminal's starting directory doesn't exist, we already have a similar message which catches other cases of this so we'd want to align the wording with that:
Just the part might not have been handled but I managed to fit the rest in
Similar fix to
when I try this, I don't see a notification. in the console, I see:
it should show a notification as well To get this to repro, try commending out the section that handles cwd validation so we try to start the process with an invalid one.
Error handling needs some clean up
Change:
"body": "~~${1:${TM_SELECTED_TEXT}}~~", "description": "Insert strikethrough" }, <ins> "Insert inline math": { "prefix": [ "inline math" ], "body": "$${1:${TM_SELECTED_TEXT}}$", "description": "Insert inline math" }, "Insert fenced math": { "prefix": [ "fenced math" ], "body": [ "$$", "${1:${TM_SELECTED_TEXT}}", "$$" ], "description": "Insert fenced math" } </ins> }

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. --markdown has built-in math render, but there is no math-snippet
FYI
Change:
return this._dirty; } <ins> get hasErrorState() { return false; } get hasConflictState() { return false; } </ins> isModified(): boolean { return this._dirty; }

Discussion:
Set auto save: afterDelay Edit a notebook See the dirty indicator briefly appear after editing
I guess this is
We never did that for custom editors because it requires code to ensure that an editor that is closed but pending to be saved via auto save is really waited upon on shutdown. To further explain: the behaviour is driven by method if you return from that method no dirty indicator will show up this means a user can close an editor with dirty changes as such, components have to ensure that the save continues in the background and even on shutdown Files implement this here: I think the reason we never adopted this for notebooks as that notebooks have a dual model: complex and simple. With simple (which is based on file working copies), we can probably implement this now similar to what files do, but it needs careful testing what happens when you close a notebook quickly enough before auto save finished.
We could revisit this once we remove complex notebook model and friends but the saving of notebooks is more complex than files and I wonder if it's worth it to implement this. Also the dirty indicator is also an indicator that saving is not done yet, which is valuable as saving notebooks is not necessarily instant. what do you think ?
I think it's ok to close if this is complicated. It's also a bit odd that if I edit and immediately close the tab, it asks me whether I want to save, when I've enabled autosave.
with your recent changes in and please take note of Specifically: being able to close an editor that is now not dirty because of auto-save may result in data loss if closing the editor disposes state that is needed for saving. Filed as planned for July. Nevertheless, I appreciate that you are willing to look into this issue
Change:
Type=Application NoDisplay=true StartupNotify=true <del> StartupWMClass=@@NAME_SHORT@@ </del> Categories=Utility;TextEditor;Development;IDE; MimeType=x-scheme-handler/@@URLPROTOCOL@@; Keywords=vscode;

Discussion:
VSCode Version: 1.27.2 (OSS Code, but also happens in the latest VS Code on Ubuntu) OS Version: Arch Linux (kernel 4.18.12-arch1-1-ARCH) When adding Code to the favorite applications in the GNOME environment, a duplicate icon spawns when launching the application. ! Steps to Reproduce: Code to favorite applications in GNOME an instance of Code and switch to the activities overview Does this issue occur when all extensions are disabled?: Yes I'm willing to try to solve the issue if you confirm that it is related to the application.
This also happens on Ubuntu 18.04.1, running GNOME and code . Hovering mouse on top, the favorite icon in the dock says , whereas the duplicate icon, that appears when starting code, says .
Can reproduce. Kubuntu 18.10, kernel 4.18.0, KDE 5.14.3, Code 1.29.1. Steps to reproduce: pin Code to the taskbar. The hover menu shows "Visual Studio Code." Open the application. Instead of opening under the pinned icon, a new icon shows up with description "Visual Studio Code - URL Handler." It sometimes goes away after a reboot, but is mostly unpredictable. I have experienced this problem since Code 1.28.1.
Have same problem
I'm having the same problem - worth noting that someone has asked a question about this behaviour on Ask Ubuntu here: I'm using the latest Code (1.29.1) on Ubuntu 18.10
Change:
const minimatch = require('minimatch'); const coverage = require('../coverage'); const minimist = require('minimist'); <ins> const { takeSnapshotAndCountClasses } = require('../analyzeSnapshot'); </ins> /** * @type {{ build: boolean; run: string; runGlob: string; coverage: boolean; help: boolean; }}

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. --Currently we are manually hunting down memory leaks through Dev Tools. For some areas/components (e.g., notebook), this even needs to be done repeatedly. It would be helpful if we can capture the memory snapshots in CI and write some queries against the snapshot to analyze if there is any potential leaks. A typical manual memory leak analysis for notebook Setup Open OSS Open notebook document A Open notebook document B Close both notebook documents Open Dev Tools, take a heap snapshot Search object, there should be none Search object, there should be none Search object, there should not be more than one (the editor group still holds a reference to the last editor) ! cc
The dev tools also show how an object is leaked, we could analyze the dependencies tree and figure out who is the "culprit"
would be a good API for CI use case on desktop to capture from any non-sandboxed process (Main, Utility - Ext Host, Shared Process, Pty Agent) embedding V8 without using external CDP calls. In the case of sandboxed render process, prefer
I find this topic super interesting as well! I have a prototype project that tries to find memory leaks by looking for leaking event listeners. In the screencast, the event listener count increases from 1175 to 1206 which indicates that there might be a memory leak when opening and closing a notebook editor. The project is in the early phases and in the future I'm hoping to display more detailed output for the event listeners as well as making the tests less flaky. (sorry if I'm interrupting the discussion. I'm hoping that perhaps this could be useful for you)
Change:
fileInfoUri ?? uri, this._editorGroup.activeEditorPane ); <ins> this._model.value = model; </ins> this.domNode.classList.toggle('backslash-path', this._labelService.getSeparator(uri.scheme, uri.authority) === '');

Discussion:
profile on startup and have a css file opened the registers a fs provider for this somehow ends up causing a dom layout via the breadcrumbs <img width="606" alt="image" src="https://user-"
The trigger is that registering a file system causes a label service change event which causes breadcrumbs to re-render. Tho, we can likely optimise this
Change:
cancelWorkspaceTrustRequest(): void; completeWorkspaceTrustRequest(trusted?: boolean): Promise<void>; requestWorkspaceTrust(options?: WorkspaceTrustRequestOptions): Promise<boolean | undefined>; <ins> requestWorkspaceTrustOnStartup(): void; </ins> } export interface IWorkspaceTrustTransitionParticipant {

Discussion:
I created a brand new VM and attached remote-ssh to it, then opened my folder on it. I clicked to trust the folder, then immediately after I was prompted by the terminal to trust the folder again. Every time I open a new folder thereafter I'm again double prompted for trust.
this is how we use the API, is promise for the original prompt not being shared with successive requests or something?
All callers of should be sharing the same promise. I will try to set up a repro today and see if I can reproduce the problem locally.
Here is what is happening: initial workspace trust modal dialog is being displayed there is another workspace trust dialog displayed due to the call the workspace will actually resolve the promise and in the background you can see the terminal is initiated The workspace trust request dialog is not being dismissed. I do have couple of ideas that I will discuss with
The fix will be available in Friday's Insiders release.