jiebi/CodeConvo huggingface dataset:
Change:
Bug Is there any way to automatically add node_modules to .gitignore or ask the user? I see this every time - <img width="454" alt="image" src="https://user-"VS Code version: Code - Insiders 1.21.0-insider (, 2018-02-20T10:16:08.796Z) OS version: Darwin x64 17.4.0 <details<summarySystem Info</summary </details<details<summaryExtensions (3)</summaryExtensionVersion ------ vscode-eslint1.4.6 prettier-vscode1.1.3 python2018.1.0 </detailsReproduces only with extensions <!-- generated by issue reporter --
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.604 --- <!-- score: 0.462 --<!-- potentialduplicatescomment --
Negative Mr. Bot
That's a great idea, would you like to submit a PR?
I'll look into it. Can you put some pointers in the bug? What code files to look at?
This is where that message is sent: Here you have some API to add stuff to the ignore file: You can use basic NodeJS fs stuff to find out whether the user has a folder in the root of the workspace folder.
Thank you

Discussion:
const text = lastLine.isEmptyOrWhitespace ? `${textToAppend}n` : `n${textToAppend}n`; edit.insert(document.uri, lastLine.range.end, text); <del> workspace.applyEdit(edit); </del> <ins> await workspace.applyEdit(edit).then(document.save); </ins> }); }

