jiebi/CodeConvo huggingface dataset:
Change:
precondition: ContextKeyExpr.and( _ctxHasCallHierarchyProvider, PeekContext.notInPeekEditor <del> ) </del> <ins> ), f1: true </ins> }); }

Discussion:
Testing <img width="497" alt="image" src=""<img width="667" alt="image" src=""
same is true for "Peek Type Hierarchy"
Hi Rob and Johannes, Would you mind if I took a crack at this issue? I am just starting open source, and I think this would be a great learning experience to do!
I stand in line
Hey have you started working on this issue?
Yes I have! I have already wrote code for this issue, just haven't made a pr yet :)
Hey can you take a little time and help me if you have resolved this issue how you did it? just a brief, also where is your pr I want to take a look at it!
It's been quite a while that no updates about the fix is coming out, so I've committed mine in .
To verify: open a TS file, wait the language service to be ready select F1 and type Peek Call Hierarchy
Change:
const visibleRanges = editor.getVisibleRanges(); if (visibleRanges.length > 0) { visiblePosition = visibleRanges[0].getStartPosition(); <ins> const cursorPos = editor.getPosition(); if (cursorPos) { const isVisible = visibleRanges.some(range => range.containsPosition(cursorPos)); if (isVisible) { // Keep cursor pos fixed if it is visible visiblePosition = cursorPos; } } </ins> const visiblePositionScrollTop = editor.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column); visiblePositionScrollDelta = editor.getScrollTop() - visiblePositionScrollTop; }

Discussion:
I think the editor used to preserve the vertical position of the line where the the cursor is in. It jumps now: ! Repro steps: Enable Code Lenses for TypeScript Navigate to a symbol in a file that has not been opened yet Notice that the editor reveals the symbol correctly, but without code lenses yet Notice that the editor jumps once code lenses appear Verification steps: Observe that the line the cursor is in does not jump anymore. If I don't misremember, there was a change made here recently?
No changes for code lens since long. Doesn't reproduce for me. Can yo consistently repro? Can you try without custom settings?
The current logic is to keep the first line in the viewport stable. A good improvement might be to keep the line where the cursor is stable (if it's in the viewport), but that is not what we have implemented. PR welcome.
Oh, somehow I didn't realizing the jumping then. Did you open this file before in the VS Code session? In the first frame of your screenrecording where shows, the code lens feature already reserved some (empty) space to prevent layout shifts (which I don't think the feature knows the first time the text model is opened): !
Between reloads the slots are persisted and optimistically shown for a couple of seconds so that the actual extension/provider can compute theirs (which is usually the same)
I think there is something fishy going on with persisting the code lens cache ().
<!-- UNABLETOLOCATECOMMITMESSAGE repo --Issue marked as unreleased but unable to locate closing commit in repo history. If this was closed in a separate repo you can add the label directly, or comment .
<!-- UNABLETOLOCATECOMMITMESSAGE --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
Closing in favor of (which proposes one possible solution to this). To be honest though, I think is what caused my feeling of this happening much more often.
Change:
let metadata = this._decodeMetadata(data.tokens2[(token2Index << 1) + 1]); result += `<table class="tm-metadata-table"><tbody>`; <del> result += `<tr><td class="tm-metadata-key">language</td><td class="tm-metadata-value">${escape(metadata.languageIdentifier.language)}</td>`; result += `<tr><td class="tm-metadata-key">token type</td><td class="tm-metadata-value">${this._tokenTypeToString(metadata.tokenType)}</td>`; result += `<tr><td class="tm-metadata-key">font style</td><td class="tm-metadata-value">${this._fontStyleToString(metadata.fontStyle)}</td>`; result += `<tr><td class="tm-metadata-key">foreground</td><td class="tm-metadata-value">${Color.Format.CSS.formatHexA(metadata.foreground)}</td>`; result += `<tr><td class="tm-metadata-key">background</td><td class="tm-metadata-value">${Color.Format.CSS.formatHexA(metadata.background)}</td>`; </del> <ins> result += `<tr><td class="tm-metadata-key">language</td><td class="tm-metadata-value">${escape(metadata.languageIdentifier.language)}</td></tr>`; result += `<tr><td class="tm-metadata-key">token type</td><td class="tm-metadata-value">${this._tokenTypeToString(metadata.tokenType)}</td></tr>`; result += `<tr><td class="tm-metadata-key">font style</td><td class="tm-metadata-value">${this._fontStyleToString(metadata.fontStyle)}</td></tr>`; result += `<tr><td class="tm-metadata-key">foreground</td><td class="tm-metadata-value">${Color.Format.CSS.formatHexA(metadata.foreground)}</td></tr>`; result += `<tr><td class="tm-metadata-key">background</td><td class="tm-metadata-value">${Color.Format.CSS.formatHexA(metadata.background)}</td></tr>`; if (metadata.background.isOpaque() && metadata.foreground.isOpaque()) { result += `<tr><td class="tm-metadata-key">contrast ratio</td><td class="tm-metadata-value">${metadata.background.getContrastRatio(metadata.foreground).toFixed(2)}</td></tr>`; } else { result += '<tr><td class="tm-metadata-key">Contrast ratio cannot be precise for colors that use transparency</td><td class="tm-metadata-value"></td></tr>'; } </ins> result += `</tbody></table>`; let theme = this._themeService.getColorTheme();

Discussion:
Since it has the info about both & it would be handy to show the contrast ratio in the widget.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.516 --<!-- potentialduplicates_comment --
We could probably do this, from w3c: and using that calculation:
Probably round it off (1.074) to 1.1 or 1.07 For colors containing alpha value it should put a warning, something of the sort .
There's actually already a function in vscode And the poor thing has 0 references(uses).
Change:
group: '3_compare', order: 30, command: selectForCompareCommand, <del> when: ContextKeyExpr.and(ResourceContextKey.HasResource, WorkbenchListDoubleSelection.toNegated()) </del> <ins> when: ContextKeyExpr.and(ResourceContextKey.HasResource, isFileOrUntitledResourceContextKey, WorkbenchListDoubleSelection.toNegated()) </ins> }); const compareSelectedCommand = {

Discussion:
VSCode Version: 1.52.1 OS Version: Windows 10 Steps to Reproduce: a WebView tab, such as the Markdown preview. click on it in the Open Editors Section, and select "Select for Compare". click on any other item and select "Compare with Selected". ! Does this issue occur when all extensions are disabled?: Yes
//cc not sure we have a context key to use here already
Code pointer We would need to use that context key for all the compare context menu actions in the Open Editors view
isn't this just a matter of using for this command? We seem to be using this also to limit commands such as "Copy"?
you are correct, I checked and this is indeed the context key we needed here.
Will have to revert this due to
PR:
/verified
Change:
options: { after: { content: 'injected1' }, description: 'test1', <ins> showIfCollapsed: true </ins> }, range: new Range(1, 1, 1, 1), }]);

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, the inlay hints will clean and shows again as scheduler's strategy. It's might not friendly if you are editing some line who has many hints. I have an idea: Clean all hints where the cursor’s line when we are editing the code and append new hints by the scheduler. I think It's might improve the experience about inlay hints.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.494 --<!-- potentialduplicatescomment --
/gifPlease
!
I think inlay hints should disappear immediately if the surrounding text is deleted. Afaik, currently, when text gets deleted, decorations inside of that text get collapsed but are not deleted.
Yes, I agree that hints should disappear immediately when their "anchor" position is removed. Maybe it's not so easy to know what remove actually means in this case. Arguably this is an editor bug as I was expecting this to work?
I wouldn't call this a bug - decorations are never removed automatically. Alex suggests (I asked him before his vacation): I also suggest to extend the inlay hints API so that a hint refers to a range. The hint itself then can either be after or before the range. The range allows to better predict what should happen with the hint if the text changes. With injected text, we now have two cursor stops around inlay hints - both refer to the same model position. Maybe the move behavior of inlay text should depend on the view position where the text change was caused from? I suggest to think about how we can better predict synchronously how a text change affects inlay hints.
This is how we started, mostly to optionally support overlay hints, and everyone was confused about ranges for inlay hints. Using a range with before/after screams "position" and I don't want to leak an implementation detail into the API. We would also still have the case of empty ranges... I'd rather create "fake ranges" from positions so that I can use the notion of collapsed ranges.
I have pushed a change () to use the range of touching words of inlay positions (when possible).

