jiebi/CodeConvo huggingface dataset:
Code change:
<!-- 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 <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.74.2 OS Version: macOS 12.6.2 Steps to Reproduce: an extension and specify a relative path to an in the in png format, and specify repository as . (Our repository is private) get a warning , despite the icon showing correctly in the marketplace and the VS Code extension manager (We also have images in our that we hosted externally. Our repository is private after all). Extension:
I get the same warning ! despite my fields being defined as Source: Interestingly the icon shows up in the marketplace just fine. !
I see the icon is served from the CDN now and we can remove the warning about the relative icon path. What about badges in the and images in the README markdown, are these also served from CDN?
Those are all served from the raw GitHub routes, this is why vsce needs to know what repository hosts the sources.
But the icon isn't, not anymore at least... Our repo is private, the icon works just fine and is uploaded along with the vsix and hosted in some CDN. Images in the readme are indeed served directly so will require this check or an absolute URLs.
Ah! This is just the workbench linter. I also forgot that we actually show the icons served directly from the MP, not GH. Sorry about the confusion, thanks for following up This warning is unnecessary by now, let's remove it.

Related discussion:
text: const embeddedSvgsNotValid = l10n.t("Embedded SVGs are not a valid image source."); const dataUrlsNotValid = l10n.t("Data URLs are not a valid image source."); const relativeUrlRequiresHttpsRepository = l10n.t("Relative image URLs require a repository with HTTPS protocol to be specified in the package.json."); <del> const relativeIconUrlRequiresHttpsRepository = l10n.t("An icon requires a repository with HTTPS protocol to be specified in this package.json."); </del> const relativeBadgeUrlRequiresHttpsRepository = l10n.t("Relative badge URLs require a repository with HTTPS protocol to be specified in this package.json."); const apiProposalNotListed = l10n.t("This proposal cannot be used because for this extension the product defines a fixed set of API proposals. You can test your extension but before publishing you MUST reach out to the VS Code team."); const implicitActivationEvent = l10n.t("This activation event cannot be explicitly listed by your extension.");
Code change:
<!-- 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 <!-- If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. --<!-- Issues caused by an extension need to be reported directly to the extension publisher. The 'Help Report Issue' dialog can assist with this. --- VS Code Version: 1.74.2 OS Version: macOS 12.6.2 Steps to Reproduce: an extension and specify a relative path to an in the in png format, and specify repository as . (Our repository is private) get a warning , despite the icon showing correctly in the marketplace and the VS Code extension manager (We also have images in our that we hosted externally. Our repository is private after all). Extension:
I get the same warning ! despite my fields being defined as Source: Interestingly the icon shows up in the marketplace just fine. !
I see the icon is served from the CDN now and we can remove the warning about the relative icon path. What about badges in the and images in the README markdown, are these also served from CDN?
Those are all served from the raw GitHub routes, this is why vsce needs to know what repository hosts the sources.
But the icon isn't, not anymore at least... Our repo is private, the icon works just fine and is uploaded along with the vsix and hosted in some CDN. Images in the readme are indeed served directly so will require this check or an absolute URLs.
Ah! This is just the workbench linter. I also forgot that we actually show the icons served directly from the MP, not GH. Sorry about the confusion, thanks for following up This warning is unnecessary by now, let's remove it.

