jiebi/CodeConvo huggingface dataset:
Change:
I've seen this a few times: ! It seems to disappear after a while, maybe it's to do with .local desktop entry or bin command running instead of real command?

Discussion:
return function () { var desktop = gulp.src('resources/linux/code.desktop', { base: '.' }) .pipe(replace('@@NAME_LONG@@', product.nameLong)) <ins> .pipe(replace('@@NAME_SHORT@@', product.nameShort)) </ins> .pipe(replace('@@NAME@@', product.applicationName)) .pipe(rename('usr/share/applications/' + product.applicationName + '.desktop'));

return function () { var desktop = gulp.src('resources/linux/code.desktop', { base: '.' }) .pipe(replace('@@NAME_LONG@@', product.nameLong)) <ins> .pipe(replace('@@NAME_SHORT@@', product.nameShort)) </ins> .pipe(replace('@@NAME@@', product.applicationName)) .pipe(rename('BUILD/usr/share/applications/' + product.applicationName + '.desktop'));

Name=@@NAME_LONG@@ Comment=Code Editing. Redefined. GenericName=Text Editor <del> Exec=/usr/bin/@@NAME@@ %U </del> <ins> Exec=/usr/share/@@NAME@@/@@NAME@@ %U </ins> Icon=@@NAME@@ Type=Application StartupNotify=true <del> StartupWMClass=@@NAME@@ </del> <ins> StartupWMClass=@@NAME_SHORT@@ </ins> Categories=Utility;TextEditor;Development;IDE; MimeType=text/plain; Actions=new-window;

Name[ru]=Новое окно Name[zh_CN]=新建窗口 Name[zh_TW]=開新視窗 <del> Exec=/usr/bin/@@NAME@@ --new-window %U </del> <ins> Exec=/usr/share/@@NAME@@/@@NAME@@ --new-window %U </ins> Icon=@@NAME@@

this.focusTerminal(); } })); <ins> this.toDispose.push(DOM.addDisposableListener(this.parentDomElement, 'keyup', (event: KeyboardEvent) => { // Keep terminal open on escape if (event.keyCode === 27) { event.stopPropagation(); } })); </ins> this.toDispose.push(this.themeService.onDidThemeChange((themeId) => { <del> this.setTerminalTheme(themeId); </del> <ins> this.setTerminalTheme(); })); this.toDispose.push(this.configurationService.onDidUpdateConfiguration((e) => { this.setTerminalFont(); </ins> })); this.terminal.open(this.terminalDomElement); this.parentDomElement.appendChild(terminalScrollbar.getDomNode()); <del> let config = this.configurationService.getConfiguration<ITerminalConfiguration>(); this.terminalDomElement.style.fontFamily = config.terminal.integrated.fontFamily; this.setTerminalTheme(this.themeService.getTheme()); </del> <ins> this.setTerminalFont(); this.setTerminalTheme(); </ins> resolve(void 0); }); } <del> private setTerminalTheme(themeId: string) { </del> <ins> private setTerminalTheme() { </ins> if (!this.terminal) { return; } <del> let baseThemeId = getBaseThemeId(themeId); </del> <ins> let baseThemeId = getBaseThemeId(this.themeService.getTheme()); </ins> this.terminal.colors = DEFAULT_ANSI_COLORS[baseThemeId]; this.terminal.refresh(0, this.terminal.rows); } <ins> private setTerminalFont() { let config = this.configurationService.getConfiguration<ITerminalConfiguration>(); this.terminalDomElement.style.fontFamily = config.terminal.integrated.fontFamily; } </ins> public focus(): void { this.focusTerminal(true); }
Change:
Testing Open the integrated terminal Change the setting Observe: setting is not applied until a restart of VSCode

Discussion:
return function () { var desktop = gulp.src('resources/linux/code.desktop', { base: '.' }) .pipe(replace('@@NAME_LONG@@', product.nameLong)) <ins> .pipe(replace('@@NAME_SHORT@@', product.nameShort)) </ins> .pipe(replace('@@NAME@@', product.applicationName)) .pipe(rename('usr/share/applications/' + product.applicationName + '.desktop'));

return function () { var desktop = gulp.src('resources/linux/code.desktop', { base: '.' }) .pipe(replace('@@NAME_LONG@@', product.nameLong)) <ins> .pipe(replace('@@NAME_SHORT@@', product.nameShort)) </ins> .pipe(replace('@@NAME@@', product.applicationName)) .pipe(rename('BUILD/usr/share/applications/' + product.applicationName + '.desktop'));

Name=@@NAME_LONG@@ Comment=Code Editing. Redefined. GenericName=Text Editor <del> Exec=/usr/bin/@@NAME@@ %U </del> <ins> Exec=/usr/share/@@NAME@@/@@NAME@@ %U </ins> Icon=@@NAME@@ Type=Application StartupNotify=true <del> StartupWMClass=@@NAME@@ </del> <ins> StartupWMClass=@@NAME_SHORT@@ </ins> Categories=Utility;TextEditor;Development;IDE; MimeType=text/plain; Actions=new-window;

Name[ru]=Новое окно Name[zh_CN]=新建窗口 Name[zh_TW]=開新視窗 <del> Exec=/usr/bin/@@NAME@@ --new-window %U </del> <ins> Exec=/usr/share/@@NAME@@/@@NAME@@ --new-window %U </ins> Icon=@@NAME@@

this.focusTerminal(); } })); <ins> this.toDispose.push(DOM.addDisposableListener(this.parentDomElement, 'keyup', (event: KeyboardEvent) => { // Keep terminal open on escape if (event.keyCode === 27) { event.stopPropagation(); } })); </ins> this.toDispose.push(this.themeService.onDidThemeChange((themeId) => { <del> this.setTerminalTheme(themeId); </del> <ins> this.setTerminalTheme(); })); this.toDispose.push(this.configurationService.onDidUpdateConfiguration((e) => { this.setTerminalFont(); </ins> })); this.terminal.open(this.terminalDomElement); this.parentDomElement.appendChild(terminalScrollbar.getDomNode()); <del> let config = this.configurationService.getConfiguration<ITerminalConfiguration>(); this.terminalDomElement.style.fontFamily = config.terminal.integrated.fontFamily; this.setTerminalTheme(this.themeService.getTheme()); </del> <ins> this.setTerminalFont(); this.setTerminalTheme(); </ins> resolve(void 0); }); } <del> private setTerminalTheme(themeId: string) { </del> <ins> private setTerminalTheme() { </ins> if (!this.terminal) { return; } <del> let baseThemeId = getBaseThemeId(themeId); </del> <ins> let baseThemeId = getBaseThemeId(this.themeService.getTheme()); </ins> this.terminal.colors = DEFAULT_ANSI_COLORS[baseThemeId]; this.terminal.refresh(0, this.terminal.rows); } <ins> private setTerminalFont() { let config = this.configurationService.getConfiguration<ITerminalConfiguration>(); this.terminalDomElement.style.fontFamily = config.terminal.integrated.fontFamily; } </ins> public focus(): void { this.focusTerminal(true); }
Change:
VSCode Version: alpha OS Version: Windows 10 The workaround will drop edits that only remove whitespace on a line and make the line empty by this edit. The editor or latest save might clean them up.
Fixed by

Discussion:
return this.ensureFormatOptions(document, options, token).then(() => { return this.client.execute('formatonkey', args, token).then((response): TextEdit[] => { <del> return response.body.map(this.codeEdit2SingleEditOperation); </del> <ins> let edits = response.body; let result: TextEdit[] = []; for (let edit of edits) { let textEdit = this.codeEdit2SingleEditOperation(edit); let range = textEdit.range; // Work around for https://github.com/Microsoft/TypeScript/issues/6700. // Check if we have an edit at the beginning of the line which only removes white spaces and leaves // an empty line. Drop those edits if (range.start.character === 0 && range.start.line === range.end.line && textEdit.newText === '') { let lText = document.lineAt(range.start.line).text; // If the edit leaves something on the line keep the edit (note that the end character is exclusive). // Keep it also if it removes something else than whitespace if (lText.trim().length > 0 || lText.length > range.end.character) { result.push(textEdit); } } else { result.push(textEdit); } } return result; </ins> }, (err: any) => { return []; });
Change:
VSCode Version: 1.2.0 OS Version: all Steps to Reproduce: from the command palette while not debugging a error: !

Discussion:
// breakpoint must not be on position (no need for this action). return bps.length === 0; } <ins> public isSupported(): boolean { return super.isSupported() && this.debugService.state === debug.State.Stopped; } </ins> } export class AddWatchExpressionAction extends AbstractDebugAction {
Change:
Would be nice if instead of pressing then to apply the quick fix, you could just press two times in a row. Then, pressing it again could move the cursor to the next (quick fixable) issue, so you could repeatedly fix everything by just pressing several times in a row.
That's unfortunately not possible because once the native context menu shows the JavaScript event loop is stuck and we don't have a change to listen to key events anymore.
Can't we add as a key equivalent/shortcut to the menu item? That way the OS's own context menu event loop will respond to the keystroke?
Yeah, maybe... Tho, I'd go with cmd+1,2,3,4,... in that case. I also remember that there actually is new electron API that allows use to show a context menu and stay responsive. any insight on that?
yes there is an option to run context menus async but if we adopt that we loose the  callback which is still being used in many places. We would never be able to figure out that a context menu was opened but dismissed without an action picked.
fyi with the Electron update pushed, the visible context menu should no longer block the renderer.
With the new code action widget, custom keybindings can be utilized to enter the top selected quickfix immediately. The latter half of this issue, regarding pressing again to move to the next error, is something we can take a look at!
Thanks!! This just made my day

Discussion:
kbOpts: { weight: weight + 100000, primary: KeyCode.Enter, <del> secondary: [KeyMod.Shift | KeyCode.Tab], </del> <ins> secondary: [KeyMod.CtrlCmd | KeyCode.Period], </ins> } }));
Change:
I'm currently creating an extension for Meteor. I only want to activate it if the workspace contains a Meteor project. For that I would like to check for the presence of a directory.
In around: should accept folders not only files
This will be very helpful. Been stuck playing with with no luck whatsoever. All the commands are activated even when the dont match. E.g. I've put only in there and the commands still got activated. Not sure how this works. If none of the criteria matches, then the commands shouldn't be activated, right?

Discussion:
}); } <ins> export function existsWithResult<T>(path: string, successResult: T): TPromise<T> { return exists(path).then((exists) => { return exists ? successResult : null; }, (err) => { return TPromise.wrapError(err); }); } </ins> function removeNull<T>(arr: T[]): T[] { return arr.filter(item => (item !== null));

return TPromise.join( Object.keys(desiredFilesMap).map( <del> (fileName) => pfs.fileExistsWithResult(paths.join(folderPath, fileName), fileName) </del> <ins> (fileName) => pfs.existsWithResult(paths.join(folderPath, fileName), fileName) </ins> ) ).then((fileNames: string[]) => { fileNames.forEach((existingFileName) => {
Change:
Testing on a MacBook Pro Retina display with brightness 2 steps below max while using a power adapter. This is my usual setting a regularly lit environments. In the following themes the indentation guides should be changed to improve their visibility: [x]  Abyss [x]  High Contrast [x]  Monokai In the following themes the indentation guides are subtle and easy to miss. However, changing those is optional. [x]  Dark (and Dark+)
I am using the color from the theme, 100% the same as . owns the Dark and Dark+ themes (including the color):
Assigning to the UX team to decide on changes to the default colors.
Some of the reported themes (Dark, Dark+, High Contrast) are owned by us. Others (Abyss, Monokai) are cloned and packaged along with VS Code. It means indirectly we own them and have to maintain them. So we should provide proper color for indent guides for all these themes. Can you please go through all our default packaged themes and come with a nice indentation guides color ? Note: TM theme setting to use for identation guides is . Also, as mentioned in description, except reported themes others look good to me Abyss Dark Dark+ HighContrast Monokai
Reopening until PR is merged in
Moving this to September milestone, since it is too late to make into August

Discussion:
<string>#082050</string> <key>selection</key> <string>#770811</string> <ins> <key>guide</key> <string>#002952</string> </ins> </dict> </dict> <dict>

<string>#222218</string> <key>activeGuide</key> <string>#9D550FB0</string> <ins> <key>guide</key> <string>#48473E</string> </ins> <key>bracketsForeground</key> <string>#F8F8F2A5</string>

width: 1px; } <del> .monaco-editor.vs-dark .lines-content .cigr, </del> <ins> .monaco-editor.vs-dark .lines-content .cigr { background: #404040; } </ins> .monaco-editor.hc-black .lines-content .cigr { <del> background: #353535; </del> <ins> background: #ffffff; </ins> }
Change:
VSCode Version: 1.4 OS Version: Windows 10 Steps to Reproduce: a file a symbol that is used in other files Other files that referenced it are opened and show as dirty in tabs, the file list and the count on the explorer badge, but it still says "1 unsaved" next to the "open editors" heading. !
can you look into this?
Hi guys, submitted a PR for this issue. Please let me know if there are any issues.
I think any unread indicator needs to react to events from the text file service and not the stacks model to find out that something got dirty. You might want to revisit this in
Thanks!

Discussion:
import {IEditorStacksModel, IStacksModelChangeEvent, IEditorGroup} from 'vs/workbench/common/editor'; import {SaveAllAction} from 'vs/workbench/parts/files/browser/fileActions'; import {AdaptiveCollapsibleViewletView} from 'vs/workbench/browser/viewlet'; <del> import {ITextFileService, IFilesConfiguration, VIEWLET_ID, AutoSaveMode} from 'vs/workbench/parts/files/common/files'; </del> <ins> import {ITextFileService, IFilesConfiguration, VIEWLET_ID, AutoSaveMode, EventType as FileEventType} from 'vs/workbench/parts/files/common/files'; </ins> import {IViewletService} from 'vs/workbench/services/viewlet/common/viewletService'; import {Renderer, DataSource, Controller, AccessibilityProvider,  ActionProvider, OpenEditor, DragAndDrop} from 'vs/workbench/parts/files/browser/views/openEditorsViewer'; import {IUntitledEditorService} from 'vs/workbench/services/untitled/common/untitledEditorService'; import {CloseAllEditorsAction} from 'vs/workbench/browser/parts/editor/editorActions'; <ins> import {IEventService} from 'vs/platform/event/common/event'; </ins> const $ = dom.emmet;

@IConfigurationService private configurationService: IConfigurationService, @IKeybindingService keybindingService: IKeybindingService, @IUntitledEditorService private untitledEditorService: IUntitledEditorService, <del> @IViewletService private viewletService: IViewletService </del> <ins> @IViewletService private viewletService: IViewletService, @IEventService private eventService: IEventService </ins> ) { super(actionRunner, OpenEditorsView.computeExpandedBodySize(editorGroupService.getStacksModel()), !!settings[OpenEditorsView.MEMENTO_COLLAPSED], nls.localize('openEditosrSection', "Open Editors Section"), messageService, keybindingService, contextMenuService);

// Also handle configuration updates this.toDispose.push(this.configurationService.onDidUpdateConfiguration(e => this.onConfigurationUpdated(e.config))); <ins> // Also handle dirty count indicator #10556 this.toDispose.push(this.eventService.addListener2(FileEventType.FILE_DIRTY, (e) => this.updateDirtyIndicator())); </ins> // We are not updating the tree while the viewlet is not visible. Thus refresh when viewlet becomes visible #6702 this.toDispose.push(this.viewletService.onDidViewletOpen(viewlet => { if (viewlet.getId() === VIEWLET_ID) {
Change:
VSCode Version: 1.5.0-insider OS Version: Windows 10 Steps to Reproduce: value is highlighted/selected Currently we can't put the cursor at the end of the default value when running . In this case, users have to move the cursor manually if we want to keep the default value as prefix always.
That's actually indented use case since the user is likely to accept <kbdEnter</kbdor over write the pre-set value. What is your use-case for this?
This features originally comes from implementing Vim's Ex commands, which support line range as a prefix like represents and represents . When users trigger Ex command by , Vim will help fulfill the line range prefix automatically and then users can type commands directly, eg for replacement. If users don't like the line range Vim puts there automatically, they need to use to delete the range characters. Vim doesn't select those characters it auto-completes but Code does, so I'm asking if it's possible to add this support to .
It would also help if a selection range could be defined. In my case I would like set the whole file path as value but only select the file base name. e.g. /path/to/file/ Users most likely will only change the but should also have the possibility to change the path.
Concurring to what said. I have an open question on Stack overflow:
+1 to this, it is very counterintuitive to do visual block find/replaces with VSCodeVim as noted in the above mentioned issues with this default behavior. If it were configurable like makes it, that would be useful for better emulating vim-style editing for VSCodeVim users like myself!

Discussion:
value?: string; /** <ins> * whether to automatically select the first value set */ noValuePreselect?: boolean; /** </ins> * the text to display underneath the input box */ prompt?: string;

* Allows to register on the event that quick open is hiding */ onHide: Event<void>; <del> } </del>  No newline at end of file <ins> } </ins>

value?: string; /** <ins> * Whether to preselect the given `value` when the box is first shown. */ noValuePreselect?: boolean; /** </ins> * The text to display underneath the input box. */ prompt?: string;

if (options) { inputOptions.password = options.password; inputOptions.placeHolder = options.placeHolder; <ins> inputOptions.noValuePreselect = options.noValuePreselect; </ins> inputOptions.prompt = options.prompt; inputOptions.value = options.value; inputOptions.ignoreFocusLost = options.ignoreFocusOut;

password: options.password, placeHolder: options.placeHolder, value: lastValue === void 0 ? options.value : lastValue, <del> valueSelect: lastValue === void 0, </del> <ins> valueSelect: options.noValuePreselect ? false : lastValue === void 0, </ins> inputDecoration: currentDecoration, onDidType: (value) => { lastValue = value;
Change:
VSCode Version: 1.4.0 OS Version: Windows 10 .51 Steps to Reproduce: the sample code from below, set HTML as Language Mode cursor at Line 8, Col 5 Tab message !
Looks like it occurs in emmet's editorAccessor, which calls , that apparently returns null. !
, created a PR for this issue. The issue can also be fixed by removing the optimization at which checks just the first element to be ModeTransition, but other elements are not. Let me know if this fix makes more sense than the PR I submitted, so that I can provide a PR for that as well.

Discussion:
import {LineStream} from 'vs/editor/common/modes/lineStream'; import {NullMode, NullState, nullTokenize} from 'vs/editor/common/modes/nullMode'; import {Token} from 'vs/editor/common/modes/supports'; <ins> import {ModeTransition} from 'vs/editor/common/core/ModeTransition'; </ins> export interface ILeavingNestedModeData { /**

myState = myState.clone(); if (prependModeTransitions.length <= 0 || prependModeTransitions[prependModeTransitions.length-1].mode !== this._mode) { // Avoid transitioning to the same mode (this can happen in case of empty embedded modes) <del> prependModeTransitions.push({ startIndex: deltaOffset, mode: this._mode }); </del> <ins> prependModeTransitions.push(new ModeTransition(deltaOffset,this._mode)); </ins> } var maxPos = Math.min(stopAtOffset - deltaOffset, buffer.length);
Change:
When clicking the clear output action, the output is only cleared after 1 second. !
Every console update is done with a 0.5s delay to not kill the tree with too many updates Closing this as designed as this is the limitation we will have to live with as long as we use the tree. In the next couple of milestones I plan to investigate into using the editor instead of the tree.
...
Created a PR with a fix.
Great fix - thanks!

Discussion:
return; // refresh already triggered } <ins> const elements = this.debugService.getModel().getReplElements(); const delay = elements.length > 0 ? Repl.REFRESH_DELAY : 0; </ins> this.refreshTimeoutHandle = setTimeout(() => { this.refreshTimeoutHandle = null; this.tree.refresh().then(() => {

); } }, errors.onUnexpectedError); <del> }, Repl.REFRESH_DELAY); </del> <ins> }, delay); </ins> } }
Change:
Steps to Reproduce: The cursor should go back to the exact spot where it was before the jump. Instead, it goes one sport further back...
Can you provide more details like VS Code version, OS type and version etc. Also, sample code of what you are trying to do in your extension and a screencast/gif/video ?
Likely
There is no extension involved. This is vanilla behaviour. Using version 1.4 on Ubuntu 16.04. Related to , but not the same. This is likely to be very easy to fix (jumpToDefinition event should push the current cursor position to the history).
I agree we should record the current cursor position on certain actions like "Go to definition".
Pushed a change to improve this situation for the following cases: goto definition will store the current cursor location as history entry so that when jumping back you end up in the same line number opening another editor will now also store the current cursor in the history so that going back puts you to the exact same line number too

Discussion:
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { ITextResourceConfigurationService } from 'vs/editor/common/services/resourceConfiguration'; <del> import { IHistoryService } from 'vs/workbench/services/history/common/history'; </del> import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { CancelAction } from 'vs/platform/message/common/message'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService';

@IInstantiationService instantiationService: IInstantiationService, @IWorkspaceContextService private contextService: IWorkspaceContextService, @IStorageService storageService: IStorageService, <del> @IHistoryService private historyService: IHistoryService, </del> @ITextResourceConfigurationService configurationService: ITextResourceConfigurationService, @IWorkbenchEditorService private editorService: IWorkbenchEditorService, @IThemeService themeService: IThemeService,

public setInput(input: FileEditorInput, options?: EditorOptions): TPromise<void> { <del> // We have a current input in this editor and are about to either open a new editor or jump to a different // selection inside the editor. Thus we store the current selection into the navigation history so that // a user can navigate back to the exact position he left off. if (this.input) { const selection = this.getControl().getSelection(); if (selection) { this.historyService.add(this.input, { startLineNumber: selection.startLineNumber, startColumn: selection.startColumn }); } } </del> // Return early for same input unless we force to open const forceOpen = options && options.forceOpen; if (!forceOpen && input.matches(this.input)) {