In that case will be and my expectation was that decorations hide/disappear when removing all their text.. is that a bug in decorations land or am I using this wrong? Should I listen to decoration changes and "manually" remove them?
I think so, decorations are not removed automatically.
But what does mean then?
Ah, maybe I forgot to consider that flag for injected text, I'll look into it tomorrow.
Change:
} } } <ins> this._allWorkspaceRecommendedExtensions = tmpAllWorkspaceRecommendations; </ins> this._allIgnoredRecommendations = distinct([...this._globallyIgnoredRecommendations, ...this._workspaceIgnoredRecommendations]); this.refilterAllRecommendations(); }));

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: --In most recent insiders. <!-- Use Help Report Issue to prefill these. --Steps to Reproduce: " a few times, sometimes extensions will show up, but not have their badge. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
This may only be an issue in multi-root workspaces
Change:
id: MenuId.InlineCompletionsActions, description: localize('inlineCompletions.actions', "The actions shown when hovering on an inline completion"), supportsSubmenus: false, <del> proposed: 'inlineCompletions' </del> <ins> proposed: 'inlineCompletionsAdditions' </ins> }, ];

Discussion:
(edited by We use this issue to track the progress of the Inline Completions API. The currently proposed API can be found in . There is a sample extension . Before this API can be finalized, we need to figure out these items at least: [x] How can inline completions interact with completions? (Currently, inline completions are hidden when autocomplete shows up and if there is an inline completion, autocomplete does not show up automatically)
why is this proposal not still open? Normally for proposals, we keep them open until the api is finalized and shipped. So that users/extension authors can track the proposal more easily.
Trying to copy and get 404. Is this link dead? This makes the sample in vscode: useless as well. Can you please help?
They have an updated way to get the file. First you have to change the to in the file. Then run to download the latest version of and then run . See more (if the link doesn't scroll down to the "updated api proposal structure" you have to control f it).
Hi folks! Is the API still likely to be released in April as mentioned in ?
it is currently assigned to April and that is our plan. It might slip to May depending on how testing and feedback from Extensions that use this proposed API goes. I suggest to follow this issue for more details. Thanks!
Hello! While trying out the sample package (). I receive the following errors. I also attempted the method you specified and the methods mentioned in the readme. In addition, I also tried the following npm commands: Npm install Npm run postinstall Is this sample still up to date?
good catch. I have tackled the outdated extension via this PR Once we get it approved I will merge it in and then the sample should be up to date. Thanks
Looks like this is on mainline? Any idea when it will be released beyond insiders?
this is assigned to the May milestone. Which means it is part of our May release which usually gets shipped first 10 days of the following month. So this one should be available on Thursday.
amazing! Thanks so much for getting back to me, I'll be deving accordingly :)
I have opened this discussion for any follow up questions since we have done the finalization
Change:
default: 'view', description: localize('terminal.integrated.defaultLocation', "Controls where newly created terminals will appear.") }, <del> [TerminalSettingId.ShellIntegrationCommandIcon]: { </del> <ins> [TerminalSettingId.ShellIntegrationDecorationIconSuccess]: { </ins> type: 'string', default: 'primitive-dot', <del> description: localize('terminal.integrated.shellIntegration.commandIconSuccess', "Controls the icon that will be used for each command in terminals with shell integration enabled that do not have an associated exit code. Set to '' to hide the icon.") </del> <ins> markdownDescription: localize('terminal.integrated.shellIntegration.decorationIconSuccess', "Controls the icon that will be used for each command in terminals with shell integration enabled that do not have an associated exit code. Set to `''` to hide the icon or disable decorations with `#terminal.integrated.shellIntegration.decorationsEnabled#`") </ins> }, <del> [TerminalSettingId.ShellIntegrationCommandIconError]: { </del> <ins> [TerminalSettingId.ShellIntegrationDecorationIconError]: { </ins> type: 'string', default: 'error-small', <del> description: localize('terminal.integrated.shellIntegration.commandIconError', "Controls the icon that will be used for each command in terminals with shell integration enabled that do have an associated exit code. Set to '' to hide the icon.") </del> <ins> markdownDescription: localize('terminal.integrated.shellIntegration.decorationIconError', "Controls the icon that will be used for each command in terminals with shell integration enabled that do have an associated exit code. Set to `''` to hide the icon or disable decorations with `#terminal.integrated.shellIntegration.decorationsEnabled#`.") </ins> }, <del> [TerminalSettingId.ShellIntegrationCommandIconDefault]: { </del> <ins> [TerminalSettingId.ShellIntegrationDecorationIcon]: { </ins> type: 'string', default: 'circle-outline', <del> description: localize('terminal.integrated.shellIntegration.commandIconDefault', "Controls the icon that will be used for skipped/empty commands. Set to '' to hide the icon.") </del> <ins> markdownDescription: localize('terminal.integrated.shellIntegration.decorationIcon', "Controls the icon that will be used for skipped/empty commands. Set to `''` to hide the icon or disable decorations with `#terminal.integrated.shellIntegration.decorationsEnabled#`") </ins> }, [TerminalSettingId.TabsFocusMode]: { type: 'string',

Discussion:
Currently you can disable them via: But this is not particularly easy and the decorations still end up rendering. We should have a switch that disables them outright, including adding them to xterm.
<img width="1111" alt="Screen Shot 2022-02-23 at 5 04 01 PM" src="https://user-"It is enabled even though shell integration is off... But thanks for the fix, now i can go back to using the integrated terminal! EDIT: the fix doesn't work, guess i'm stuck with iterm2 for now...
they're rectangles so you're probably on a pretty old build (1 week+?), updating will probably fix it for you.
are there any verification steps?
It's still unreleased, but use to disable them.
Change:
const fallbackMatchers: RegExp[] = [ // Python style error: File "<path>", line <line> /^ *File (?<link>"(?<path>.+)"(, line (?<line>d+))?)/, <del> // A C++ compile error /^(?<link>(?<path>.+)((?<line>d+),(?<col>d+))) :/, </del> <ins> // Some C++ compile error formats: // C:foobar baz(339) : error ... // C:foobar baz(339,12) : error ... // C:foobar baz(339, 12) : error ... // C:foobar baz(339): error ...       [#178584, Visual Studio CL/NVIDIA CUDA compiler] // C:foobar baz(339,12): ... // C:foobar baz(339, 12): ... /^(?<link>(?<path>.+)((?<line>d+)(?:, ?(?<col>d+))?)) ?:/, // C:foo/bar baz:339 : error ... // C:foo/bar baz:339:12 : error ... // C:foo/bar baz:339: error ... // C:foo/bar baz:339:12: error ...     [#178584, Clang] /^(?<link>(?<path>.+):(?<line>d+)(?::(?<col>d+))?) ?:/, </ins> // The whole line is the path /^ *(?<link>(?<path>.+))/ ];

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 Yes <!-- 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. --Version: 1.76.2 (user setup) Commit: Date: 2023-03-14T17:55:54.936Z Electron: 19.1.11 Chromium: 102.0.5005.196 16.14.2 V8: 10.2.154.26-electron.0 OS: Windows_NT x64 10.0. Sandboxed: No Problem: There are some situations where the a path cannot be completely be detected as a link when spaces are contained in the path. This can be easily be reproduced when a compilation error/warning is reported from a file in Program Files (Windows). Here are some example of file paths not being detected properly with different compilers. Visual Studio (CL) ! Clang: ! nvcc (NVIDIA CUDA compiler) ! Surprisingly, this use case works (nvcc): ! Steps to Reproduce: a C++ file in a folder that contains a space that file in the terminal (I am launching the compiler as a task)
I believe this is already fixed, can you see if you can reproduce in the ? /label info-needed
The link improvements that cover this were in 1.75: This is why the 4th case is working.

Will look into it
I'm surprised to see the 4th case working considering the regex requires a space before the
I see the column is required above which is wrong
I am reproducing the same behavior with the Insider build : Version: 1.77.0-insider (user setup) Commit: Date: 2023-03-29T09:56:00.839Z Electron: 19.1.11 Chromium: 102.0.5005.196 16.14.2 V8: 10.2.154.26-electron.0 OS: Windows_NT x64 10.0. Sandboxed: Yes
Thank you for your quick response!
Change:
"config.enableSmartCommit": "Commit all changes when there are no staged changes.", "config.smartCommitChanges": "Control which changes are automatically staged by Smart Commit.", "config.smartCommitChanges.all": "Automatically stage all changes.", <del> "config.smartCommitChanges.tracked": "Automatically staged tracked changes only.", </del> <ins> "config.smartCommitChanges.tracked": "Automatically stage tracked changes only.", </ins> "config.suggestSmartCommit": "Suggests to enable smart commit (commit all changes when there are no staged changes).", "config.enableCommitSigning": "Enables commit signing with GPG.", "config.discardAllScope": "Controls what changes are discarded by the `Discard all changes` command. `all` discards all changes. `tracked` discards only tracked files. `prompt` shows a prompt dialog every time the action is run.",

Discussion:
<!-- Do Not Delete This! bugreporttemplate --<!-- Please read our Rules of Conduct: --<!-- 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: 1.44.0 OS Version: PopOS! 19.10 Steps to Reproduce: Not necessary, it's just a typo._ <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No Yes. The description string for is , should be . I know this is a very minor cosmetic issue, but I thought I bring it up anyway.
Change:
const extensionTestsPath = originalFSPath(extensionTestsLocationURI); // Require the test runner via node require from the provided path <del> let testRunner: ITestRunner | undefined; </del> <ins> let testRunner: ITestRunner | INewTestRunner | undefined; </ins> let requireError: Error | undefined; try { testRunner = <any>require.__$__nodeRequire(extensionTestsPath);

Discussion:
Testing create a TS extension as described in and look at 'runTests' is called with testRunnerPath. The hover of says: ts import as testRunner from 'vscode/lib/testrunner'; module.exports = testRunner; Looking at I don't see a testRunner exported.
Ok, thanks. But now my question is about What is the ? How does the user define it? Is it necessary? Why do we use the style. Our APIs typically use Promises...
So the testRunner is the module name passed to . Did we change the contract? Before it had to export a now it has to export a ?
We didn't. That's what the old test runner does: We use the old API since we don't want to break backwards compat. I'd suggest we come up with a better API (see my comment here: ), but it has to be a different name, such as . Here's the relevant code:
I don't really like us having to have this API, but for people who are still importing from , if they don't migrate we don't want to break them.
Actually, for people who have been importing from , they haven't used the signature directly. So if we do add a better signature with a different name such as , we might not need to expose .
The change is to add a new function signature for : When the function returns a promise, wait for the promise, otherwise use the old logic.
Change:
} })); <del> this.stepDisposables.add(this.themeService.onDidColorThemeChange(async () => { // Render again since syntax highlighting of code blocks may have changed const body = await this.detailsRenderer.renderMarkdown(media.path, media.base); if (!isDisposed) { // Make sure we weren't disposed of in the meantime webview.html = body; postTrueKeysMessage(); } })); </del> <ins> if (rawHTML.indexOf('<code>') >= 0) { // Render again when Theme changes since syntax highlighting of code blocks may have changed this.stepDisposables.add(this.themeService.onDidColorThemeChange(async () => { const body = await this.detailsRenderer.renderMarkdown(media.path, media.base); if (!isDisposed) { // Make sure we weren't disposed of in the meantime webview.html = body; postTrueKeysMessage(); } })); } </ins> const layoutDelayer = new Delayer(50);

Discussion:
Getting Started / Welcome on switching a theme The themes flash on desktop. On web you don't see flashing but there is a brief glimpse of the images at the top of the screen before they get laid out.
Maybe I'm abusing it too much but if you cycle through and click the themes it still glitches out.
How fast were you cycling? I was able to see a glitch maybe once when cycling as fast as possible on my MBP, though it may happen more often on different hardware
! Not very fast. See the buttons just dissapear.
Oh, interesting, I haven't seen that one before.