Question:
Testing Please see the attached recording ! Notice how 'bb' is only shown after adding 'ccc'
Good catch. The "fast update" only applied when list DOM element is in focus but not when list item is in focus.

// If a single setting is being refreshed, it's ok to refresh now if that is not the focused setting if (key) { const focusedKey = focusedSetting.getAttribute(AbstractSettingRenderer.SETTING_KEY_ATTR); <del> /** * Update `list`s live if focused item is whole list or list item, * as they have a separate "submit edit" step built in before this */ if ( focusedKey === key && !DOM.hasClass(focusedSetting, 'setting-item-list') && !DOM.hasClass(focusedSetting, 'setting-item-contents') </del> <ins> if (focusedKey === key && // update `list`s live, as they have a separate "submit edit" step built in before this (focusedSetting.parentElement && !DOM.hasClass(focusedSetting.parentElement, 'setting-item-list')) </ins> ) { this.updateModifiedLabelForKey(key);


Question:
Issue Type: <bBug</bIf you have keyboard with multimedia buttons using them in Explorer tree triggers highlights/filtering. focus to Explorer tree Play/Pause media key that filter for was applied ! This keyboard have only one multimedia key, but I expect that other might be affected too. VS Code version: Code - Insiders 1.37.0-insider (, 2019-08-01T05:37:54.848Z) OS version: WindowsNT x64 10.0. <details<summarySystem Info</summary </detailsExtensions: none <!-- generated by issue reporter --
I would like to have a go at this.
Can you still reproduce this? Think it may have been fixed in commit . I know I used to be able to reproduce this but I can't anymore.
thanks for checking this issue. Unfortunately I'm still able to reproduce this issue wits latest Insiders build. ! Version: 1.40.0-insider (user setup) Commit: Date: 2019-10-22T05:27:32.053Z Electron: 6.0.12 Chrome: 76.0.3809.146 12.4.0 V8: 7.6.303.31-electron.0 OS: Windows_NT x64 10.0. Reported key is (which looks like expected key code for this button) ! UPD. While looks good media key might "leak" somewhere on
Issue related. I am thinking that this key filtering (see below) could be simplified massively. Instead of blacklisting all of these edge cases, we could just check if is a single character. I believe this should only allow key presses that we want. Then we can just add the exceptions such as . If we remove L660 and modify L664 to be: Key filtering:
I thought about this. But you're going to hit issues with unicode characters, in which one visible character actually has length 1. Let's just keep filtering out these cases one by one, it's fine. Simply add .
Cannot reproduce in 1.39. Could someone who can verify the fix in the latest Insiders?
Fix works as expected for me. Version: 1.40.0-insider (user setup) Commit: Date: 2019-10-31T05:42:33.138Z

const onKeyDown = Event.chain(domEvent(this.view.getHTMLElement(), 'keydown')) .filter(e => !isInputElement(e.target as HTMLElement) || e.target === this.filterOnTypeDomNode) <del> .filter(e => e.key !== 'Dead') </del> <ins> .filter(e => e.key !== 'Dead' && !/^Media/.test(e.key)) </ins> .map(e => new StandardKeyboardEvent(e)) .filter(this.keyboardNavigationEventFilter || (() => true)) .filter(() => this.automaticKeyboardNavigation || this.triggered)


Question:
Reported here: Nice example:
Sorry didn't get the chance to get this done, pushing it out to September.
Note to self: remember to revert

private async doRefresh(elements: ITreeItem[]): Promise<void> { if (this.tree) { this.refreshing = true; <del> await Promise.all(elements.map(element => this.tree.updateChildren(element, true))); elements.map(element => this.tree.rerender(element)); </del> <ins> const parents: Set<ITreeItem> = new Set<ITreeItem>(); elements.forEach(element => { if (element !== this.root) { const parent = this.tree.getParentElement(element); parents.add(parent); } else { parents.add(element); } }); await Promise.all(Array.from(parents.values()).map(element => this.tree.updateChildren(element, true))); </ins> this.refreshing = false; this.updateContentAreas(); if (this.focused) {


Question:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths

} } <del> const dataPaths: string[] = params.initializationOptions.dataPaths; </del> <ins> const dataPaths: string[] = params.initializationOptions.dataPaths || []; </ins> const customDataProviders = getDataProviders(dataPaths); function getClientCapability<T>(name: string, def: T) {


Question:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths

viewStates[handle] = { visible: input === group.activeEditor, active: input === activeInput, <del> position: editorGroupToViewColumn(this._editorGroupService, group.id || 0), </del> <ins> position: editorGroupToViewColumn(this._editorGroupService, group.id), </ins> }; } }