this.isRepositoryHuge = didHitLimit; if (didHitLimit && !shouldIgnore && !this.didWarnAboutLimit) { <ins> //check for known large folders that should be in .gitignore let knownHugeFolders = ['node_modules']; 	//maybe get from config let knownHugeFolderUris: Uri[] = knownHugeFolders.map(folder => { return Uri.file(`${this.repository.root}${path.sep}${folder}`); }); knownHugeFolderUris = knownHugeFolderUris.filter(folder => { return fs.existsSync(folder.fsPath); }); let alreadyIgnored = await this.checkIgnore(knownHugeFolderUris.map(uri => uri.path)); //filter already ignored knownHugeFolderUris = knownHugeFolderUris.filter(folder => { return !alreadyIgnored.has(folder.path); }); //text const addKnown = localize('add known', "Would you like to add {0} to .gitignore?", knownHugeFolderUris.map(uri => path.basename(uri.fsPath)).join(', ')); const gitWarn = localize('huge', "The git repository at {0} has too many active changes, only a subset of Git features will be enabled.", this.repository.root); //options </ins> const neverAgain = { title: localize('neveragain', "Don't Show Again") }; <ins> const yes = { title: localize('yes', "Yes") }; </ins> <del> window.showWarningMessage(localize('huge', "The git repository at '{0}' has too many active changes, only a subset of Git features will be enabled.", this.repository.root), neverAgain).then(result => { </del> <ins> let warningPromise; if (knownHugeFolderUris.length) { warningPromise = window.showWarningMessage(`${gitWarn} ${addKnown}`, yes, neverAgain); } else { warningPromise = window.showWarningMessage(gitWarn, neverAgain); } warningPromise.then(result => { </ins> if (result === neverAgain) { config.update('ignoreLimitWarning', true, false); } <ins> else if (result === yes) { this.ignore(knownHugeFolderUris); } </ins> }); this.didWarnAboutLimit = true;
Change:
I wanted to customize my keybindings depending on the OutputPanel state, but it looks there's no clause to set in the stanza for it.
There is a context , please try that
Ok that works when if focused (but needs to be documented), what about when it's visible?
We accept PRs that update our docs. Checkout the vscode-docs repo. No this is not currently supported, we accept PRs that add this. Code pointers Similar to the viewlet service here The panelPart would add a context key
works but how does a user learn the panel ID?
good point. However we already had that issue with the viewlets, since we already have a "activeViewlet" conext key. We should document this properly

Discussion:
import { INotificationService } from 'vs/platform/notification/common/notification'; import { Dimension } from 'vs/base/browser/dom'; import { localize } from 'vs/nls'; <del> import { IDisposable } from 'vs/base/common/lifecycle'; </del> <ins> import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { RawContextKey, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; const ActivePanleContextId = 'activePanel'; export const ActivePanelContext = new RawContextKey<string>(ActivePanleContextId, ''); </ins> export class PanelPart extends CompositePart<Panel> implements IPanelService {

public _serviceBrand: any; <ins> private activePanelContextKey: IContextKey<string>; </ins> private blockOpeningPanel: boolean; private compositeBar: CompositeBar; private compositeActions: { [compositeId: string]: { activityAction: PanelActivityAction, pinnedAction: ToggleCompositePinnedAction } }; private dimension: Dimension; <ins> private disposables: IDisposable[] = []; </ins> constructor( id: string,

@IPartService partService: IPartService, @IKeybindingService keybindingService: IKeybindingService, @IInstantiationService instantiationService: IInstantiationService, <del> @IThemeService themeService: IThemeService </del> <ins> @IThemeService themeService: IThemeService, @IContextKeyService contextKeyService: IContextKeyService, </ins> ) { super( notificationService,

for (const panel of this.getPanels()) { this.compositeBar.addComposite(panel, false); } <ins> this.activePanelContextKey = ActivePanelContext.bindTo(contextKeyService); this.onDidPanelOpen(this._onDidPanelOpen, this, this.disposables); this.onDidPanelClose(this._onDidPanelClose, this, this.disposables); </ins> this.registerListeners(); }

this.toUnbind.push(this.onDidPanelClose(panel => this.compositeBar.deactivateComposite(panel.getId()))); } <ins> private _onDidPanelOpen(viewlet: IPanel): void { this.activePanelContextKey.set(viewlet.getId()); } private _onDidPanelClose(viewlet: IPanel): void { const id = viewlet.getId(); if (this.activePanelContextKey.get() === id) { this.activePanelContextKey.set(''); } } </ins> public get onDidPanelOpen(): Event<IPanel> { return this._onDidCompositeOpen.event; }

} return this.toolBar.getItemsWidth(); } <ins> dispose(): void { this.disposables = dispose(this.disposables); } </ins> } registerThemingParticipant((theme: ITheme, collector: ICssStyleCollector) => {
Change:
! I am currently building a theme and want to change the color of the clock that is white inside the yelloq circle. It's color is and i changed all colorsettings in my theme file that had that hexcode to a different color, but the clock stays at . There is a foreground color option for numbers (and text in general i suppose) that i already changed, it looks like this: !
Happy for help if someone has ideas. The challenge is to make it possible to theme the white background of that progress icon (living in ). It should leverage the for the color that is currently white and for the color that is currently blue. /cc
My proposal: move away from an image to a unicode character like
Question, how does one make the clock icon appear from repo version of Code? I'm currently working on this, but I need to figure out how to visually see the icon. Ideas?
e.g. open a very large git repository and click refresh from the git viewlet. Or install an extension.
You can also just check for updates via right click on it and it will appear for a short time.
Also, you can download this extension and use "Show Progress Badge" command.
Is this still being worked on? is not doing anything as far as I know.
I believe it should be possible with few steps: the SVG icon from base64 to text (xml) it into the HTML Maybe with something like CSS "fill" property to change color of icon to the "activityBarBadge.foreground"
If anyone is interested, here is the code pointer to where the badge indicator is set:
Verification steps: Install the extension and run the command and modify the color token via: The icon should now inherit the same color.

Discussion:
padding-right: 5px; } <del> .monaco-workbench .progress-badge > .badge-content { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMiAyIDE0IDE0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDIgMiAxNCAxNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTkgMTZjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTdjMy44NTkgMCA3IDMuMTQxIDcgN3MtMy4xNDEgNy03IDd6bTAtMTIuNmMtMy4wODggMC01LjYgMi41MTMtNS42IDUuNnMyLjUxMiA1LjYgNS42IDUuNiA1LjYtMi41MTIgNS42LTUuNi0yLjUxMi01LjYtNS42LTUuNnptMy44NiA3LjFsLTMuMTYtMS44OTZ2LTMuODA0aC0xLjR2NC41OTZsMy44NCAyLjMwNS43Mi0xLjIwMXoiLz48L3N2Zz4="); background-position: center center; background-repeat: no-repeat; </del> <ins> .monaco-workbench .progress-badge > .badge-content::before { -webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMiAyIDE0IDE0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDIgMiAxNCAxNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTkgMTZjLTMuODYgMC03LTMuMTQtNy03czMuMTQtNyA3LTdjMy44NTkgMCA3IDMuMTQxIDcgN3MtMy4xNDEgNy03IDd6bTAtMTIuNmMtMy4wODggMC01LjYgMi41MTMtNS42IDUuNnMyLjUxMiA1LjYgNS42IDUuNiA1LjYtMi41MTIgNS42LTUuNi0yLjUxMi01LjYtNS42LTUuNnptMy44NiA3LjFsLTMuMTYtMS44OTZ2LTMuODA0aC0xLjR2NC41OTZsMy44NCAyLjMwNS43Mi0xLjIwMXoiLz48L3N2Zz4="); width: 14px; height: 14px; position: absolute; top: 1px; left: 1px; background-color: currentColor; content: ''; </ins> }
Change:
Issue Type: <bBug</ba markdown preview. -click the preview in explorer open to the side happens This button should be removed as per new model. VS Code version: Code - Insiders 1.21.0-insider (, 2018-02-27T09:01:48.555Z) OS version: Windows_NT x64 10.0. Reproduces without extensions <!-- generated by issue reporter --

