jiebi/CodeConvo huggingface dataset:
Code change:
Testing Version: 1.68.0-insider (user setup) Commit: Date: 2022-05-31T05:17:04.479Z Run the command and select Would be nice to get a message in the log
Looks like the the message is not shown as it is of type and is less than than. Would be good to always show it, regardless of the current and the new level. Same problem with the initial message when the output is started.

Related discussion:
text: commands.registerCommand('git.showOutput', () => this.showOutputChannel()); this._disposables.push(this._outputChannel); <del> // Initialize log level </del> <ins> this._disposables.push(workspace.onDidChangeConfiguration(e => { if (e.affectsConfiguration('git.logLevel')) { this.onLogLevelChange(); } })); this.onLogLevelChange(); } private onLogLevelChange(): void { </ins> const config = workspace.getConfiguration('git'); const logLevel: keyof typeof LogLevel = config.get('logLevel', 'Info'); <del> this._currentLogLevel = this._defaultLogLevel = LogLevel[logLevel] ?? LogLevel.Info; this.logInfo(localize('gitLogLevel', "Log level: {0}", LogLevel[this._currentLogLevel])); </del> <ins> this.currentLogLevel = this._defaultLogLevel = LogLevel[logLevel] ?? LogLevel.Info; </ins> } <del> private log(message: string, logLevel: LogLevel): void { if (logLevel < this._currentLogLevel) { </del> <ins> log(message: string, logLevel?: LogLevel): void { if (logLevel && logLevel < this._currentLogLevel) { </ins> return; } <del> this._outputChannel.appendLine(`[${new Date().toISOString()}] [${LogLevel[logLevel].toLowerCase()}] ${message}`); </del> <ins> this._outputChannel.appendLine(`[${new Date().toISOString()}]${logLevel ? ` [${LogLevel[logLevel].toLowerCase()}]` : ''} ${message}`); </ins> } logCritical(message: string): void {
Code change:
Testing Version: 1.68.0-insider (user setup) Commit: Date: 2022-05-31T05:17:04.479Z Run the command and select Would be nice to get a message in the log
Looks like the the message is not shown as it is of type and is less than than. Would be good to always show it, regardless of the current and the new level. Same problem with the initial message when the output is started.

Related discussion:
text: this.log(message, LogLevel.Warning); } <del> logGitCommand(command: string): void { this._outputChannel.appendLine(`[${new Date().toISOString()}] ${command}`); } setLogLevel(logLevel: LogLevel): void { if (this._currentLogLevel === logLevel) { return; } this._currentLogLevel = logLevel; this._onDidChangeLogLevel.fire(logLevel); this.logInfo(localize('changed', "Log level changed to: {0}", LogLevel[logLevel])); } </del> showOutputChannel(): void { this._outputChannel.show(); }
Code change:
Testing Version: 1.68.0-insider (user setup) Commit: Date: 2022-05-31T05:17:04.479Z Run the command and select Would be nice to get a message in the log
Looks like the the message is not shown as it is of type and is less than than. Would be good to always show it, regardless of the current and the new level. Same problem with the initial message when the output is started.

Related discussion:
text: lines.pop(); } <del> outputChannelLogger.logGitCommand(lines.join('n')); </del> <ins> outputChannelLogger.log(lines.join('n')); </ins> }; git.onOutput.addListener('log', onOutput); disposables.push(toDisposable(() => git.onOutput.removeListener('log', onOutput)));
Code change:
Testing Things I would change: make it clear in the picker that selecting a language from the lower list will install it have a button in the picker that installs and syncs it. don't reveal the extension viewlet don't show that dialog <img width="444" alt="capture" src="https://user-"
is there a way to not show this dialog when installing an extension using the Extension management service? Here's the specific line:
How would you make this clearer? I figured since we had a section called that will always be there on Desktop it's implied that must not be installed. What will the default behavior be then when you accept a quick pick item? That it will install but not sync? That's not what the default is for the button in the extension pane so that seems a bit odd to me. This was to give a progress indication. We do the same thing for the Theme picker. I would like to hide this dialog. I didn't see it locally because Settings Sync isn't available in but I asked Sandeep above.
Yes, you can pass machine scoped flag to avoid this. Passing for this flag will not sync the extension and will sync it.
I thought the main reason for the dialog was to inform the user that something is installed. I can easily live with only the picker Since the dialog offered the option, I thought it is important. I can live with the default without a choice. I found it disturbing. I could live without progress or some window progress.