Question:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths

} private onDidClickLink(handle: WebviewPanelHandle, link: URI): void { <del> if (!link) { return; } </del> const webview = this.getWebviewEditorInput(handle); if (this.isSupportedLink(webview, link)) { this._openerService.open(link);


Question:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths

return; case 'did-click-link': <del> let [uri] = event.args; </del> <ins> const [uri] = event.args; </ins> this._onDidClickLink.fire(URI.parse(uri)); return;


Question:
VSCode Version: 1.37.1 OS Version: Fedora 30 I'm extracting the CSS Language Server for usage in 3rd party IDE (Eclipse IDE). I noticed that if I start the CSS-LS without passing a element to initialization, the LS will fail because of . One of the important lines in the stack trace is .
Submitted PR for this issue.
Fixed by .
Verified in master by removing the dataPaths

clientY: rawEvent.clientY + bounds.top, })); return; <del> } catch (TypeError) { </del> <ins> } catch { </ins> // CustomEvent was treated as MouseEvent so don't do anything - https://github.com/microsoft/vscode/issues/78915 return; } } case 'did-set-content':


Question:
Issue Type: <bBug</bSteps to Reproduce: a project/folder mouse into Editor and then move it out from right edge of the window Activity Bar mouse into Side Bar and then move it out from left edge of the window VS Code version: Code 1.37.1 (, 2019-08-15T16:16:34.800Z) OS version: Darwin x64 18.7.0 <!-- generated by issue reporter --
The issue seems to be in , but I am not sure what the difference is between that edge of the editor and the others. For some reason the mouseLeave event is not being fired on the right-hand side. It seems it thinks the is the same as the initially given - which means the leave event is never fired. I'm happy to keep digging into this if that's ok with you.

export function addDisposableNonBubblingMouseOutListener(node: Element, handler: (event: MouseEvent) => void): IDisposable { return addDisposableListener(node, 'mouseout', (e: MouseEvent) => { // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements <del> let toElement: Node | null = <Node>(e.relatedTarget || e.target); </del> <ins> let toElement: Node | null = <Node>(e.relatedTarget); </ins> while (toElement && toElement !== node) { toElement = toElement.parentNode; }


Question:
Issue Type: <bBug</bSteps to Reproduce: a project/folder mouse into Editor and then move it out from right edge of the window Activity Bar mouse into Side Bar and then move it out from left edge of the window VS Code version: Code 1.37.1 (, 2019-08-15T16:16:34.800Z) OS version: Darwin x64 18.7.0 <!-- generated by issue reporter --
The issue seems to be in , but I am not sure what the difference is between that edge of the editor and the others. For some reason the mouseLeave event is not being fired on the right-hand side. It seems it thinks the is the same as the initially given - which means the leave event is never fired. I'm happy to keep digging into this if that's ok with you.

export function addDisposableNonBubblingPointerOutListener(node: Element, handler: (event: MouseEvent) => void): IDisposable { return addDisposableListener(node, 'pointerout', (e: MouseEvent) => { // Mouse out bubbles, so this is an attempt to ignore faux mouse outs coming from children elements <del> let toElement: Node | null = <Node>(e.relatedTarget || e.target); </del> <ins> let toElement: Node | null = <Node>(e.relatedTarget); </ins> while (toElement && toElement !== node) { toElement = toElement.parentNode; }


Question:
, Replace string functionality in search does not work properly for hyphen and underscore separated variables , Initially figured it out from this Example: Replacingto with preserve case turned on replaces correctly to Replacing to with preserve case turned on replaces incorrectly to instead of PS : Additional Info from the code I found out there is a bug in function. The whole idea to call the replacement function again at was to reuse the already existing replacement logic ( First char capital , full caps and full small) but there was a bug as the hyphens and underscores were not even called because of wrong ordering in the condition checking logic.
Thanks for the PR, can you please phrase this issue in the form of a bug report (ie describe what to do, what happens, what is supposed to happen)

export function buildReplaceStringWithCasePreserved(matches: string[] | null, pattern: string): string { if (matches && (matches[0] !== '')) { <ins> const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-'); const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_'); if (containsHyphens && !containsUnderscores) { return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-'); } else if (!containsHyphens && containsUnderscores) { return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_'); } </ins> if (matches[0].toUpperCase() === matches[0]) { return pattern.toUpperCase(); } else if (matches[0].toLowerCase() === matches[0]) { return pattern.toLowerCase(); } else if (strings.containsUppercaseCharacter(matches[0][0])) { <del> const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-'); const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_'); if (containsHyphens && !containsUnderscores) { return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-'); } else if (!containsHyphens && containsUnderscores) { return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_'); } else { return pattern[0].toUpperCase() + pattern.substr(1); } </del> <ins> return pattern[0].toUpperCase() + pattern.substr(1); </ins> } else { // we don't understand its pattern yet. return pattern;


Question:
, Replace string functionality in search does not work properly for hyphen and underscore separated variables , Initially figured it out from this Example: Replacingto with preserve case turned on replaces correctly to Replacing to with preserve case turned on replaces incorrectly to instead of PS : Additional Info from the code I found out there is a bug in function. The whole idea to call the replacement function again at was to reuse the already existing replacement logic ( First char capital , full caps and full small) but there was a bug as the hyphens and underscores were not even called because of wrong ordering in the condition checking logic.
Thanks for the PR, can you please phrase this issue in the form of a bug report (ie describe what to do, what happens, what is supposed to happen)

assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar-newabc'), 'Newfoo-Newbar-Newabc'); actual = ['Foo-Bar-abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'Newfoo-newbar'); <ins> actual = ['foo-Bar']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'newfoo-Newbar'); actual = ['foo-BAR']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo-newbar'), 'newfoo-NEWBAR'); </ins> actual = ['Foo_Bar']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_Newbar');


Question:
, Replace string functionality in search does not work properly for hyphen and underscore separated variables , Initially figured it out from this Example: Replacingto with preserve case turned on replaces correctly to Replacing to with preserve case turned on replaces incorrectly to instead of PS : Additional Info from the code I found out there is a bug in function. The whole idea to call the replacement function again at was to reuse the already existing replacement logic ( First char capital , full caps and full small) but there was a bug as the hyphens and underscores were not even called because of wrong ordering in the condition checking logic.
Thanks for the PR, can you please phrase this issue in the form of a bug report (ie describe what to do, what happens, what is supposed to happen)

assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_newbar'); actual = ['Foo_Bar-abc']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar-abc'), 'Newfoo_newbar-abc'); <ins> actual = ['foo_Bar']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'newfoo_Newbar'); actual = ['Foo_BAR']; assert.equal(buildReplaceStringWithCasePreserved(actual, 'newfoo_newbar'), 'Newfoo_NEWBAR'); </ins> }); test('preserve case', () => {


Question:
, Replace string functionality in search does not work properly for hyphen and underscore separated variables , Initially figured it out from this Example: Replacingto with preserve case turned on replaces correctly to Replacing to with preserve case turned on replaces incorrectly to instead of PS : Additional Info from the code I found out there is a bug in function. The whole idea to call the replacement function again at was to reuse the already existing replacement logic ( First char capital , full caps and full small) but there was a bug as the hyphens and underscores were not even called because of wrong ordering in the condition checking logic.
Thanks for the PR, can you please phrase this issue in the form of a bug report (ie describe what to do, what happens, what is supposed to happen)

actual = replacePattern.buildReplaceString(['Foo-Bar-abc'], true); assert.equal(actual, 'Newfoo-newbar'); <ins> replacePattern = parseReplaceString('newfoo-newbar'); actual = replacePattern.buildReplaceString(['foo-Bar'], true); assert.equal(actual, 'newfoo-Newbar'); replacePattern = parseReplaceString('newfoo-newbar'); actual = replacePattern.buildReplaceString(['foo-BAR'], true); assert.equal(actual, 'newfoo-NEWBAR'); </ins> replacePattern = parseReplaceString('newfoo_newbar'); actual = replacePattern.buildReplaceString(['Foo_Bar'], true); assert.equal(actual, 'Newfoo_Newbar');


Question:
, Replace string functionality in search does not work properly for hyphen and underscore separated variables , Initially figured it out from this Example: Replacingto with preserve case turned on replaces correctly to Replacing to with preserve case turned on replaces incorrectly to instead of PS : Additional Info from the code I found out there is a bug in function. The whole idea to call the replacement function again at was to reuse the already existing replacement logic ( First char capital , full caps and full small) but there was a bug as the hyphens and underscores were not even called because of wrong ordering in the condition checking logic.
Thanks for the PR, can you please phrase this issue in the form of a bug report (ie describe what to do, what happens, what is supposed to happen)

replacePattern = parseReplaceString('newfoo_newbar-abc'); actual = replacePattern.buildReplaceString(['Foo_Bar-abc'], true); assert.equal(actual, 'Newfoo_newbar-abc'); <ins> replacePattern = parseReplaceString('newfoo_newbar'); actual = replacePattern.buildReplaceString(['foo_Bar'], true); assert.equal(actual, 'newfoo_Newbar'); replacePattern = parseReplaceString('newfoo_newbar'); actual = replacePattern.buildReplaceString(['foo_BAR'], true); assert.equal(actual, 'newfoo_NEWBAR'); </ins> }); });


