jiebi/CodeConvo huggingface dataset:
Change:
<!-- Do you have a question? Please ask it on --I am building a component that is lazily loaded (and therefore lazily calls ). The callback passed in to registerThemingParticipant is never getting called though and it seems like this is because disposes any previous and does not add it back for some code paths. It looks like assumes that will add back the listener , but there are multiple code paths in that neither call nor add back the listener. The specific case I am hitting is When this case is hit, the listener is never re-registered, so subsequent calls to will have no effect.
I do not see this is an extension API.. are there any steps to verify this?
No, its just in code, no need to verify
Adding verified tag so that it wont be seen in the to verify list

Discussion:
themeId = validateThemeId(themeId); // migrate theme ids <del> if (this.themingParticipantChangeListener) { this.themingParticipantChangeListener.dispose(); this.themingParticipantChangeListener = null; } </del> return this.findThemeData(themeId, DEFAULT_THEME_ID).then(themeData => { if (themeData) {

$(this.container).addClass(newTheme.id); } this.currentColorTheme = newTheme; <del> this.themingParticipantChangeListener = themingRegistry.onThemingParticipantAdded(p => this.updateDynamicCSSRules(this.currentColorTheme)); </del> <ins> if (!this.themingParticipantChangeListener) { this.themingParticipantChangeListener = themingRegistry.onThemingParticipantAdded(p => this.updateDynamicCSSRules(this.currentColorTheme)); } </ins> this.sendTelemetry(newTheme.id, newTheme.extensionData, 'color');
Change:
VSCode Version: Code 1.12.2 (, 2017-05-10T13:20:36.315Z) OS Version: Windows_NT ia32 10.0. Steps to Reproduce: "JSON" file Expected outcome styled as (invalid) content token. Actual outcome styled as comment. Still properly marked as invalid, though. Remarks is OK. Same steps in JavaScript file is OK. ! Ad "JSON" in quotation marks: .