Discussion:
group: 'navigation', order: 10, command: openToSideCommand, <del> when: ResourceContextKey.HasResource </del> <ins> when: ContextKeyExpr.and(ResourceContextKey.HasResource, ResourceContextKey.IsFile) </ins> }); const revealInOsCommand = {
Change:
Issue Type: <bBug</bTesting . 1) Start creating a new folder in the explorer 2) Type 'folder1/' -once the '/' is in the input box every keystroke afterwards causes a full flicker of the information widget shown below the input box. This also happens on other platforms. VS Code version: Code - Insiders 1.21.0-insider (, 2018-02-27T06:17:53.785Z) OS version: Linux x64 4.4.0-59-generic Reproduces without extensions <!-- generated by issue reporter --
We need to debounce
Fixed by via

Discussion:
} public validate(): boolean { <del> let result: IMessage = null; </del> <ins> let errorMsg: IMessage = null; </ins> if (this.validation) { <del> result = this.validation(this.value); </del> <ins> errorMsg = this.validation(this.value); </ins> <del> if (!result) { </del> <ins> if (errorMsg) { this.inputElement.setAttribute('aria-invalid', 'true'); this.showMessage(errorMsg); } else if (this.inputElement.hasAttribute('aria-invalid')) { </ins> this.inputElement.removeAttribute('aria-invalid'); this.hideMessage(); <del> } else { this.inputElement.setAttribute('aria-invalid', 'true'); this.showMessage(result); </del> } } <del> return !result; </del> <ins> return !errorMsg; </ins> } private stylesForType(type: MessageType): { border: Color; background: Color } {
Change:
I would expect the info box to remain open and not close and open on each keystroke: ! /cc
duplicates
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!

Discussion:
} public validate(): boolean { <del> let result: IMessage = null; </del> <ins> let errorMsg: IMessage = null; </ins> if (this.validation) { <del> result = this.validation(this.value); </del> <ins> errorMsg = this.validation(this.value); </ins> <del> if (!result) { </del> <ins> if (errorMsg) { this.inputElement.setAttribute('aria-invalid', 'true'); this.showMessage(errorMsg); } else if (this.inputElement.hasAttribute('aria-invalid')) { </ins> this.inputElement.removeAttribute('aria-invalid'); this.hideMessage(); <del> } else { this.inputElement.setAttribute('aria-invalid', 'true'); this.showMessage(result); </del> } } <del> return !result; </del> <ins> return !errorMsg; </ins> } private stylesForType(type: MessageType): { border: Color; background: Color } {
Change:
you can commit "a line break as a message" to git
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.565 --- <!-- score: 0.484 --<!-- potentialduplicatescomment --
Hi I would like to take up this task. Could you point me to a starting point?
We don't really have to prevent it, but we can warn the user about it. Over there is some validation of the input box happening (for when lines are too long, for example). Maybe we can also warn the user that the current input isn't valid when all he does is enter a bunch of line breaks in it. But there should be no warning for when the box is empty, otherwise it would be too much "in the user's face".

Discussion:
return; } <ins> const whitespacesOnly = text.length && !text.replace(/s/g, ''); if (whitespacesOnly) { return { message: localize('commitMessageWhitespacesOnlyWarning', "Current commit message only contains whitespaces"), type: SourceControlInputBoxValidationType.Warning }; } </ins> let start = 0, end; let match: RegExpExecArray | null; const regex = /r?n/g;
Change:
On this one: ! Could put another arrow bottom right to point to notifications location.
PR via
Great, thanks!

Discussion:
left: 45px; } <ins> .monaco-workbench > .welcomeOverlay > .key.notifications { position: absolute; bottom: 25px; right: 16px; } </ins> .monaco-workbench > .welcomeOverlay > .key.problems > .label, <del> .monaco-workbench > .welcomeOverlay > .key.problems > .shortcut { </del> <ins> .monaco-workbench > .welcomeOverlay > .key.problems > .shortcut, .monaco-workbench > .welcomeOverlay > .key.notifications > .label, .monaco-workbench > .welcomeOverlay > .key.notifications > .shortcut { </ins> vertical-align: super; }

label: localize('welcomeOverlay.commandPalette', "Find and run all commands"), command: ShowAllCommandsAction.ID }, <ins> { id: 'notifications', arrow: '&cudarrr;', arrowLast: true, label: localize('welcomeOverlay.notifications', "Show notifications"), command: 'notifications.showList' } </ins> ]; const OVERLAY_VISIBLE = new RawContextKey<boolean>('interfaceOverviewVisible', false);
Change:
<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issue to prefill these. --- VSCode Version: OS Version: Window 10 Steps to Reproduce: gif: !
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.562 --- <!-- score: 0.491 --<!-- potentialduplicatescomment --