Question:
First, thanks for making VSCode soooo awesome! Wouldn't be as productive as I am without it Currently, VSCode suggests installing the to have support for TypeScript. However, is supposedly going to be deprecated sometime this year. ! Change the suggested extension to ESLint instead. This way, we're providing a solution to the community that is future-proof (at least for the foreseeable future) I'd be happy to open a PR if you were to accept this proposed solution. (it looks like this would be a matter of replacing the extension id here: )
Removing it sounds good. We already stopped recommending tslint for general ts users: Probably just remove the whole typescript section for now. Setting up eslint for TypeScript is not simple enough at the moment to show on the welcome page in my opinion Can you submit a PR that does that?
Agree with you there. Definitely!
I noticed you the "help wanted". I'm planning to submit a PR. Can we change the label indicate this issue is in progress or taken?

const extensionPacks: ExtensionSuggestion[] = [ { name: localize('welcomePage.javaScript', "JavaScript"), id: 'dbaeumer.vscode-eslint' }, <del> { name: localize('welcomePage.typeScript', "TypeScript"), id: 'ms-vscode.vscode-typescript-tslint-plugin' }, </del> { name: localize('welcomePage.python', "Python"), id: 'ms-python.python' }, // { name: localize('welcomePage.go', "Go"), id: 'lukehoban.go' }, { name: localize('welcomePage.php', "PHP"), id: 'felixfbecker.php-pack' },


Question:
! ! Version: 1.39.2 autoReveal always moves the filename entry to the middle in file explorer window when we select a file on tab. if the filename is not visible in the explorer, this is ok. if the filename is visible in explorer, it should not move the filename to the middle in explorer, just highlight the filename where it is, right there in explorer. thanks!
I've taken a stab at this in as it's something that annoys me, hope that's alright

if (item.isDisposed) { return this.onSelectResource(resource, reveal, retry + 1); } <del> this.tree.reveal(item, 0.5); </del> <ins> // Don't scroll to the item if it's already visible if (this.tree.getRelativeTop(item) === null) { this.tree.reveal(item, 0.5); } </ins> } this.tree.setFocus([item]);


Question:
I'd love it if the description would specify that this setting only pertains to the command as explained in , as opposed to the SCM interface, which would be the expected behavior according to the current description.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.564 --<!-- potentialduplicatescomment --
Feel free to submit a PR for this instead. Here's where you want to edit:
Cool, thanks!

"config.scanRepositories": "List of paths to search for git repositories in.", "config.showProgress": "Controls whether git actions should show progress.", "config.rebaseWhenSync": "Force git to use rebase when running the sync command.", <del> "config.confirmEmptyCommits": "Always confirm the creation of empty commits.", </del> <ins> "config.confirmEmptyCommits": "Always confirm the creation of empty commits for the 'Git: Commit Empty' command.", </ins> "config.fetchOnPull": "Fetch all branches when pulling or just the current one.", "config.pullTags": "Fetch all tags when pulling.", "config.autoStash": "Stash any changes before pulling and restore them after successful pull.",


Question:
Babel 7.7 introduces a : , which shares the schema with . When editing a , one expect to see JSON validations same as . I tag it as feature request as Babel 7.7 is not yet released.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.92 --<!-- potentialduplicatescomment --

"url": "https://schemastore.azurewebsites.net/schemas/json/babelrc.json" }, { <ins> "fileMatch": "babel.config.json", "url": "https://schemastore.azurewebsites.net/schemas/json/babelrc.json" }, { </ins> "fileMatch": "jsconfig.json", "url": "https://schemastore.azurewebsites.net/schemas/json/jsconfig.json" },