Related discussion:
text: import { IExtensionsViewPaneContainer, VIEWLET_ID as EXTENSIONS_VIEWLET_ID } from 'vs/workbench/contrib/extensions/common/extensions'; import { ViewContainerLocation } from 'vs/workbench/common/views'; import { IExtensionManagementService } from 'vs/platform/extensionManagement/common/extensionManagement'; <ins> import { IProgressService, ProgressLocation } from 'vs/platform/progress/common/progress'; import { localize } from 'vs/nls'; </ins> export class NativeLocaleService implements ILocaleService { _serviceBrand: undefined;
Code change:
Testing Things I would change: make it clear in the picker that selecting a language from the lower list will install it have a button in the picker that installs and syncs it. don't reveal the extension viewlet don't show that dialog <img width="444" alt="capture" src="https://user-"
is there a way to not show this dialog when installing an extension using the Extension management service? Here's the specific line:
How would you make this clearer? I figured since we had a section called that will always be there on Desktop it's implied that must not be installed. What will the default behavior be then when you accept a quick pick item? That it will install but not sync? That's not what the default is for the button in the extension pane so that seems a bit odd to me. This was to give a progress indication. We do the same thing for the Theme picker. I would like to hide this dialog. I didn't see it locally because Settings Sync isn't available in but I asked Sandeep above.
Yes, you can pass machine scoped flag to avoid this. Passing for this flag will not sync the extension and will sync it.
I thought the main reason for the dialog was to inform the user that something is installed. I can easily live with only the picker Since the dialog offered the option, I thought it is important. I can live with the default without a choice. I found it disturbing. I could live without progress or some window progress.

Related discussion:
text: @ILanguagePackService private readonly languagePackService: ILanguagePackService, @IPaneCompositePartService private readonly paneCompositePartService: IPaneCompositePartService, @IExtensionManagementService private readonly extensionManagementService: IExtensionManagementService, <ins> @IProgressService private readonly progressService: IProgressService </ins> ) { } private async writeLocaleValue(locale: string | undefined): Promise<void> {
Code change:
Testing Things I would change: make it clear in the picker that selecting a language from the lower list will install it have a button in the picker that installs and syncs it. don't reveal the extension viewlet don't show that dialog <img width="444" alt="capture" src="https://user-"
is there a way to not show this dialog when installing an extension using the Extension management service? Here's the specific line:
How would you make this clearer? I figured since we had a section called that will always be there on Desktop it's implied that must not be installed. What will the default behavior be then when you accept a quick pick item? That it will install but not sync? That's not what the default is for the button in the extension pane so that seems a bit odd to me. This was to give a progress indication. We do the same thing for the Theme picker. I would like to hide this dialog. I didn't see it locally because Settings Sync isn't available in but I asked Sandeep above.
Yes, you can pass machine scoped flag to avoid this. Passing for this flag will not sync the extension and will sync it.
I thought the main reason for the dialog was to inform the user that something is installed. I can easily live with only the picker Since the dialog offered the option, I thought it is important. I can live with the default without a choice. I found it disturbing. I could live without progress or some window progress.

Related discussion:
text: // Only Desktop has the concept of installing language packs so we only do this for Desktop // and only if the language pack is not installed if (!installedLanguages.some(installedLanguage => installedLanguage.id === languagePackItem.id)) { <del> // Show the view so the user can see the language pack to be installed let viewlet = await this.paneCompositePartService.openPaneComposite(EXTENSIONS_VIEWLET_ID, ViewContainerLocation.Sidebar); (viewlet?.getViewPaneContainer() as IExtensionsViewPaneContainer).search(`@id:${languagePackItem.extensionId}`); </del> // Only actually install a language pack from Microsoft if (languagePackItem.galleryExtension?.publisher.toLowerCase() !== 'ms-ceintl') { <ins> // Show the view so the user can see the language pack that they should install // as of now, there are no 3rd party language packs available on the Marketplace. let viewlet = await this.paneCompositePartService.openPaneComposite(EXTENSIONS_VIEWLET_ID, ViewContainerLocation.Sidebar); (viewlet?.getViewPaneContainer() as IExtensionsViewPaneContainer).search(`@id:${languagePackItem.extensionId}`); </ins> return false; } <del> await this.extensionManagementService.installFromGallery(languagePackItem.galleryExtension); </del> <ins> await this.progressService.withProgress( { location: ProgressLocation.Notification, title: localize('installing', "Installing {0} language support...", languagePackItem.label), }, progress => this.extensionManagementService.installFromGallery(languagePackItem.galleryExtension!, { // Setting this to false is how you get the extension to be synced with Settings Sync (if enabled). isMachineScoped: false, }) ); </ins> } await this.writeLocaleValue(locale);
Code change:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at

Related discussion:
text: import { CancellationToken } from 'vs/base/common/cancellation'; import { KeyCode } from 'vs/base/common/keyCodes'; import { Disposable, DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; <del> import { Constants } from 'vs/base/common/uint'; </del> import { ContentWidgetPositionPreference, IActiveCodeEditor, ICodeEditor, IContentWidget, IContentWidgetPosition, IEditorMouseEvent, MouseTargetType } from 'vs/editor/browser/editorBrowser'; import { ConfigurationChangedEvent, EditorOption } from 'vs/editor/common/config/editorOptions'; import { Position } from 'vs/editor/common/core/position';
Code change:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at

Related discussion:
text: } private _renderMessages(anchor: HoverAnchor, messages: IHoverPart[]): void { <del> // update column from which to show let renderColumn = Constants.MAX_SAFE_SMALL_INTEGER; let highlightRange: Range = messages[0].range; let forceShowAtRange: Range | null = null; for (const msg of messages) { renderColumn = Math.min(renderColumn, msg.range.startColumn); highlightRange = Range.plusRange(highlightRange, msg.range); if (msg.forceShowAtRange) { forceShowAtRange = msg.range; } } </del> <ins> const { showAtPosition, showAtRange, highlightRange } = ContentHoverController.computeHoverRanges(anchor.range, messages); </ins> const disposables = new DisposableStore(); const statusBar = disposables.add(new EditorHoverStatusBar(this._keybindingService));
Code change:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at

Related discussion:
text: this._widget.showAt(fragment, new ContentHoverVisibleData( colorPicker, <del> forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchor.range.startLineNumber, renderColumn), forceShowAtRange ? forceShowAtRange : highlightRange, </del> <ins> showAtPosition, showAtRange, </ins> this._editor.getOption(EditorOption.hover).above, this._computer.shouldFocus, disposables
Code change:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at

Related discussion:
text: description: 'content-hover-highlight', className: 'hoverHighlight' }); <ins> public static computeHoverRanges(anchorRange: Range, messages: IHoverPart[]) { // The anchor range is always on a single line const anchorLineNumber = anchorRange.startLineNumber; let renderStartColumn = anchorRange.startColumn; let renderEndColumn = anchorRange.endColumn; let highlightRange: Range = messages[0].range; let forceShowAtRange: Range | null = null; for (const msg of messages) { highlightRange = Range.plusRange(highlightRange, msg.range); if (msg.range.startLineNumber === anchorLineNumber && msg.range.endLineNumber === anchorLineNumber) { // this message has a range that is completely sitting on the line of the anchor renderStartColumn = Math.min(renderStartColumn, msg.range.startColumn); renderEndColumn = Math.max(renderEndColumn, msg.range.endColumn); } if (msg.forceShowAtRange) { forceShowAtRange = msg.range; } } return { showAtPosition: forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchorRange.startLineNumber, renderStartColumn), showAtRange: forceShowAtRange ? forceShowAtRange : new Range(anchorLineNumber, renderStartColumn, anchorLineNumber, renderEndColumn), highlightRange }; } </ins> } class ContentHoverVisibleData {
Code change:
! I see this sometimes, but it often gets fixed if I try again, or close and reopen the editor, etc. Right now it keeps happening and it's just impossible to click the hover. I don't know how this API works but I assume this is on vscode's side. Happy to set breakpoints and debug
I couldn't reproduce this so I'm not sure what's the root problem. However, I'm saving here a patch which simulates a hover very similar to the one in the gif: <img width="1141" alt="image" src="https://user-"diffn- editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n+ await editor.focusNotebookCell(newCell, newFocusMode, { focusEditorLine: 1 });n
I tried for quite a while but couldn't repro. I think there might be some settings that cause the issue reproduce. Does this reproduce when you comment out all your user settings?
Yeah, it reproes with all settings commented out
Thanks to via we could find a repro. Reproduces consistently when hovering at the end of the line: It turns out it has to do with the range the hover provider returns. If the hover provider returns a range that spans one line above the hover request, the hover will render one line above. If the hover provider returns a range that spans two lines above the hover request, the hover will render two lines above, etc. Here's a simplified patch: https://user-
To verify, use gitlens and hover over the end of the line at
Works great but raises the question, why does gitlens return a hover with a multiline range? And I get a highlight in this region, but it blinks and disappears on line 919, and on other lines, no highlight. !
PR to improve the highlight range at
I'm still seeing the original issue at

Related discussion:
text: <ins> /*--------------------------------------------------------------------------------------------- *  Copyright (c) Microsoft Corporation. All rights reserved. *  Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; import { ContentHoverController } from 'vs/editor/contrib/hover/browser/contentHover'; import { Range } from 'vs/editor/common/core/range'; import { Position } from 'vs/editor/common/core/position'; import { IHoverPart } from 'vs/editor/contrib/hover/browser/hoverTypes'; suite('Content Hover', () => { test('issue #151235: Gitlens hover shows up in the wrong place', () => { const actual = ContentHoverController.computeHoverRanges( new Range(5, 5, 5, 5), [<IHoverPart>{ range: new Range(4, 1, 5, 6) }] ); assert.deepStrictEqual( actual, { showAtPosition: new Position(5, 5), showAtRange: new Range(5, 5, 5, 5), highlightRange: new Range(4, 1, 5, 6) } ); }); }); </ins>