Related discussion:
text: diagnostics.push(new Diagnostic(range, dataUrlsNotValid, DiagnosticSeverity.Warning)); } <del> if (!hasScheme && !info.hasHttpsRepository) { </del> <ins> if (!hasScheme && !info.hasHttpsRepository && context !== Context.ICON) { </ins> const range = new Range(document.positionAt(begin), document.positionAt(end)); const message = (() => { switch (context) { <del> case Context.ICON: return relativeIconUrlRequiresHttpsRepository; </del> case Context.BADGE: return relativeBadgeUrlRequiresHttpsRepository; default: return relativeUrlRequiresHttpsRepository; }
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: import { ExtHostUriOpeners } from 'vs/workbench/api/common/extHostUriOpener'; import { IExtHostSecretState } from 'vs/workbench/api/common/extHostSecretState'; import { IExtHostEditorTabs } from 'vs/workbench/api/common/extHostEditorTabs'; <del> import { IExtHostTelemetry, isNewAppInstall } from 'vs/workbench/api/common/extHostTelemetry'; </del> <ins> import { ExtHostTelemetryLogger, IExtHostTelemetry, isNewAppInstall } from 'vs/workbench/api/common/extHostTelemetry'; </ins> import { ExtHostNotebookKernels } from 'vs/workbench/api/common/extHostNotebookKernels'; import { TextSearchCompleteMessageType } from 'vs/workbench/services/search/common/searchExtTypes'; import { ExtHostNotebookRenderers } from 'vs/workbench/api/common/extHostNotebookRenderers';
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: get isNewAppInstall() { return isNewAppInstall(initData.telemetryInfo.firstSessionDate); }, <del> createTelemetryLogger(appender: vscode.TelemetrySender): vscode.TelemetryLogger { </del> <ins> createTelemetryLogger(sender: vscode.TelemetrySender): vscode.TelemetryLogger { </ins> checkProposedApiEnabled(extension, 'telemetryLogger'); <del> return extHostTelemetry.instantiateLogger(extension, appender); </del> <ins> ExtHostTelemetryLogger.validateSender(sender); return extHostTelemetry.instantiateLogger(extension, sender); </ins> }, openExternal(uri: URI, options?: { allowContributedOpeners?: boolean | string }) { return extHostWindow.openUri(uri, {
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: } export class ExtHostTelemetryLogger { <del> private _appender: vscode.TelemetrySender; </del> <ins> static validateSender(sender: vscode.TelemetrySender): void { if (typeof sender !== 'object') { throw new TypeError('TelemetrySender argument is invalid'); } if (typeof sender.sendEventData !== 'function') { throw new TypeError('TelemetrySender.sendEventData must be a function'); } if (typeof sender.sendErrorData !== 'function') { throw new TypeError('TelemetrySender.sendErrorData must be a function'); } if (typeof sender.flush !== 'undefined' && typeof sender.flush !== 'function') { throw new TypeError('TelemetrySender.flush must be a function or undefined'); } } private readonly _sender: vscode.TelemetrySender; </ins> private readonly _onDidChangeEnableStates = new Emitter<vscode.TelemetryLogger>(); <del> private _telemetryEnablements: { isUsageEnabled: boolean; isErrorsEnabled: boolean }; private _apiObject: vscode.TelemetryLogger | undefined; </del> private readonly _ignoreBuiltinCommonProperties: boolean; private readonly _additionalCommonProperties: Record<string, any> | undefined; public readonly ignoreUnhandledExtHostErrors: boolean; <ins> private _telemetryEnablements: { isUsageEnabled: boolean; isErrorsEnabled: boolean }; private _apiObject: vscode.TelemetryLogger | undefined; </ins> constructor( sender: vscode.TelemetrySender, options: vscode.TelemetryLoggerOptions | undefined,
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: this.ignoreUnhandledExtHostErrors = options?.ignoreUnhandledErrors ?? false; this._ignoreBuiltinCommonProperties = options?.ignoreBuiltInCommonProperties ?? false; this._additionalCommonProperties = options?.additionalCommonProperties; <del> this._appender = sender; </del> <ins> this._sender = sender; </ins> this._telemetryEnablements = { isUsageEnabled: telemetryEnablements.isUsageEnabled, isErrorsEnabled: telemetryEnablements.isErrorsEnabled }; }
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: } data = this.mixInCommonPropsAndCleanData(data || {}); if (!this._inLoggingOnlyMode) { <del> this._appender.sendEventData(eventName, data); </del> <ins> this._sender.sendEventData(eventName, data); </ins> } this._logger.trace(eventName, data); }
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: this.logEvent(eventNameOrException, data); } else { // TODO @lramos15, implement cleaning for and logging for this case <del> this._appender.sendErrorData(eventNameOrException, data); </del> <ins> this._sender.sendErrorData(eventNameOrException, data); </ins> } }
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: import { ITelemetryInfo, TelemetryLevel } from 'vs/platform/telemetry/common/telemetry'; import { TestTelemetryLoggerService } from 'vs/platform/telemetry/test/common/telemetryLogAppender.test'; import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService'; <del> import { ExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry'; </del> <ins> import { ExtHostTelemetry, ExtHostTelemetryLogger } from 'vs/workbench/api/common/extHostTelemetry'; </ins> import { IEnvironment } from 'vs/workbench/services/extensions/common/extensionHostProtocol'; import { mock } from 'vs/workbench/test/common/workbenchTestServices'; import type { TelemetrySender } from 'vscode';
Code change:
This looks like we have telemetry loggers without appenders. Can we add a strict check or in the API impl?

Related discussion:
text: return logger; }; <ins> test('Validate sender instances', function () { assert.throws(() => ExtHostTelemetryLogger.validateSender(<any>null)); assert.throws(() => ExtHostTelemetryLogger.validateSender(<any>1)); assert.throws(() => ExtHostTelemetryLogger.validateSender(<any>{})); assert.throws(() => { ExtHostTelemetryLogger.validateSender(<any>{ sendErrorData: () => { }, sendEventData: true }); }); assert.throws(() => { ExtHostTelemetryLogger.validateSender(<any>{ sendErrorData: 123, sendEventData: () => { }, }); }); assert.throws(() => { ExtHostTelemetryLogger.validateSender(<any>{ sendErrorData: () => { }, sendEventData: () => { }, flush: true }); }); }); </ins> test('Ensure logger gets proper telemetry level during initialization', function () { const extensionTelemetry = createExtHostTelemetry(); let config = extensionTelemetry.getTelemetryDetails();
Code change:
These 2 methods are called when any setting changes: I would have expected an early return if no related setting changed.

Related discussion:
text: } } <del> this.layout({ metadataHeight: metadataLayoutChange, outputTotalHeight: outputLayoutChange }); </del> <ins> if (metadataLayoutChange || outputLayoutChange) { this.layout({ metadataHeight: metadataLayoutChange, outputTotalHeight: outputLayoutChange }); } </ins> })); }
Code change:
Found this in devtools, I played a bit with settings: <img width="1904" alt="image" src="https://user-"
Let me know if you can repro and find out the issue is deep in the list/tree.
Got you repro steps! the workbench window rather small. into 2x2 editor layout, so you get even smaller editors <kbdCmd ,</kbdto open the Settings Editor in one of the editor groups for <kbdCmd W</kbdto close the Settings Editor That exception shows up!
I just closed two other duplicates of this. There are repro steps since June. Let's see if we can drive this to a fix. Let me know if you believe it's deep down in the list/tree.

Related discussion:
text: /** Don't spam warnings */ private hasWarnedMissingSettings = false; <ins> private tocTreeDisposed = false; </ins> /** Persist the search query upon reloads */ private editorMemento: IEditorMemento<ISettingsEditor2State>;
Code change:
Found this in devtools, I played a bit with settings: <img width="1904" alt="image" src="https://user-"
Let me know if you can repro and find out the issue is deep in the list/tree.
Got you repro steps! the workbench window rather small. into 2x2 editor layout, so you get even smaller editors <kbdCmd ,</kbdto open the Settings Editor in one of the editor groups for <kbdCmd W</kbdto close the Settings Editor That exception shows up!
I just closed two other duplicates of this. There are repro steps since June. Let's see if we can drive this to a fix. Let me know if you believe it's deep down in the list/tree.

Related discussion:
text: 'aria-label': localize('settings', "Settings"), })), this.viewState)); <ins> this.tocTreeDisposed = false; </ins> this._register(this.tocTree.onDidFocus(() => { this._currentFocusContext = SettingsFocusContext.TableOfContents;
Code change:
Found this in devtools, I played a bit with settings: <img width="1904" alt="image" src="https://user-"
Let me know if you can repro and find out the issue is deep in the list/tree.
Got you repro steps! the workbench window rather small. into 2x2 editor layout, so you get even smaller editors <kbdCmd ,</kbdto open the Settings Editor in one of the editor groups for <kbdCmd W</kbdto close the Settings Editor That exception shows up!
I just closed two other duplicates of this. There are repro steps since June. Let's see if we can drive this to a fix. Let me know if you believe it's deep down in the list/tree.

Related discussion:
text: this._register(this.tocTree.onDidBlur(() => { this.tocRowFocused.set(false); })); <ins> this._register(this.tocTree.onDidDispose(() => { this.tocTreeDisposed = true; })); </ins> } private applyFilter(filter: string) {
Code change:
Found this in devtools, I played a bit with settings: <img width="1904" alt="image" src="https://user-"
Let me know if you can repro and find out the issue is deep in the list/tree.
Got you repro steps! the workbench window rather small. into 2x2 editor layout, so you get even smaller editors <kbdCmd ,</kbdto open the Settings Editor in one of the editor groups for <kbdCmd W</kbdto close the Settings Editor That exception shows up!
I just closed two other duplicates of this. There are repro steps since June. Let's see if we can drive this to a fix. Let me know if you believe it's deep down in the list/tree.

Related discussion:
text: this.refreshTOCTree(); this.renderResultCountMessages(); this.refreshTree(); <del> } else { </del> <ins> } else if (!this.tocTreeDisposed) { </ins> // Leaving search mode this.tocTree.collapseAll(); this.refreshTOCTree();
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: import * as nls from 'vs/nls'; import { ContextKeyExpr, IContextKeyService, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; <del> import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRegistry'; </del> export class GhostTextController extends Disposable { public static readonly inlineSuggestionVisible = new RawContextKey<boolean>('inlineSuggestionVisible', false, nls.localize('inlineSuggestionVisible', "Whether an inline suggestion is visible")); public static readonly inlineSuggestionHasIndentation = new RawContextKey<boolean>('inlineSuggestionHasIndentation', false, nls.localize('inlineSuggestionHasIndentation', "Whether the inline suggestion starts with whitespace")); public static readonly inlineSuggestionHasIndentationLessThanTabSize = new RawContextKey<boolean>('inlineSuggestionHasIndentationLessThanTabSize', true, nls.localize('inlineSuggestionHasIndentationLessThanTabSize', "Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")); <del> /** * Enables to use Ctrl+Left to undo fully (partially) accepted inline completions (the completion is no longer visible then). */ public static readonly inlineSuggestionJustCommitted = new RawContextKey<boolean>('inlineSuggestionJustCommitted', false, nls.localize('inlineSuggestionJustCommitted', "Whether an inline suggestion just got committed")); </del> static ID = 'editor.contrib.ghostTextController';
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: public commitPartially(): void { this.activeModel?.commitInlineCompletionPartially(); <del> this.activeController?.value?.contextKeys.inlineSuggestionJustCommitted.set(true); </del> } public commit(): void { this.activeModel?.commitInlineCompletion(); <del> this.activeController?.value?.contextKeys.inlineSuggestionJustCommitted.set(true); </del> } public hide(): void {
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: public readonly inlineCompletionVisible = GhostTextController.inlineSuggestionVisible.bindTo(this.contextKeyService); public readonly inlineCompletionSuggestsIndentation = GhostTextController.inlineSuggestionHasIndentation.bindTo(this.contextKeyService); public readonly inlineCompletionSuggestsIndentationLessThanTabSize = GhostTextController.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService); <del> public readonly inlineSuggestionJustCommitted = GhostTextController.inlineSuggestionJustCommitted.bindTo(this.contextKeyService); </del> constructor(private readonly contextKeyService: IContextKeyService) { }
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: * Must be disposed as soon as the model detaches from the editor. */ export class ActiveGhostTextController extends Disposable { <del> public readonly contextKeys = new GhostTextContextKeys(this.contextKeyService); </del> <ins> private readonly contextKeys = new GhostTextContextKeys(this.contextKeyService); </ins> public readonly model = this._register(this.instantiationService.createInstance(GhostTextModel, this.editor)); public readonly widget = this._register(this.instantiationService.createInstance(GhostTextWidget, this.editor, this.model));
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: this._register(this.model.onDidChange(() => { this.updateContextKeys(); })); <del> this._register(this.editor.onDidChangeModelContent(() => { this.contextKeys.inlineSuggestionJustCommitted.reset(); })); this._register(this.editor.onDidChangeCursorPosition(() => { this.contextKeys.inlineSuggestionJustCommitted.reset(); })); </del> this.updateContextKeys(); }
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: id: 'editor.action.inlineSuggest.acceptNextWord', label: nls.localize('action.inlineSuggest.acceptNextWord', "Accept Next Word Of Inline Suggestion"), alias: 'Accept Next Word Of Inline Suggestion', <del> precondition: ContextKeyExpr.and(EditorContextKeys.writable, GhostTextController.inlineSuggestionVisible), kbOpts: { weight: 1000, primary: KeyMod.CtrlCmd | KeyCode.RightArrow, } </del> <ins> precondition: EditorContextKeys.writable </ins> }); }
Code change:
(See attached recording) I have enclose it in new use cmd+left to go to start of line ghost suggestions get accepted https://user-

Related discussion:
text: } } } <del> KeybindingsRegistry.registerKeybindingRule({ id: 'undo', weight: 1000, primary: KeyMod.CtrlCmd | KeyCode.LeftArrow, when: ContextKeyExpr.and(EditorContextKeys.writable, ContextKeyExpr.or(GhostTextController.inlineSuggestionVisible, GhostTextController.inlineSuggestionJustCommitted)), }); </del>
Code change:
Testing We shouldn't have tooltips here: !
what do you think? Currently, all toolbar actions have tooltips.
Yeah, unsure. All toolbars/actionbars have it but most have an icon and not the same text as the tooltip
Both options are fine for me. Whatever you prefer. I am slightly leaning towards no title. So we do not have hover in a hover (feels IDE-ish and heavy).