Discussion:
<array> <dict> <key>begin</key> <del> <string>/**</string> </del> <ins> <string>/**(?!/)</string> </ins> <key>captures</key> <dict> <key>0</key>
Change:
When renaming a file or a folder in the explorer sidebar, you can see that its name has an offset of 1px because of the border of the input box. Although that's trivial, it is something interrupting for me. May we make the input box move left 1px so that the names will be aligned?
Nope (Windows): !
Not important for this milestone Fyi
I now see this (using the GH Sharp theme) <img width="115" alt="screenshot 2018-10-30 at 10 53 08" src="https://user-"
Fixed the border by reverting the PR. The original issue still stands, moving it to the backlog
This issue is being closed to keep the number of issues in our inbox on a manageable level, we are closing issues that are not going to be addressed in the foreseeable future: We look at the number of votes the issue has received and the number of duplicate issues filed. More details . If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider. If you wonder what we are up to, please see our and guidelines. Thanks for your understanding and happy coding!

Discussion:
.monaco-workbench.linux .explorer-viewlet .explorer-item .monaco-inputbox, .monaco-workbench.mac .explorer-viewlet .explorer-item .monaco-inputbox { height: 22px; <ins> margin-left: -1px; </ins> } .explorer-viewlet .explorer-item .monaco-inputbox > .wrapper > .input {
Change:
The 'meta' output 'Press any key to close the terminal' should be visually distinct from the process output (see image below). I suggest to use a grey foreground color for the text, try a grey background color, or decorate the text with a prefix/suffix character . ! // fyi
You should be able to change the string that's send to to include a background escape sequence like this: . It needs to use one of the terminal colors though, maybe a black background with white foreground? <img width="328" alt="screen shot 2017-05-28 at 11 33 47 am" src=""
It needs to use one of the terminal colors though, maybe a black background with white foreground? this would work for me, is there a way to make this sensitive to the theme? Below is another example when using a dark theme? Also an empty line to separate the message would help to make the message more distinct. !
An empty line is easy, and terminal colors are based on the theme so it should work fine doing that.
what do you think? Could also just do bold text and the newline? ! ! !
I would only do bold text with a newline and not change the background.
:+1: merging ! !
nice

Discussion:
let message = typeof this._shellLaunchConfig.waitOnExit === 'string' ? this._shellLaunchConfig.waitOnExit : nls.localize('terminal.integrated.waitOnExit', 'Press any key to close the terminal'); <ins> // Bold the message and add an extra new line to make it stand out from the rest of the output message = `nx1b[1m${message}x1b[0m`; </ins> this._xterm.writeln(message); // Disable all input if the terminal is exiting and listen for next keypress this._xterm.setOption('disableStdin', true);
Change:
VSCode Version: Code - Insiders 1.13.0-insider (, 2017-05-30T05:12:15.312Z) OS Version: Linux x64 4.10.0-21-generic Extensions: ; fyi ! !
The command palette doesn't use the new fuzzyScore-logic. It maybe should tho
Welcome to
I've noticed that it does in fact match characters inside parentheses, but won't match them if they're right next to the parentheses. In my example GIF below you can see the following: to match completely, due to the being next to the parentheses if I actually type the parentheses if I type words inside the parentheses but aren't next to them ! EDIT (2018-11-12): It matches if all of the the characters in inside the parentheses: ! However it won't match if i search two different parts of the text inside: !
Thanks you

Discussion:
); } <ins> const wordSeparators = new Set<number>(); '`~!@#$%^&*()-=+[{]}|;:'",.<>/?' .split('') .forEach(s => wordSeparators.add(s.charCodeAt(0))); function isWordSeparator(code: number): boolean { return wordSeparators.has(code); } </ins> function isAlphanumeric(code: number): boolean { return isLower(code) || isUpper(code) || isNumber(code); }

function nextWord(word: string, start: number): number { for (let i = start; i < word.length; i++) { const c = word.charCodeAt(i); <del> if (isWhitespace(c) || (i > 0 && isWhitespace(word.charCodeAt(i - 1)))) { </del> <ins> if (isWhitespace(c) || (i > 0 && isWhitespace(word.charCodeAt(i - 1))) || isWordSeparator(c) || (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) { </ins> return i; } }
Change:
VSCode Version: Code - Insiders 1.13.0-insider (, 2017-05-30T10:34:18.253Z) OS Version: Darwin x64 15.6.0 Extensions: none Testing Steps to Reproduce: VoiceOver content assist proposal is selected and read content assist content assist with same proposals proposal is selected, but not read
Between closing and opening of content assist, does the suggestion list go away or remain?
It goes away.
I also see this for suggestion list items that have already been visited
It reads it out every other time it shows up. Interesting.
I'm still seeing this issue when manually triggering suggestions on Steps: JS file, trigger suggestions using ctrl+space on a blank line esc suggestions manually again without moving the cursor The first selected suggestions iis not read out again when you do this
I do not think this is ciritcal, since this was behaving like this for a couple of releases feel free to postpone to August
unable to replicate with NVDA. Is this Voiceover? Can you check if 1.25.1 is the same?
Unable to replicate with Voiceover as well. Could you take another look? This is on
Note that not reading suggestions when the editor loses then regains focus is a separate bug, tracked at . says he was able to verify this bug.
Moving to August
Note to verifiers: this issue is about the alert not being read twice in the same "context". The issue of alerts not being read when code loses focus then regains it is separate and tracked at .

Discussion:
} } <ins> let repeatedTimes = 0; let prevText: string | undefined = undefined; </ins> function insertMessage(target: HTMLElement, msg: string): void { if (!ariaContainer) { // console.warn('ARIA support needs a container. Call setARIAContainer() first.'); return; } <del> if (target.textContent === msg) { msg = nls.localize('repeated', "{0} (occurred again)", msg); </del> <ins> if (prevText === msg) { repeatedTimes++; } else { prevText = msg; repeatedTimes = 0; } switch (repeatedTimes) { case 0: break; case 1: msg = nls.localize('repeated', "{0} (occurred again)", msg); break; default: msg = nls.localize('repeatedNtimes', "{0} (occurred {1} times)", msg, repeatedTimes); break; </ins> } dom.clearNode(target);
Change:
The tree/list is virtualized and as such a screen reader cannot make a correct statement on the number of entries. We should leverage and for that purpose within the tree and list widgets. The widgets know the number of elements to render and the currently selected items position in the set. /cc
Makes sense, I can look into it in june
Accidently closed this by PR which only address the list widget, still gotta do it for the tree
After looking into this with we have fixed this issue for the , however for the tree the situation is a bit more complex: It is not exactly specified what the and should be with respect to the tree structure. Should they be absolute or only relative to the siblings. In both of the cases we have an issue that the tree smartly chooses the minimal set of elements that need to be re-rendered, so if an element A gets removed and element B is above it, B will not get re-rendered and will still have the wrong attribute. Due to that we would need a bigger refactoring in order to fix this for the tree. So renaming this issue and pushing it to backlog for now.
The originating issue -- -- came in w.r.t. the Command Palette that displays a list. perhaps the root issue is that the implementation of the Command Palette uses a tree to display a list and that makes it difficult to express the list to Screen Readers ?
+1 for making the command palette use the list. I could also look into this when I get cycles if does not mind.
yeah +1 for using list for quick open, that would be very nice . I hope there are no things in tree that quick open depends on.
I have created this issue to track it

Discussion:
if (options.ariaLabel) { this.view.domNode.setAttribute('aria-label', options.ariaLabel); } <ins> this.view.domNode.setAttribute('aria-setsize', '0'); </ins> this.style(options); } splice(start: number, deleteCount: number, elements: T[] = []): void { this.eventBufferer.bufferEvents(() => this.spliceable.splice(start, deleteCount, elements)); <ins> this.view.domNode.setAttribute('aria-setsize', this.length.toString()); </ins> } get length(): number {

setFocus(indexes: number[]): void { indexes = indexes.sort(numericSort); this.focus.set(indexes); <ins> if (indexes.length) { this.view.domNode.setAttribute('aria-posinset', (indexes[0] + 1).toString()); } else { this.view.domNode.removeAttribute('aria-posinset'); } </ins> } focusNext(n = 1, loop = false): void {
Change:
The tree/list is virtualized and as such a screen reader cannot make a correct statement on the number of entries. We should leverage and for that purpose within the tree and list widgets. The widgets know the number of elements to render and the currently selected items position in the set. /cc
Makes sense, I can look into it in june
Accidently closed this by PR which only address the list widget, still gotta do it for the tree
After looking into this with we have fixed this issue for the , however for the tree the situation is a bit more complex: It is not exactly specified what the and should be with respect to the tree structure. Should they be absolute or only relative to the siblings. In both of the cases we have an issue that the tree smartly chooses the minimal set of elements that need to be re-rendered, so if an element A gets removed and element B is above it, B will not get re-rendered and will still have the wrong attribute. Due to that we would need a bigger refactoring in order to fix this for the tree. So renaming this issue and pushing it to backlog for now.
The originating issue -- -- came in w.r.t. the Command Palette that displays a list. perhaps the root issue is that the implementation of the Command Palette uses a tree to display a list and that makes it difficult to express the list to Screen Readers ?
+1 for making the command palette use the list. I could also look into this when I get cycles if does not mind.
yeah +1 for using list for quick open, that would be very nice . I hope there are no things in tree that quick open depends on.
I have created this issue to track it

Discussion:
return model.accessibilityProvider && model.accessibilityProvider.getAriaLabel(element); } <ins> public getPosInSet(tree: ITree, element: any): string { const model = this.modelProvider.getModel(); return String(model.entries.indexOf(element) + 1); } public getSetSize(): string { const model = this.modelProvider.getModel(); return String(model.entries.length); } </ins> } export class Filter implements IFilter {

* See also: https://www.w3.org/TR/wai-aria/states_and_properties#aria-label */ getAriaLabel(tree: ITree, element: any): string; <ins> getPosInSet?(tree: ITree, element: any): string; getSetSize?(): string; </ins> } export /* abstract */ class ContextMenuEvent {

// ARIA this.element.setAttribute('role', 'treeitem'); <del> const ariaLabel = this.context.accessibilityProvider.getAriaLabel(this.context.tree, this.model.getElement()); </del> <ins> const accessibility = this.context.accessibilityProvider; const ariaLabel = accessibility.getAriaLabel(this.context.tree, this.model.getElement()); </ins> if (ariaLabel) { this.element.setAttribute('aria-label', ariaLabel); } <ins> if (accessibility.getPosInSet && accessibility.getSetSize) { this.element.setAttribute('aria-setsize', accessibility.getSetSize()); this.element.setAttribute('aria-posinset', accessibility.getPosInSet(this.context.tree, this.model.getElement())); } </ins> if (this.model.hasTrait('focused')) { const base64Id = strings.safeBtoa(this.model.id);
Change:
VSCode Version: Code 1.12.2 (, 2017-05-10T13:16:25.899Z) OS Version: Linux x64 4.4.0-78-generic Extensions: ; Steps to Reproduce:
I had created a pr. which should fix it.

Discussion:
{ "id": "html", "extensions": [ <ins> ".rhtml", </ins> ".html", ".htm", ".shtml",
Change:
Suggest to add the and to the gear menu. !
Would love to see that. Can I provide an pr?
always

Discussion:
private static readonly showCommandsId = 'workbench.action.showCommands'; private static readonly openSettingsId = 'workbench.action.openGlobalSettings'; private static readonly openKeybindingsId = 'workbench.action.openGlobalKeybindings'; <ins> private static readonly selectColorThemeId = 'workbench.action.selectTheme'; private static readonly selectIconThemeId = 'workbench.action.selectIconTheme'; </ins> get id() { return 'vs.update'; } get name() { return ''; }

new Action(LightUpdateContribution.openSettingsId, nls.localize('settings', "Settings"), null, true, () => this.commandService.executeCommand(LightUpdateContribution.openSettingsId)), new Action(LightUpdateContribution.openKeybindingsId, nls.localize('keyboardShortcuts', "Keyboard Shortcuts"), null, true, () => this.commandService.executeCommand(LightUpdateContribution.openKeybindingsId)), new Separator(), <ins> new Action(LightUpdateContribution.selectColorThemeId, nls.localize('selectTheme.label', "Color Theme"), null, true, () => this.commandService.executeCommand(LightUpdateContribution.selectColorThemeId)), new Action(LightUpdateContribution.selectIconThemeId, nls.localize('themes.selectIconTheme.label', "File Icon Theme"), null, true, () => this.commandService.executeCommand(LightUpdateContribution.selectIconThemeId)), new Separator(), </ins> this.getUpdateAction() ]; }
Change:
VSCode Version: 1.13.0 OS Version: Mint 18 Steps to Reproduce: to print `this.someMethod(); You can see, that "this" is colorless. It's so bad, because I need with this highlight when I work with classes. For example comparsion between VS code(left) and Sublime (right). Also highlight for arguments sometimes is in place, sometimes is not. !
You can install extension for this. I recommended or
This is not a bug in the grammar. Other themes colorize just fine: ! Monokai does not however

Discussion:
}, { "name": "Class Variable", <del> "scope": "variable.other, variable.js, punctuation.separator.variable", </del> <ins> "scope": "variable.js, punctuation.separator.variable", </ins> "settings": { "fontStyle": "n    ttt", "foreground": "#6089B4"

} }, { <del> "name": "Function Call", "scope": "meta.function-call", "settings": { "fontStyle": "n    ttt", "foreground": "#0080FF" } }, { </del> "name": "Function Object", "scope": "meta.function-call.object", "settings": {

} }, { <del> "name": "Function Call Variable", "scope": "variable.other.property", "settings": { "fontStyle": "n    ttt", "foreground": "#9872A2" } }, { </del> "name": "Keyword Control", "scope": "keyword.control", "settings": {

"settings": { "foreground": "#b267e6" } <ins> }, { "name": "this.self", "scope": "variable.language", "settings": { "foreground": "#c7444a" } }, { "name": "this.self", "scope": "variable.language", "settings": { "foreground": "#c7444a" } </ins> } ] }  No newline at end of file

"settings": { "foreground": "#b267e6" } <ins> }, { "name": "this.self", "scope": "variable.language", "settings": { "foreground": "#FD971F" } </ins> } ] }  No newline at end of file
Change:
<img width="639" alt="screen shot 2017-06-15 at 4 04 46 pm" src="https://user-"

Discussion:
<div class="section learn"> <h2 class="caption">${escape(localize('welcomePage.learn', "Learn"))}</h2> <ul> <del> <li class="showCommands"><button data-href="command:workbench.action.showCommands"><h3 class="caption">${escape(localize('welcomePage.showCommands', "Find and run all commands"))}</h3> <span class="detail">${escape(localize('welcomePage.showCommandsDescription', "Rapidly access and search commands from the control panel ({0})")).replace('{0}', '<span class="shortcut" data-command="workbench.action.showCommands"></span>')}</span></button></li> </del> <ins> <li class="showCommands"><button data-href="command:workbench.action.showCommands"><h3 class="caption">${escape(localize('welcomePage.showCommands', "Find and run all commands"))}</h3> <span class="detail">${escape(localize('welcomePage.showCommandsDescription', "Rapidly access and search commands from the command palette ({0})")).replace('{0}', '<span class="shortcut" data-command="workbench.action.showCommands"></span>')}</span></button></li> </ins> <li class="showInterfaceOverview"><button data-href="command:workbench.action.showInterfaceOverview"><h3 class="caption">${escape(localize('welcomePage.interfaceOverview', "Interface overview"))}</h3> <span class="detail">${escape(localize('welcomePage.interfaceOverviewDescription', "Get a visual overlay highlighting the major components of the UI"))}</span></button></li> <li class="showInteractivePlayground"><button data-href="command:workbench.action.showInteractivePlayground"><h3 class="caption">${escape(localize('welcomePage.interactivePlayground', "Interactive playground"))}</h3> <span class="detail">${escape(localize('welcomePage.interactivePlaygroundDescription', "Try essential editor features out in a short walkthrough"))}</span></button></li> </ul>
Change:
VSCode Version: Code 1.13.1 (, 2017-06-14T18:21:47.485Z) OS Version: Windows_NT ia32 10.0. Extensions: ; Steps to Reproduce: color theme "Quiet Light" F something !
What is the expected color? Is the color wrong for the text, the buttons?
I would expect that the color with the current status gets a little bit more contrast...
What do you mean by 'current status'? The box around the 'case sensitive' button?
You actually do not see it, 'cause its contrast is that bad :D ! I see that on a very old monitor, I'm curious it has more contrast than yours. :O
Same issue here. Confirm that the bug exists. It should be instead of Can I send a PR for this? EDIT - Looking at other light theme it should be more of a red color than a gray one. Example - Light( Visual Studio ) has

Discussion:
"inputValidation.warningBorder": "#ffe055", "inputValidation.errorBackground": "#ffeaea", "inputValidation.errorBorder": "#f1897f", <del> "errorForeground": "#ffeaea", </del> <ins> "errorForeground": "#f1897f", </ins> "badge.background": "#705697AA", "progressBar.background": "#705697" }
Change:
Steps to Reproduce: a workspace with one folder that contains another folder "qunit" with some files 1 Clear Editor History some files from the qunit folder to add them to quick open history settings and define a files.exclude like this: =the qunit folder should now hide from the explorer =bring up quick open and notice the file from qunit still showing up This is unexpected, I have code that listens to changes to the pattern and remove entries that no longer match. When I debug this I end up in this location right before I enter here: The pattern does not match, but I verified that the setting is the one as defined. It gets created right here: Is there something wrong with parsing maybe? I have lost the ability to understand or even debug our glob implementation. Assigning to you in the hope that you have better ways of doing so. I think what we need is a way to log exactly how the matching happens within glob. Today this method is so heavily optimized and complex that I always loose myself in it.
Should have documented this: trimForExclusions is an optimization that only works for exclusions in a tree traversal. It simplifies the pattern to only match the folder 'qunit', but not the files in it. In a tree traversal that is enough and a much faster check to do. Opened a PR to clarify.
thanks

Discussion:
export type ParsedExpression = (path: string, basename?: string, siblingsFn?: () => string[] | TPromise<string[]>) => string | TPromise<string> /* the matching pattern */; export interface IGlobOptions { <ins> /** * Simplify patterns for use as exclusion filters during tree traversal to skip entire subtrees. Cannot be used outside of a tree traversal. */ </ins> trimForExclusions?: boolean; }

if (!this.mapRootToExpression.has(root.toString()) || !objects.equals(this.mapRootToExpression.get(root.toString()), rootExcludes)) { changed = true; <del> this.mapRootToExcludes.set(root.toString(), parse(rootExcludes, { trimForExclusions: true })); </del> <ins> this.mapRootToExcludes.set(root.toString(), parse(rootExcludes)); </ins> this.mapRootToExpression.set(root.toString(), objects.clone(rootExcludes)); } });

if (!this.mapRootToExpression.has(null) || !objects.equals(this.mapRootToExpression.get(null), globalExcludes)) { changed = true; <del> this.mapRootToExcludes.set(null, parse(globalExcludes, { trimForExclusions: true })); </del> <ins> this.mapRootToExcludes.set(null, parse(globalExcludes)); </ins> this.mapRootToExpression.set(null, objects.clone(globalExcludes)); }