jiebi/CodeConvo huggingface dataset:
Change:
<img width="470" alt="Screen Shot 2021-05-28 at 11 40 58 AM" src="https://user-"This is my only shell/profile setting:
It should also show only once per window reload
Fixed already /duplicate of
Not sure how to get it to only show once per window reload. Custom implementation?
keep a boolean like at the top level of the file to track it.
This still happens because needs to be at the top level, not a member of TerminalInstance in order to be shared.
If we only do this for the first terminal that gets created though, if users change their settings and then create terminals, they won't see this message.
Just tested it and think that's fine
that's fine, they'd eventually hit it again after a restart. The main thing is that we're annoying people as little as possible.
Tried to verify, think this is still unreleased.
I think it should be released already since Alex Dima released a few hours ago an insider's based on release/1.57, which has the changes.
Works after updating

Discussion:
const SHOULD_PROMPT_FOR_PROFILE_MIGRATION_KEY = 'terminals.integrated.profile-migration'; <ins> let migrationMessageShown = false; </ins> const enum Constants { /** * The maximum amount of milliseconds to wait for a container before starting to create the

private _hasHadInput: boolean; <del> messageShown: boolean = false; </del> readonly statusList: ITerminalStatusList = new TerminalStatusList(); disableLayout: boolean = false; get instanceId(): number { return this._instanceId; }

const shouldMigrateToProfile = (!!this._configurationService.getValue(TerminalSettingPrefix.Shell + platform) || !!this._configurationService.inspect(TerminalSettingPrefix.ShellArgs + platform).userValue) && !!this._configurationService.getValue(TerminalSettingPrefix.DefaultProfile + platform); <del> if (shouldMigrateToProfile && this._storageService.getBoolean(SHOULD_PROMPT_FOR_PROFILE_MIGRATION_KEY, StorageScope.WORKSPACE, true) && !this.messageShown) { </del> <ins> if (shouldMigrateToProfile && this._storageService.getBoolean(SHOULD_PROMPT_FOR_PROFILE_MIGRATION_KEY, StorageScope.WORKSPACE, true) && !migrationMessageShown) { </ins> this._notificationService.prompt( Severity.Info, nls.localize('terminalProfileMigration', "The terminal is using deprecated shell/shellArgs settings, do you want to migrate it to a profile?"),

neverShowAgain: { id: SHOULD_PROMPT_FOR_PROFILE_MIGRATION_KEY, scope: NeverShowAgainScope.WORKSPACE } } ); <del> this.messageShown = true; </del> <ins> migrationMessageShown = true; </ins> } }
Change:
Currently, we have to add this copyright header manually to every new file: /
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License. See in the project root for license information. *
-------------/ An ES Lint rule that has an auto fix would be really nice. What are your thoughts ! (using )
I like. The closest that we have today is this snippet
Let's do it!

Discussion:
**/extensions/markdown-language-features/notebook-out/** **/extensions/typescript-basics/test/colorize-fixtures/** **/extensions/**/dist/** <ins> **/extensions/typescript-language-features/test-workspace/** </ins>

}, "plugins": [ "@typescript-eslint", <del> "jsdoc" </del> <ins> "jsdoc", "header" </ins> ], "rules": { "constructor-super": "warn",

"xterm*" ] } <ins> ], "header/header": [ 2, "block", [ "---------------------------------------------------------------------------------------------", " *  Copyright (c) Microsoft Corporation. All rights reserved.", " *  Licensed under the MIT License. See License.txt in the project root for license information.", " *--------------------------------------------------------------------------------------------" ] </ins> ] }, "overrides": [

{ "name": "code-oss-dev", "version": "1.59.0", <del> "distro": "4f9399b417ee98731317fbd4616d6fc287172355", </del> <ins> "distro": "74b4e453554c83bca64754d34278aff04e1d78f9", </ins> "author": { "name": "Microsoft Corporation" },

"dependencies": { "applicationinsights": "1.0.8", "chokidar": "3.5.1", <ins> "eslint-plugin-header": "3.1.1", </ins> "graceful-fs": "4.2.6", "http-proxy-agent": "^2.1.0", "https-proxy-agent": "^2.2.3",

resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== <ins> eslint-plugin-header@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== </ins> eslint-plugin-jsdoc@^19.1.0: version "19.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-19.1.0.tgz#fcc17f0378fdd6ee1c847a79b7211745cb05d014"
Change:
Steps to Reproduce: an extension that registers a readonly file system (e.g. our with some tweaks) a workspace with a folder from that file system that is readonly (memfs does that) = the explorer actions for new file/folder are not disabled and silently fail when clicked !
the memfs extension for me does not start readonly. I can delete and change files. What are the tweaks needed to make it readonly?
when the provider is registered you can set
Actions are still enabled when I click into the empty space though: !
I have looked into a fix and I would prefer to do it start of next week. I have created a PR which is ready to merge. The thing which I plan to change as part of this fix: In a multi root workspace, when the user context menus on the empty space at the bottom that will be like he is acting on the last workspace. I think that makes sense, I just do not want to do it in endgame week.

Discussion:
} private setContextKeys(stat: ExplorerItem | null | undefined): void { <del> const isSingleFolder = this.contextService.getWorkbenchState() === WorkbenchState.FOLDER; const resource = stat ? stat.resource : isSingleFolder ? this.contextService.getWorkspace().folders[0].uri : null; </del> <ins> const folders = this.contextService.getWorkspace().folders; const resource = stat ? stat.resource : folders[folders.length - 1].uri; stat = stat || this.explorerService.findClosest(resource); </ins> this.resourceContext.set(resource); <del> this.folderContext.set((isSingleFolder && !stat) || !!stat && stat.isDirectory); </del> <ins> this.folderContext.set(!!stat && stat.isDirectory); </ins> this.readonlyContext.set(!!stat && stat.isReadonly); <del> this.rootContext.set(!stat || (stat && stat.isRoot)); </del> <ins> this.rootContext.set(!!stat && stat.isRoot); </ins> if (resource) { const overrides = resource ? this.editorOverrideService.getEditorIds(resource) : [];
Change:
I frequently use the debug console in VS Code to get output from my application but it's often cluttered with various log messages from services that I cannot control. These unwanted entries are easily filtered in the text field "Filter (e.g. text, !exclude)" box. I would like a setting to configure this default filter text per workspace. Currently I have to manually configure this filter each time I start VS Code. I could not find this in either default settings or through an extension.
This is a fair feature request, however we do not have it on our immediate plan. Thus assigning to backlog and we might add this in the future. Thanks I would actually prefer if we would just preserve the filter across vscode reloads. I am open to Pull Requests that solve this. Code pointer
Great. I would be fine with it being preserved through reloads
Created PR fixing this
thanks a lot for that I have commented on the PR.
I am trying to verify this feature right now, but it isn't persisting upon reload on my side (running off of latest commit on main). Steps: extension filter to debug console debugging command palette to reload console's filter is empty again. Is my flow correct?
thanks for trying to verify this. However this fix is not yet released. Sorry for not specifying. Though we have this label that should help with that. So I will close this issue, and it would be great if you can try it out again tomorrow. Thank you!

Discussion:
const HISTORY_STORAGE_KEY = 'debug.repl.history'; const FILTER_HISTORY_STORAGE_KEY = 'debug.repl.filterHistory'; <ins> const FILTER_VALUE_STORAGE_KEY = 'debug.repl.filterValue'; </ins> const DECORATION_KEY = 'replinputdecoration'; const FILTER_ACTION_ID = `workbench.actions.treeView.repl.filter`;

this.history = new HistoryNavigator(JSON.parse(this.storageService.get(HISTORY_STORAGE_KEY, StorageScope.WORKSPACE, '[]')), 50); this.filter = new ReplFilter(); this.filterState = new ReplFilterState(this); <ins> this.filter.filterQuery = this.filterState.filterText = this.storageService.get(FILTER_VALUE_STORAGE_KEY, StorageScope.WORKSPACE, ''); </ins> this.multiSessionRepl = CONTEXT_MULTI_SESSION_REPL.bindTo(contextKeyService); this.multiSessionRepl.set(this.isMultiSessionView);

} getFilterStats(): { total: number, filtered: number } { <ins> // This could be called before the tree is created when setting this.filterState.filterText value </ins> return { <del> total: this.tree.getNode().children.length, filtered: this.tree.getNode().children.filter(c => c.visible).length </del> <ins> total: this.tree?.getNode().children.length ?? 0, filtered: this.tree?.getNode().children.filter(c => c.visible).length ?? 0 </ins> }; }

} else { this.storageService.remove(FILTER_HISTORY_STORAGE_KEY, StorageScope.WORKSPACE); } <ins> const filterValue = this.filterState.filterText; if (filterValue) { this.storageService.store(FILTER_VALUE_STORAGE_KEY, filterValue, StorageScope.WORKSPACE, StorageTarget.USER); } else { this.storageService.remove(FILTER_VALUE_STORAGE_KEY, StorageScope.WORKSPACE); } </ins> } super.saveState();
Change:
On Linux: the settings editor type out "cellToolbarLocation" way through, when the setting comes up, focus is stolen by the "item" in the table !
Yikes. I wonder if you could look at this
I'm unable to repro this on both Windows and Mac. It takes me a double-click to manually change the first row of that setting into edit mode, after it shows up. Do we have any OS-specific code for the settings editor If not, I wonder if this might be an Electron issue.
I did not repro on Windows either, only in Linux
I can on mac, if I have multiple rows on the setting. Or maybe I had to interact with the setting in that editor previously. I can't remember whether there is some code on the list setting widget that tries to restore focus after a change. I just called you out because I thought you might have seen that recently
Ok, reproduced the issue on Mac but not Windows with your hint there: -click the first item in the cell toolbar location setting to get it into edit mode. of pressing the OK or Cancel button, close the setting editor. the setting editor again, and slowly type . :bug: The setting shows up with the first item in edit mode, and that seems to steal focus away.
In , there are some areas where gets called. I think a solution to this approach would be to call whenever the user focuses back onto the main search bar, or if the settings editor tab is closed. Otherwise, on all OSes, when the user focuses back onto the search bar, and tries to search a new setting, the focus is stolen back to the item in edit mode.

Discussion:
import { onUnexpectedError } from 'vs/base/common/errors'; import { Emitter, Event } from 'vs/base/common/event'; import { KeyCode } from 'vs/base/common/keyCodes'; <del> import { Disposable, DisposableStore, dispose } from 'vs/base/common/lifecycle'; </del> <ins> import { Disposable, DisposableStore, dispose, toDisposable } from 'vs/base/common/lifecycle'; </ins> import { isIOS } from 'vs/base/common/platform'; import { escapeRegExpCharacters } from 'vs/base/common/strings'; import { isArray, isDefined, isUndefinedOrNull } from 'vs/base/common/types';

}); template.context = dataElement; <ins> template.elementDisposables.add(toDisposable(() => { template.listWidget.cancelEdit(); })); </ins> template.onChange = (v) => { onChange(v); renderArrayValidations(dataElement, template, v, false);

}); template.context = dataElement; <ins> template.elementDisposables.add(toDisposable(() => { template.objectDropdownWidget!.cancelEdit(); })); </ins> template.onChange = (v: Record<string, unknown> | undefined) => { onChange(v); renderArrayValidations(dataElement, template, v, false);

const value = getExcludeDisplayValue(dataElement); template.excludeWidget.setValue(value); template.context = dataElement; <ins> template.elementDisposables.add(toDisposable(() => { template.excludeWidget.cancelEdit(); })); </ins> } }

this.renderList(); } <del> protected cancelEdit(): void { </del> <ins> public cancelEdit(): void { </ins> this.model.setEditKey('none'); this.renderList(); }
Change:
Testing The drag cursor shows up in markdown cell gutters, but you can only actually drag on the contents
Works for me
Video: 
Oh, I think it's just the spot where the folding button would go, the DOM is weird there I remember fighting this in the past
Thanks Yes we previously had this for I think it's fine to not support dragging and dropping on the folding indicator itself, but in this case it looks like the folding indicator is hidden so we should allow dragging

Discussion:
private layoutFoldingIndicator() { switch (this.foldingState) { case CellFoldingState.None: <ins> this.templateData.foldingIndicator.style.display = 'none'; </ins> this.templateData.foldingIndicator.innerText = ''; break; case CellFoldingState.Collapsed: <ins> this.templateData.foldingIndicator.style.display = ''; </ins> DOM.reset(this.templateData.foldingIndicator, renderIcon(collapsedIcon)); break; case CellFoldingState.Expanded: <ins> this.templateData.foldingIndicator.style.display = ''; </ins> DOM.reset(this.templateData.foldingIndicator, renderIcon(expandedIcon)); break;
Change:
image in Luna paint, save. on entry in SCM viewlet to see diff some more a drink to resize the window diff editor loads Haven't tried in other custom editors, don't know if this is an issue with custom editor openers or in Luna.
Seems like a core issue, also happens with hex editor with:
This seems like an important regression. No idea what changed in custom editor land
This seems to have been caused by /cc The current calls causes the webviews to end up with height in this case. On the first call to never gets invoked. Previously it got invoked before the webview was even created Looking to see what that proper fix would be for this. Some potential ideas: I feel like should probably always be invoked at least once on a newly created editorI'm not sure why the passed in always has zero height but that seems wrong. If that element has , then I believe the code would work The issue seems to be that and both have zero height
I get the following error with these steps, unfortunately... So I could not repro this. ! I am pretty sure the grid calls layout to its views whenver their sizes change. Is it possible that some layer between the grid and your webview is caching something and not calling on you? Namely the editor group layer. For example, I see a potential problem here: If the layout comes, and is , the dimension will be lost forever, since the grid will no longer send repeated layout calls when dimensions don't change. The instance should remember the last and pass it along to the active editor pane, as soon as it comes along. cc A very similar situation happened here:
I hit the same exception when following hex editor alternative steps. This might be a new bug?
Maybe is the same and has easy steps to reproduce.
Thanks the lack of milestone was hiding that issue from me! Will check it out.
btw the is storing the dimensions and applies them here already when making the control visible:
That exception you see I receive in the official build of insiders, but not when running out of sources. It implies that the resource URI is undefined which shouldn't be possible. If you have any ideas or would like to help me discover what is causing this let me know
For the hex editor, I had trouble reproducing this until I set . The data inspector (usually) seems to trigger a relayout for me My reliable repo: a TS file and open the diff
Thanks I can repro with those steps! I will look into this tomorrow if you don't figure it out today.

Discussion:
this.secondaryEditorPane.setInput(secondaryInput, undefined, context, token), this.primaryEditorPane.setInput(primaryInput, options, context, token)] ); <ins> this.layout(this.dimension); </ins> } override updateStyles(): void {
Change:
Testing The existing API has , which returns . The new , API has , which returns . To better match the existing API, the version could return
That's a good idea! I've opened a PR for this, feel free to have a look if you like.

Discussion:
} export interface InlineCompletionItemProvider<T extends InlineCompletionItem = InlineCompletionItem> { <del> provideInlineCompletionItems(document: TextDocument, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<InlineCompletionList<T>>; </del> <ins> provideInlineCompletionItems(document: TextDocument, position: Position, context: InlineCompletionContext, token: CancellationToken): ProviderResult<InlineCompletionList<T> | T[]>; </ins> } export interface InlineCompletionContext {

import { IPosition } from 'vs/editor/common/core/position'; import { IRange, Range as EditorRange } from 'vs/editor/common/core/range'; import { isFalsyOrEmpty, isNonEmptyArray, coalesce, asArray } from 'vs/base/common/arrays'; <del> import { isObject } from 'vs/base/common/types'; </del> <ins> import { isArray, isObject } from 'vs/base/common/types'; </ins> import { ISelection, Selection } from 'vs/editor/common/core/selection'; import { ILogService } from 'vs/platform/log/common/log'; import { CancellationToken } from 'vs/base/common/cancellation';

return undefined; } <del> const pid = this._cache.add(result.items); </del> <ins> const normalizedResult: vscode.InlineCompletionList = isArray(result) ? { items: result } : result; const pid = this._cache.add(normalizedResult.items); </ins> let disposableStore: DisposableStore | undefined = undefined; return { pid, <del> items: result.items.map<extHostProtocol.IdentifiableInlineCompletion>((item, idx) => { </del> <ins> items: normalizedResult.items.map<extHostProtocol.IdentifiableInlineCompletion>((item, idx) => { </ins> let command: modes.Command | undefined = undefined; if (item.command) { if (!disposableStore) {
Change:
Forking off the setting part off from PR:
Hello, is this issue is still open. I am new to open source and wanted to contribute.
there's a PR open already for this one

Discussion:
LocalEchoExcludePrograms = 'terminal.integrated.localEchoExcludePrograms', LocalEchoStyle = 'terminal.integrated.localEchoStyle', EnablePersistentSessions = 'terminal.integrated.enablePersistentSessions', <del> InheritEnv = 'terminal.integrated.inheritEnv' </del> <ins> InheritEnv = 'terminal.integrated.inheritEnv', ShowLinkHover = 'terminal.integrated.showLinkHover', </ins> } export enum WindowsShellType {

type: 'boolean', default: true }, <ins> [TerminalSettingId.ShowLinkHover]: { scope: ConfigurationScope.APPLICATION, description: localize('terminal.integrated.showLinkHover', "Whether to show hovers for links in the terminal output."), type: 'boolean', default: true } </ins> } };

import { IHoverTarget, IHoverService } from 'vs/workbench/services/hover/browser/hover'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorHoverHighlight } from 'vs/platform/theme/common/colorRegistry'; <ins> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TerminalSettingId } from 'vs/platform/terminal/common/terminal'; </ins> const $ = dom.$;

private readonly _targetOptions: ILinkHoverTargetOptions, private readonly _text: IMarkdownString, private readonly _linkHandler: (url: string) => any, <del> @IHoverService private readonly _hoverService: IHoverService </del> <ins> @IHoverService private readonly _hoverService: IHoverService, @IConfigurationService private readonly _configurationService: IConfigurationService </ins> ) { super(); }

} attach(container: HTMLElement): void { <ins> const showLinkHover = this._configurationService.getValue(TerminalSettingId.ShowLinkHover); if (!showLinkHover) { return; } </ins> const target = new CellHoverTarget(container, this._targetOptions); const hover = this._hoverService.showHover({ target,
Change:
Issue Type: Performance Issue <!-- 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?: No <!-- 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.56.2 OS Version: Darwin x64 20.3.0 Steps to Reproduce: task in vscode repo. some TypeScript/JavaScript wrong code. ! () any settings, always called. ! only typescript/javascript file can reproduce this issue.

Discussion:
const currentSettings = this.get(language); const newSettings = f(currentSettings); this._languageSettings.set(language, newSettings); <del> return areLanguageDiagnosticSettingsEqual(currentSettings, newSettings); </del> <ins> return !areLanguageDiagnosticSettingsEqual(currentSettings, newSettings); </ins> } }