Related discussion:
text: container.classList.add(this._className); } } <ins> protected override updateTooltip(): void { // NOOP, disable tooltip } </ins> } class StatusBarViewItem extends MenuEntryActionViewItem {
Code change:
Testing We shouldn't have tooltips here: !
what do you think? Currently, all toolbar actions have tooltips.
Yeah, unsure. All toolbars/actionbars have it but most have an icon and not the same text as the tooltip
Both options are fine for me. Whatever you prefer. I am slightly leaning towards no title. So we do not have hover in a hover (feels IDE-ish and heavy).

Related discussion:
text: this.label.classList.add('inlineSuggestionStatusBarItemLabel'); } } <ins> protected override updateTooltip(): void { // NOOP, disable tooltip } </ins> } export class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {
Code change:
There's an unnecessary whitespace in "i18n/vscode-language-pack-". The whitespace after "command:" makes the link dead. !
you can add a comment to this string like so: to ensure that the command never has a problem like this. Notice that the example string has, in the Locked area, a at the start of it. This will make sure there is no whitespace between them.

Related discussion:
text: let debugKeybindingLabel = ''; viewsRegistry.registerViewWelcomeContent(WelcomeView.ID, { <del> content: localize( { key: 'runAndDebugAction', comment: [ '{0} will be replaced with a keybinding', 'Please do not translate the word "command", it is part of our internal syntax which must not change', '{Locked="](command:{1})"}' ] }, "[Run and Debug{0}](command:{1})", debugKeybindingLabel, DEBUG_START_COMMAND_ID), </del> <ins> content: `[${localize('runAndDebugAction', "Run and Debug")}${debugKeybindingLabel}](command:${DEBUG_START_COMMAND_ID})`, </ins> when: CONTEXT_DEBUGGERS_AVAILABLE, group: ViewContentGroups.Debug, // Allow inserting more buttons directly after this one (by setting order to 1).