Discussion:
} private updateInputBox(): void { <del> if (typeof this.repository.provider.commitTemplate === 'undefined') { </del> <ins> if (typeof this.repository.provider.commitTemplate === 'undefined' || this.inputBox.value) { </ins> return; }

private repositoryPanels: RepositoryPanel[] = []; private singleRepositoryPanelTitleActionsDisposable: IDisposable = EmptyDisposable; private disposables: IDisposable[] = []; <ins> private lastFocusedRepository: ISCMRepository | undefined; </ins> private _onDidSplice = new Emitter<ISpliceEvent<ISCMRepository>>(); readonly onDidSplice: Event<ISpliceEvent<ISCMRepository>> = this._onDidSplice.event;

.filter(r => this.repositoryPanels.every(p => p.repository !== r)) .map(r => this.instantiationService.createInstance(RepositoryPanel, r, this)); <del> // Add new selected panels </del> <ins> // Add new selected panels and focus repository panel </ins> this.repositoryPanels = [...repositoryPanels, ...newRepositoryPanels]; newRepositoryPanels.forEach(panel => { this.addPanel(panel, panel.minimumSize, this.length); panel.repository.focus(); <ins> panel.onDidFocus(() => this.lastFocusedRepository = panel.repository); if (newRepositoryPanels.length === 1 || this.lastFocusedRepository === panel.repository) { panel.focus(); } </ins> }); // Remove unselected panels
Change:
The rulers and indent guides do not display well on high pixel density displays VSCode Version: Version 1.21.0 (1.21.0) OS Version: macOS Sierra 10.12.6 (16G1212) Steps to Reproduce: out editor Does this issue occur when all extensions are disabled?: Yes Example !

Discussion:
*/ .monaco-editor .lines-content .cigr { position: absolute; <ins> --box-shadow-color: rgba(0, 0, 0, 0); box-shadow: 1px 0 0 0 var(--box-shadow-color) inset; </ins> }

import * as viewEvents from 'vs/editor/common/view/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorIndentGuides } from 'vs/editor/common/view/editorColorRegistry'; <del> import * as dom from 'vs/base/browser/dom'; </del> import { Position } from 'vs/editor/common/core/position'; export class IndentGuidesOverlay extends DynamicViewOverlay {

const tabSize = this._context.model.getTabSize(); const tabWidth = tabSize * this._spaceWidth; const lineHeight = this._lineHeight; <del> const indentGuideWidth = dom.computeScreenAwareSize(1); </del> <ins> const indentGuideWidth = tabWidth; </ins> const indents = this._context.model.getLinesIndentGuides(visibleStartLineNumber, visibleEndLineNumber);

registerThemingParticipant((theme, collector) => { let editorGuideColor = theme.getColor(editorIndentGuides); if (editorGuideColor) { <del> collector.addRule(`.monaco-editor .lines-content .cigr { background-color: ${editorGuideColor}; }`); </del> <ins> collector.addRule(`.monaco-editor .lines-content .cigr { --box-shadow-color: ${editorGuideColor}; }`); </ins> } });

.monaco-editor .view-ruler { position: absolute; top: 0; <ins> --box-shadow-color: rgba(0, 0, 0, 0); box-shadow: 1px 0 0 0 var(--box-shadow-color) inset; </ins> }  No newline at end of file

import * as viewEvents from 'vs/editor/common/view/viewEvents'; import { registerThemingParticipant } from 'vs/platform/theme/common/themeService'; import { editorRuler } from 'vs/editor/common/view/editorColorRegistry'; <del> import * as dom from 'vs/base/browser/dom'; </del> export class Rulers extends ViewPart {

} if (currentCount < desiredCount) { <del> const rulerWidth = dom.computeScreenAwareSize(1); </del> <ins> const rulerWidth = this._context.model.getTabSize(); </ins> let addCount = desiredCount - currentCount; while (addCount > 0) { let node = createFastDomNode(document.createElement('div'));

registerThemingParticipant((theme, collector) => { let rulerColor = theme.getColor(editorRuler); if (rulerColor) { <del> collector.addRule(`.monaco-editor .view-ruler { background-color: ${rulerColor}; }`); </del> <ins> collector.addRule(`.monaco-editor .view-ruler { --box-shadow-color: ${rulerColor}; }`); </ins> } });
Change:
<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.21.1 OS Version: Fedora 27 As Travis CI have shipped in their images, there is no need to install again

Discussion:
before_install: - export GITHUB_TOKEN=$PUBLIC_GITHUB_TOKEN - git submodule update --init --recursive <del> - git clone --depth 1 https://github.com/creationix/nvm.git ./.nvm - source ./.nvm/nvm.sh </del> - nvm install 8.9.1 - nvm use 8.9.1 - npm i -g yarn
Change:
This was also discussed in and apparently fixed in , but I'm still experiencing this. Steps to reproduce: to in settings. a file, and add the following contents: Ensure that there's an empty newline at the end. Save it. Then hit Undo. Nothing will happen. Hit Undo again, then it will work as expected. You can even hit Save multiple times, and each time will add one extra step to the Undo list. So hit Save 10 times, then you can hit Undo 10 times and nothing will happen. Could you take a look at this if possible?

Discussion:
currentLineIsEmptyOrWhitespace = strings.lastNonWhitespaceIndex(currentLine) === -1; } <del> const deletionRange = new Range(currentLineNumber + 1, 1, lineCount + 1, 1); </del> <ins> const deletionRange = model.validateRange(new Range(currentLineNumber + 1, 1, lineCount + 1, 1)); </ins> if (!deletionRange.isEmpty()) { model.pushEditOperations(prevSelection, [EditOperation.delete(deletionRange)], edits => prevSelection); }

}); }); <ins> test('trim final new lines bug#46075', function () { const model: TextFileEditorModel = instantiationService.createInstance(TextFileEditorModel, toResource.call(this, '/path/trim_final_new_line.txt'), 'utf8'); return model.load().then(() => { const configService = new TestConfigurationService(); configService.setUserConfiguration('files', { 'trimFinalNewlines': true }); const participant = new TrimFinalNewLinesParticipant(configService, undefined); const textContent = 'Test'; const eol = `${model.textEditorModel.getEOL()}`; let content = `${textContent}${eol}${eol}`; model.textEditorModel.setValue(content); // save many times for (let i = 0; i < 10; i++) { participant.participate(model, { reason: SaveReason.EXPLICIT }); } // confirm trimming assert.equal(snapshotToString(model.createSnapshot()), `${textContent}${eol}`); // undo should go back to previous content immediately model.textEditorModel.undo(); assert.equal(snapshotToString(model.createSnapshot()), `${textContent}${eol}${eol}`); model.textEditorModel.redo(); assert.equal(snapshotToString(model.createSnapshot()), `${textContent}${eol}`); }); }); </ins> });