Question:
Issue Type: <bBug</bReopening of steps the intergrated terminal. a command that generates more than one screen of content: to bottom run emacs and then close emacs using ctrl+c ctrl+x Bug Terminal scroll position is sometimes reset to top of buffer ! VS Code version: Code - Insiders 1.40.0-insider (, 2019-11-06T16:56:25.487Z) OS version: Darwin x64 18.7.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Can't repro some things that might help diagnose: Debug VS Code to see what's getting hitting hit. Calls to this when exiting would be particularly interesting Try repro in the demo Enable escape sequence logging and capture the entering emacs logs and exit emacs logs for both the case where it's fine and the case where the scroll is off.
Seems to happen most reliably when I run emacs as the git editor, but as the screenshot shows it can also happen for normal runs. From debugging: Normal case called with called twice with not called by Bugged case called with called with called again called by with
That's definitely the problem, could you get the stacktrace for both of those?
Stacks look the same. Here called with : ! : And with : ! It seems like a timing issue. Between the call to which sets and , someone else is setting . Here's one possible call sequences I see opening emacs in the bad case (true/false is the value of ): ! And from the good case: ! For what it's worth, I also currently see this more often in insiders (vs OSS)
I don't use emacs or something, just run some tests which output a lot of stuff, then hide and unhide terminal - after a couple of moments I am on top of terminal. Scrolling it with a scrollbar to the bottom doesn't bring me to the last line, so I press enter
Yeah, I have to press enter to get to the bottom of the terminal. I can confirm that this is an issue with Linux and Windows (I see this on both), so it doesn't appear to be specific to any OS. This also happens with both native and remote development, so it is not specific to remote development (which I use a lot). For me, it starts happening after about an hour of use, and then becomes really frequent (almost every time I open the terminal). Its causing me to form a habitual response to just always press enter when I open the terminal :frowning_face:
Another repro:
The case seems to be a symptom of the TerminalPanel onDidChangeVisibility callback not triggering a setVisible call on the active terminal instance. The code to re-sync the the Terminal viewport and scrollbar is in the TerminalInstance setVisible method. I'm not sure if it's the same issue as the Emacs variation of the bug.
I'm also having this issue. When I toggle open the terminal on WSL and PowerShell, the terminal is scrolled to the top, even with all extensions disabled. I'm not using emacs - it happens reliably regardless of the type of content in the terminal. Just focusing on the terminal doesn't have this behavior, only toggling it does.
Update: for anyone looking for a temporary fix, I used the extension "multi-command" and set up a shortcut to scroll the terminal to the bottom when opening it. Since I needed to first focus the terminal after opening it, I had to set up two cases, toggling when it's closed and toggling when it's already open: "multiCommand.commands": [ { "command": "multiCommand.toggleTermClosed", "sequence": [ "", "", "", ] }, { "command": "multiCommand.toggleTermOpen", "sequence": [ "", ] } ]`
verified with steps from

if (this._terminalService.terminalInstances.length > 0) { this._updateFont(); this._updateTheme(); <ins> this._terminalService.getActiveTab()?.setVisible(visible); </ins> } else { // Check if instances were already restored as part of workbench restore if (this._terminalService.terminalInstances.length === 0) {


Question:
Issue Type: <bBug</bTypeScript references code lenses the VS Code Code base, open the line: After type a comma then and re-type again Bug Suggestions take forever to come in Computing the references in TypeScript can potentially be expensive. This is caused because the method is not being as aggressively canceled when the document changes as I expect it to be (and as I believe it used to be) We can workaround this on the TS side but it seems like unexpected behavior /cc VS Code version: Code - OSS Dev 1.41.0 (Commit unknown, Date unknown) OS version: Darwin x64 18.7.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Adds a TS specific fix. Whenever the document changes, we now aggressively cancel all existing code lens requests against the TS server for that document
I believe nothing has changed here - at least not as far as my recent memory goes... Cancellation happens after 250ms which isn't aggressive but should also not be perceived as overly slow. Are those 250ms the delay you were seeing?
the delay is more like several seconds. It could be because we now provide references code lenses for object members, which adds a lot more references for TS to compute.
hm... but the delay/debounce on the by this... Does work happens on the extension host thread (not the tsserver-process) so that the cancellation doesn't come through until the event loop is free again?
Ok, so after more digging, I don't think is related to the debounce. Instead it seems some calls to are not ever canceled when the document changes. Here's the basic sequence I see on the extension host side: The issue is that the first batch of resolve requests (40-49) are not cancelled when they should be Resolving individual TS code lenses can take around a second in some cases
Nice find and kudos for digging through that code

return; } <del> this._currentResolveCodeLensSymbolsPromise = createCancelablePromise(token => { </del> <ins> const resolvePromise = createCancelablePromise(token => { </ins> const promises = toResolve.map((request, i) => {


Question:
Issue Type: <bBug</bTypeScript references code lenses the VS Code Code base, open the line: After type a comma then and re-type again Bug Suggestions take forever to come in Computing the references in TypeScript can potentially be expensive. This is caused because the method is not being as aggressively canceled when the document changes as I expect it to be (and as I believe it used to be) We can workaround this on the TS side but it seems like unexpected behavior /cc VS Code version: Code - OSS Dev 1.41.0 (Commit unknown, Date unknown) OS version: Darwin x64 18.7.0 <details<summarySystem Info</summary </details<!-- generated by issue reporter --
Adds a TS specific fix. Whenever the document changes, we now aggressively cancel all existing code lens requests against the TS server for that document
I believe nothing has changed here - at least not as far as my recent memory goes... Cancellation happens after 250ms which isn't aggressive but should also not be perceived as overly slow. Are those 250ms the delay you were seeing?
the delay is more like several seconds. It could be because we now provide references code lenses for object members, which adds a lot more references for TS to compute.
hm... but the delay/debounce on the by this... Does work happens on the extension host thread (not the tsserver-process) so that the cancellation doesn't come through until the event loop is free again?
Ok, so after more digging, I don't think is related to the debounce. Instead it seems some calls to are not ever canceled when the document changes. Here's the basic sequence I see on the extension host side: The issue is that the first batch of resolve requests (40-49) are not cancelled when they should be Resolving individual TS code lenses can take around a second in some cases
Nice find and kudos for digging through that code

return Promise.all(promises); }); <ins> this._currentResolveCodeLensSymbolsPromise = resolvePromise; </ins> this._currentResolveCodeLensSymbolsPromise.then(() => { if (this._currentCodeLensModel) { // update the cached state with new resolved items this._codeLensCache.put(model, this._currentCodeLensModel); } this._oldCodeLensModels.clear(); // dispose old models once we have updated the UI with the current model <del> this._currentResolveCodeLensSymbolsPromise = undefined; </del> <ins> if (resolvePromise === this._currentResolveCodeLensSymbolsPromise) { this._currentResolveCodeLensSymbolsPromise = undefined; } </ins> }, err => { onUnexpectedError(err); // can also be cancellation! <del> this._currentResolveCodeLensSymbolsPromise = undefined; </del> <ins> if (resolvePromise === this._currentResolveCodeLensSymbolsPromise) { this._currentResolveCodeLensSymbolsPromise = undefined; } </ins> }); } }


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

} <del> export function findValidPasteFileTarget(explorerService: IExplorerService, targetFolder: ExplorerItem, fileToPaste: { resource: URI; isDirectory?: boolean; allowOverwrite: boolean }, incrementalNaming: 'simple' | 'smart'): URI { </del> <ins> export function findValidPasteFileTarget(explorerService: IExplorerService, targetFolder: ExplorerItem, fileToPaste: { resource: URI; isDirectory?: boolean; allowOverwrite: boolean }, incrementalNaming: 'simple' | 'smart' | 'disabled'): URI { </ins> let name = resources.basenameOrAuthority(fileToPaste.resource); let candidate = resources.joinPath(targetFolder.resource, name);


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

break; } <del> name = incrementFileName(name, !!fileToPaste.isDirectory, incrementalNaming); </del> <ins> if (incrementalNaming !== 'disabled') { name = incrementFileName(name, !!fileToPaste.isDirectory, incrementalNaming); } </ins> candidate = resources.joinPath(targetFolder.resource, name); }


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

const context = explorerService.getContext(true); const toPaste = resources.distinctParents(await clipboardService.readResources(), r => r); const element = context.length ? context[0] : explorerService.roots[0]; <ins> const incrementalNaming = configurationService.getValue<IFilesConfiguration>().explorer.incrementalNaming; </ins> try { // Check if target is ancestor of pasted folder


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

target = element.isDirectory ? element : element.parent!; } <del> const incrementalNaming = configurationService.getValue<IFilesConfiguration>().explorer.incrementalNaming; const targetFile = findValidPasteFileTarget(explorerService, target, { resource: fileToPaste, isDirectory: fileToPasteStat.isDirectory, allowOverwrite: pasteShouldMove }, incrementalNaming); </del> <ins> const targetFile = findValidPasteFileTarget(explorerService, target, { resource: fileToPaste, isDirectory: fileToPasteStat.isDirectory, allowOverwrite: pasteShouldMove || incrementalNaming === 'disabled' }, incrementalNaming); </ins> return { source: fileToPaste, target: targetFile }; }));


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

}; await explorerService.applyBulkEdit(resourceFileEdits, options); } else { <del> const resourceFileEdits = sourceTargetPairs.map(pair => new ResourceFileEdit(pair.source, pair.target, { copy: true })); </del> <ins> const resourceFileEdits = sourceTargetPairs.map(pair => new ResourceFileEdit(pair.source, pair.target, { copy: true, overwrite: incrementalNaming === 'disabled' })); </ins> const undoLevel = configurationService.getValue<IFilesConfiguration>().explorer.confirmUndo; const options = { confirmBeforeUndo: undoLevel === UndoConfirmLevel.Default || undoLevel === UndoConfirmLevel.Verbose,


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

}, 'explorer.incrementalNaming': { 'type': 'string', <del> enum: ['simple', 'smart'], </del> <ins> enum: ['simple', 'smart', 'disabled'], </ins> enumDescriptions: [ nls.localize('simple', "Appends the word "copy" at the end of the duplicated name potentially followed by a number"), <del> nls.localize('smart', "Adds a number at the end of the duplicated name. If some number is already part of the name, tries to increase that number") </del> <ins> nls.localize('smart', "Adds a number at the end of the duplicated name. If some number is already part of the name, tries to increase that number"), nls.localize('disabled', "Disables incremental naming. If two files with the same name exist you will be prompted to overwrite the existing file") </ins> ], description: nls.localize('explorer.incrementalNaming', "Controls what naming strategy to use when a giving a new name to a duplicated explorer item on paste."), default: 'simple'


Question:
Please add an option to disable incremental naming. By disabling ... the end effect should be to effectively overwrite existing files when pasting. The current options of and are helpful; however, not useful in my context. For myself and those users who commonly do file operations in the host OS file explorer, the expected behavior when copying files/folders in the VSCode explorer is to similarly have these overwritten.
<!-- -96bd-47a8-a0e8- --This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our . Happy Coding!
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -a7ce-58b9-b1f9- --This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our . Happy Coding
<!-- -c9e0-7adb-d31b- --:slightlysmilingface: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our . Happy Coding!
We are open to a PR which adds the option to the setting. Code pointer
To verify set and copy and paste a file to ensure its name isn't changed and if a file of the same name exists in that directory it asks to overwrite the file

colors: boolean; badges: boolean; }; <del> incrementalNaming: 'simple' | 'smart'; </del> <ins> incrementalNaming: 'simple' | 'smart' | 'disabled'; </ins> excludeGitIgnore: boolean; fileNesting: { enabled: boolean;


Question:
<!-- 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: code-server2.1692-vsc1.39.2-linux-x86_64 and a few previous OS Version: Fedora 31 Firefox 70 @ Windows 10 1909 I am running VS Code remotely via code-server. When I use Find function to search something, then press Esc to exit search field and try to insert a new line by Enter, the search field is opened instead of inserting a new line. It works fine in Chrome though. +F, type a text, press Enter Esc to exit search field, eventually press End to deselect found text Enter field is opened again instead of inserting a new line <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.482 --<!-- potentialduplicatescomment --
A similar issue was reported for the monaco-editor. The cause and fix should be the same, so I'm linking it here:
Yes, monaco playground behaves the same on my side.
I wonder if this issue is reproducible when running VSCode in a browser. We allow to run VSCode in a very simplified form in a browser following these steps: setup to be able to run VSCode out of sources: run from a command line it should open a browser with VSCode running If you are not able to set this up, we also provide a hosted version of VSCode for Web at: https://vscode-web-test- Does the issue reproduce in that setup in the browser?
I just tried the web version and it reproduces there, too.
I have tested the playground on azurewebsites and the issue is reproducible. !
Thanks for testing
This problem happens to me too, when using codercom/code-server:2.1688-vsc1.39.2 in Firefox Linux. Enter starts working again when you close the Find box enough times by clicking it instead of pressing Escape.

} public disable(): void { <ins> this.blur(); </ins> this.input.disabled = true; this._hideMessage(); }


Question:
VS Code has support for . It would be nice to also have support for "normal" region folding.
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.732 --- <!-- score: 0.506 --- <!-- score: 0.503 --- <!-- score: 0.456 --<!-- potentialduplicatescomment --

], "folding": { "markers": { <del> "start": "^=pods*$", "end": "^=cuts*$" </del> <ins> "start": "^(?:(?:=pods*$)|(?:s*#regionb))", "end": "^(?:(?:=cuts*$)|(?:s*#endregionb))" </ins> } } }  No newline at end of file


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

description: localize('symbolSortOrder', "Controls how symbols are sorted in the breadcrumbs outline view."), type: 'string', default: 'position', <ins> overridable: true, </ins> enum: ['position', 'name', 'type'], enumDescriptions: [ localize('symbolSortOrder.position', "Show symbol outline in file position order."),


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/breadcrumbscontrol'; import { OutlineElement, OutlineModel, TreeElement } from 'vs/editor/contrib/documentSymbols/outlineModel'; <del> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; </del> <ins> import { IConfigurationService, IConfigurationOverrides } from 'vs/platform/configuration/common/configuration'; </ins> import { FileKind, IFileService, IFileStat } from 'vs/platform/files/common/files'; import { IConstructorSignature1, IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { WorkbenchDataTree, WorkbenchAsyncDataTree } from 'vs/platform/list/browser/listService';


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

export class BreadcrumbsOutlinePicker extends BreadcrumbsPicker { protected readonly _symbolSortOrder: BreadcrumbsConfig<'position' | 'name' | 'type'>; <ins> protected _outlineComparator: OutlineItemComparator; </ins> constructor( parent: HTMLElement,


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

) { super(parent, instantiationService, themeService, configurationService); this._symbolSortOrder = BreadcrumbsConfig.SymbolSortOrder.bindTo(this._configurationService); <ins> this._outlineComparator = new OutlineItemComparator(); </ins> } protected _createTree(container: HTMLElement) {


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

collapseByDefault: true, expandOnlyOnTwistieClick: true, multipleSelectionSupport: false, <del> sorter: new OutlineItemComparator(this._getOutlineItemCompareType()), </del> <ins> sorter: this._outlineComparator, </ins> identityProvider: new OutlineIdentityProvider(), keyboardNavigationLabelProvider: new OutlineNavigationLabelProvider(), filter: this._instantiationService.createInstance(OutlineFilter, 'breadcrumbs')


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

const tree = this._tree as WorkbenchDataTree<OutlineModel, any, FuzzyScore>; tree.setInput(model); <ins> const textModel = model.textModel; const overrideConfiguration = { resource: textModel.uri, overrideIdentifier: textModel.getLanguageIdentifier().language }; this._outlineComparator.type = this._getOutlineItemCompareType(overrideConfiguration); </ins> if (element !== model) { tree.reveal(element, 0.5); tree.setFocus([element], this._fakeEvent);


Question:
The setting "breadcrumbs.symbolSortOrder" cannot be enabled for a specific language, i.e. "[markdown]": { "breadcrumbs.symbolSortOrder": "position" } is not possible in the settings. It makes sense to sort by position in markdown files to see headers and subheaders as they are. However, one might want to display symbols by type when writing code. Thank you in advance!
Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for existing issues . See also our guidelines. Happy Coding!
Actually not a duplicate but should be straight forward to implement as filter-options can already be defined per language
Could you point me towards how to get the current resource from the editor model inside ?
The  has a reference to the text model
to verify, have this setting and a file with this content (symbol should be sorted alphabetically) Now, paste the same content into and make sure symbols are sorted by position

} } <del> private _getOutlineItemCompareType(): OutlineSortOrder { switch (this._symbolSortOrder.getValue()) { </del> <ins> private _getOutlineItemCompareType(overrideConfiguration?: IConfigurationOverrides): OutlineSortOrder { switch (this._symbolSortOrder.getValue(overrideConfiguration)) { </ins> case 'name': return OutlineSortOrder.ByName; case 'type':


Question:
insiders, install remote SSH extension the Remote view container all the views via context menu menu on the title -the views are not there and they can not be brought back -the views are back -I would expect the hidden state to be preserved fyi !
Assigning to as remote viewlet has special treatment.
Original decision was that none of the views in the filter-view should be hide-able. Looks like I missed a spot!

this.focus(); } <del> getContextMenuActions(): IAction[] { </del> <ins> getContextMenuActions(viewDescriptor?: IViewDescriptor): IAction[] { </ins> const result: IAction[] = []; <ins> if (viewDescriptor) { result.push(<IAction>{ id: `${viewDescriptor.id}.removeView`, label: localize('hideView', "Hide"), enabled: viewDescriptor.canToggleVisibility, run: () => this.toggleViewVisibility(viewDescriptor.id) }); } </ins> const viewToggleActions = this.viewsModel.viewDescriptors.map(viewDescriptor => (<IAction>{ id: `${viewDescriptor.id}.toggleVisibility`, label: viewDescriptor.name,


Question:
insiders, install remote SSH extension the Remote view container all the views via context menu menu on the title -the views are not there and they can not be brought back -the views are back -I would expect the hidden state to be preserved fyi !
Assigning to as remote viewlet has special treatment.
Original decision was that none of the views in the filter-view should be hide-able. Looks like I missed a spot!

run: () => this.toggleViewVisibility(viewDescriptor.id) })); <ins> if (result.length && viewToggleActions.length) { result.push(new Separator()); } </ins> result.push(...viewToggleActions); const parentActions = this.getViewletContextMenuActions(); <del> if (viewToggleActions.length && parentActions.length) { </del> <ins> if (result.length && parentActions.length) { </ins> result.push(new Separator()); } result.push(...parentActions); return result; }


Question:
insiders, install remote SSH extension the Remote view container all the views via context menu menu on the title -the views are not there and they can not be brought back -the views are back -I would expect the hidden state to be preserved fyi !
Assigning to as remote viewlet has special treatment.
Original decision was that none of the views in the filter-view should be hide-able. Looks like I missed a spot!

event.stopPropagation(); event.preventDefault(); <del> const actions: IAction[] = []; actions.push(<IAction>{ id: `${viewDescriptor.id}.removeView`, label: localize('hideView', "Hide"), enabled: viewDescriptor.canToggleVisibility, run: () => this.toggleViewVisibility(viewDescriptor.id) }); const otherActions = this.getContextMenuActions(); if (otherActions.length) { actions.push(...[new Separator(), ...otherActions]); } </del> <ins> const actions: IAction[] = this.getContextMenuActions(viewDescriptor); </ins> let anchor: { x: number, y: number } = { x: event.posx, y: event.posy }; this.contextMenuService.showContextMenu({


Question:
VSCode Version: 1.41.0 OS Version: Not applicable Steps to Reproduce: to row 231 that the word 'must' is unexpectedly repeated. Does this issue occur when all extensions are disabled?: Yes
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.555 --- <!-- score: 0.539 --<!-- potentialduplicatescomment --

if (contribution.scopes) { if ((!Array.isArray(contribution.scopes) || contribution.scopes.some(s => typeof s !== 'string'))) { <del> collector.error(nls.localize('invalid.scopes', "If defined, 'configuration.tokenStyleDefaults.scopes' must must be an array or strings")); </del> <ins> collector.error(nls.localize('invalid.scopes', "If defined, 'configuration.tokenStyleDefaults.scopes' must be an array or strings")); </ins> continue; } tokenStyleDefault.scopesToProbe = [contribution.scopes];


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

if (ranges.length > 0) { this._emitModelTokensChangedEvent({ tokenizationSupportChanged: false, <ins> semanticTokensApplied: false, </ins> ranges: ranges }); }


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

this._emitModelTokensChangedEvent({ tokenizationSupportChanged: false, <ins> semanticTokensApplied: tokens !== null, </ins> ranges: [{ fromLineNumber: 1, toLineNumber: this.getLineCount() }] }); }


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

this._tokens.flush(); this._emitModelTokensChangedEvent({ tokenizationSupportChanged: true, <ins> semanticTokensApplied: false, </ins> ranges: [{ fromLineNumber: 1, toLineNumber: this._buffer.getLineCount()


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

this._emitModelTokensChangedEvent({ tokenizationSupportChanged: false, <ins> semanticTokensApplied: false, </ins> ranges: [{ fromLineNumber: 1, toLineNumber: this.getLineCount() }] }); }


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

*/ export interface IModelTokensChangedEvent { readonly tokenizationSupportChanged: boolean; <ins> readonly semanticTokensApplied: boolean; </ins> readonly ranges: { /** * The start of the range (inclusive)


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

import './largeFileOptimizations'; import './inspectEditorTokens/inspectEditorTokens'; import './saveParticipants'; <ins> import './semanticTokensHelp'; </ins> import './toggleColumnSelection'; import './toggleMinimap'; import './toggleMultiCursorModifier';


Question:
As mentioned in , the goal is to improve the first impression of semantic highlighting as well allow themes to opt-in to semantic highlighting. give themes a way to opt-in to semantic highlighting enable semantic coloring by default only the built-in themes. All other themes can be enabled by the theme author or in the user settings. show a notification when semantic coloring shows up the first time. The notification will point to the docs with background and information on how to configure the feature. fix the bugs found related to wrong token classification and color lookup. no longer show semantic color in imports
I like this feature. I think an individual config is better than a global one because it will allow us to use non-maintained themes that have semantic highlighting disabled and themes that have it enabled, without having to set the global config every time we change from a theme that uses it to one that doesn't
It's a good default setting
What are the reasons? It would be nice to know what most theme creators think, not just a few. Maybe some of us would like to use it A configuration could be to enable or disable that feature:
Changes pushed.
To verify: create TypeScript file . If semantic color is enabled, , and all get the function color Open a built-in in theme, semantic color should be enabled verify that the very first time the semantic colors are show, a notification dialog is shown Install a theme from the marketplace (e.g. ), semantic color should be disabled. try and semantic highlighting should be enabled verify
~Now that semantic highlighting is opt-in on a per theme basis, is there any way for a user to override that? I use Monokai Pro, which hasn't been updated in quite some time, and the developer seems fairly inactive now. The semantic highlighting was working great on 1.43, and I'd like to get it back now that it's been disabled in 1.43.1.~ ~I tried adding~ ~to my user config, but that didn't work.~ Edit: The above actually did work, except that semantic highlighting doesn't work on imports. I see now that this is the intended behavior. But why is semantic highlighting no longer available for import statements?
Make sure to also remove
Sorry, I was able to get semantic highlighting working by setting the config in my previous reply. But I'm wondering if it's possible to re-enable semantic highlighting on imports. On 1.43, variable names in import statements in Javascript would be highlighted based on their type. But on 1.43.1 with semantic highlighting enabled, import lines are no longer highlighted, as noted in your original message.

<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 nls from 'vs/nls'; import * as path from 'vs/base/common/path'; import { Disposable, DisposableStore } from 'vs/base/common/lifecycle'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; import { IEditorContribution } from 'vs/editor/common/editorCommon'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { URI } from 'vs/base/common/uri'; import { ITextModel } from 'vs/editor/common/model'; import { IWorkbenchThemeService } from 'vs/workbench/services/themes/common/workbenchThemeService'; /** * Shows a message when semantic tokens are shown the first time. */ export class SemanticTokensHelp extends Disposable implements IEditorContribution { public static readonly ID = 'editor.contrib.semanticHighlightHelp'; constructor( _editor: ICodeEditor, @INotificationService _notificationService: INotificationService, @IOpenerService _openerService: IOpenerService, @IWorkbenchThemeService _themeService: IWorkbenchThemeService ) { super(); const toDispose = this._register(new DisposableStore()); const localToDispose = toDispose.add(new DisposableStore()); const installChangeTokenListener = (model: ITextModel) => { localToDispose.add(model.onDidChangeTokens((e) => { if (!e.semanticTokensApplied) { return; } toDispose.dispose(); // uninstall all listeners, makes sure the notification is only shown once per window const message = nls.localize( { key: 'semanticTokensHelp', comment: [ 'Variable 0 will be a file name.', 'Variable 1 will be a theme name.' ] }, "Semantic highlighting has been applied to '{0}' as the theme '{1}' has semantic highlighting enabled.", path.basename(model.uri.path), _themeService.getColorTheme().label ); _notificationService.prompt(Severity.Info, message, [ { label: nls.localize('learnMoreButton', "Learn More"), run: () => { const url = 'https://go.microsoft.com/fwlink/?linkid=2122588'; _openerService.open(URI.parse(url)); } } ], { neverShowAgain: { id: 'editor.contrib.semanticTokensHelp' } }); })); }; const model = _editor.getModel(); if (model !== null) { installChangeTokenListener(model); } toDispose.add(_editor.onDidChangeModel((e) => { localToDispose.clear(); const model = _editor.getModel(); if (!model) { return; } installChangeTokenListener(model); })); } } registerEditorContribution(SemanticTokensHelp.ID, SemanticTokensHelp); </ins>


Question:
Testing Why is not there a contribution point for timeline provider? Following are the advantages I am not sure how I have to activate my extension if I only contribute timeline provider. Having a timeline contribution point can allow me to activate my extension when user starts using the timeline my extension contributesAlso helps in displaying the feature contributions in extension editor view
and I talked about supporting this originally but felt that it was something that could be later.
Hm, not sure... Somehow timeline feels like master-detail, e.g you open an editor and the timeline shows its contents. With that usage-pattern it feels wrong to have an activation event. Then there is the 'Open timeline' command which is different... You could that command as activation event and all is good
On what event shall an extension contributing a timeline should be activated?
For instance these and
should we support an activation? Rather than a really specific point just for the timeline?
Yeah, that would make sense
To verify ensure that your extension that contributes a timeline can activate properly when the timeline is revealed via the activation

import { IHoverService } from 'vs/workbench/services/hover/browser/hover'; import { IHoverDelegate, IHoverDelegateOptions } from 'vs/base/browser/ui/iconLabel/iconHoverDelegate'; import { IUriIdentityService } from 'vs/platform/uriIdentity/common/uriIdentity'; <ins> import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; </ins> const ItemHeight = 22;


Question:
Testing Why is not there a contribution point for timeline provider? Following are the advantages I am not sure how I have to activate my extension if I only contribute timeline provider. Having a timeline contribution point can allow me to activate my extension when user starts using the timeline my extension contributesAlso helps in displaying the feature contributions in extension editor view
and I talked about supporting this originally but felt that it was something that could be later.
Hm, not sure... Somehow timeline feels like master-detail, e.g you open an editor and the timeline shows its contents. With that usage-pattern it feels wrong to have an activation event. Then there is the 'Open timeline' command which is different... You could that command as activation event and all is good
On what event shall an extension contributing a timeline should be activated?
For instance these and
should we support an activation? Rather than a really specific point just for the timeline?
Yeah, that would make sense
To verify ensure that your extension that contributes a timeline can activate properly when the timeline is revealed via the activation

@IThemeService themeService: IThemeService, @ITelemetryService telemetryService: ITelemetryService, @ILabelService private readonly labelService: ILabelService, <del> @IUriIdentityService private readonly uriIdentityService: IUriIdentityService </del> <ins> @IUriIdentityService private readonly uriIdentityService: IUriIdentityService, @IExtensionService private readonly extensionService: IExtensionService, </ins> ) { super({ ...options, titleMenuId: MenuId.TimelineTitle }, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService);


Question:
Testing Why is not there a contribution point for timeline provider? Following are the advantages I am not sure how I have to activate my extension if I only contribute timeline provider. Having a timeline contribution point can allow me to activate my extension when user starts using the timeline my extension contributesAlso helps in displaying the feature contributions in extension editor view
and I talked about supporting this originally but felt that it was something that could be later.
Hm, not sure... Somehow timeline feels like master-detail, e.g you open an editor and the timeline shows its contents. With that usage-pattern it feels wrong to have an activation event. Then there is the 'Open timeline' command which is different... You could that command as activation event and all is good
On what event shall an extension contributing a timeline should be activated?
For instance these and
should we support an activation? Rather than a really specific point just for the timeline?
Yeah, that would make sense
To verify ensure that your extension that contributes a timeline can activate properly when the timeline is revealed via the activation

override setVisible(visible: boolean): void { if (visible) { <ins> this.extensionService.activateByEvent('onView:timeline'); </ins> this.visibilityDisposables = new DisposableStore(); this.editorService.onDidActiveEditorChange(this.onActiveEditorChanged, this, this.visibilityDisposables);


Question:
Issue Type: <bBug</bI moved all views in panel to sidebar and VSCode crashed the first time I pressed ctrl + j to show panel. I can consistently repro this issue. VS Code version: Code - Insiders 1.44.0-insider (, 2020-04-03T23:31:33.481Z) OS version: Windows_NT x64 10.0. <!-- generated by issue reporter --
To Verify: all panels to the sidebar (panel will hide) Ctrl+J that the panel opens to an empty view e.g. (empty Terminal View) and that you do not crash. We will iterate on a better UX next milestone.
I made this change as the safest option for now. If you have a better solution that warrants another fix, please take over. Otherwise, will roll with this.
Yah looks the safest fix for now. Seems panel is not ready to handle no active panels. Is there a follow up issue for this created?
but the panel does handle no active panels if you run the command instead of (<kbdCtrl</kbd+<kbdJ</kbd) !
Yeah there are some issues with it and it is not working always. Hence we did a safe fix for now. We are working on this with proper UX for next milestone.

const viewContainer = this.getViewContainer(panelDescriptor.id); if (viewContainer?.hideIfEmpty) { const viewDescriptors = this.viewDescriptorService.getViewDescriptors(viewContainer); <del> if (viewDescriptors.activeViewDescriptors.length === 0) { </del> <ins> if (viewDescriptors.activeViewDescriptors.length === 0 && this.compositeBar.getPinnedComposites().length > 1) { </ins> this.hideComposite(panelDescriptor.id); // Update the composite bar by hiding } }


Question: <!-- 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.

"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.",


Question:
<!-- 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.1 OS Version: Linux 5.6.4-arch1-1 SMP PREEMPT x86_64 GNU/Linux Steps to Reproduce: a symbolic link to the VSCode starting script with a space in the name. For example: "My VSCode" from the terminal Error is printed to the terminal: All in the starting script () should be enclosed in double quotes to avoid this error. <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes
I can take this!
great!

fi fi <del> if [ ! -L $0 ]; then </del> <ins> if [ ! -L "$0" ]; then </ins> # if path is not a symlink, find relatively <del> VSCODE_PATH="$(dirname $0)/.." </del> <ins> VSCODE_PATH="$(dirname "$0")/.." </ins> else if command -v readlink >/dev/null; then # if readlink exists, follow the symlink and find relatively <del> VSCODE_PATH="$(dirname $(readlink -f $0))/.." </del> <ins> VSCODE_PATH="$(dirname $(readlink -f "$0"))/.." </ins> else # else use the standard install location VSCODE_PATH="/usr/share/@@NAME@@"