jiebi/CodeConvo huggingface dataset:
Change:
<!-- Do you have a question? Please ask it on --<!-- Use Help Report Issues to prefill these. --- VSCode Version: 1.17.0 OS Version: Win10 Pro Steps to Reproduce: integrated terminal the focus to the integrated terminal window Alt+F4 <!-- Launch with to check. --Reproduces without extensions: Yes Expected behaviour: VsCode Window should close. Current behaviour: Nothing happens. Tested terminals: Git Bash and PowerShell I couldn't find a command name to use in commandsToSkipShell.
Confirmed on: VSCode Version: 1.17.2, 1.18 (insiders) OS Version: Windows 7 x64 Works as expected on ubuntu, while in the terminal will close the main vscode window. Any pointers on testing winpty- cc: It should be possible to intercept call before it gets to the terminal, perhaps a quick program to test what the console is receiving. Possibly related to:
There's a program in the directory of a winpty checkout - , which shows that winpty is receiving the for me - it probably shouldn't be receiving it at all, which would be an issue of VSCode not filtering it. The workaround right now is to assign to in your keybindings, and then add to .
Awesome feedback and I agree, shouldn't be received by the terminal at all. Going to look at capturing this from the parent.
is a little too drastic I think. It closes all the visual studio code windows instead of just the current one.
Ok, I see there's a command, so that's probably a better fit. Either way, the real fix for this will just filter from the terminal and then it should just take the default action.
I believe the issue here is that on Windows the terminal eats the alt+f4 keybinding. The only way currently to workaround this is to add commands to the whitelist . I'm not sure alt+f4 is bound to anything though as it's a system thing. I'm thinking just special casing this on Windows to always force skipping? Opening this up for PRs, here is the relevant code

Discussion:
if (TabFocus.getTabFocusMode() && event.keyCode === 9) { return false; } <ins> // Skip alt+F4 if (platform.isWindows && event.altKey && event.key === 'F4' && !event.ctrlKey) { return false; } </ins> return undefined; });
Change:
VSCode Version: Code 1.17.0 (, 2017-10-04T23:44:50.318Z) OS Version: Windows_NT ia32 10.0. Extensions: <img width="387" alt="issue" src="https://user-"Steps to Reproduce: Bash Terminal on Scroll bar cursor is not highlight as pointer. <!-- Launch with to check. --Reproduces without extensions: Yes/No
Upstream issue:
Fixed in

Discussion:
.monaco-workbench .panel.integrated-terminal .xterm:focus .xterm-viewport, .monaco-workbench .panel.integrated-terminal .xterm:hover .xterm-viewport { transition: opacity 100ms linear; <ins> cursor: default; </ins> } .monaco-workbench .panel.integrated-terminal .xterm .xterm-viewport::-webkit-scrollbar-thumb:hover {
Change:
Currently there is no way to tell if sidebar is visible. You can get the state only for 2/5 viewlets. Explorer: Search: Source Control: Debug: Extensions: Sidebar (any of the above is visible):
PR that fixes this is welcome. Code pointer Basicaly the part service would need to add new context key and set it when sidebar gets shown / hidden. I propose to call this context key .

Discussion:
export const MessagesVisibleContext = new RawContextKey<boolean>('globalMessageVisible', false); export const EditorsVisibleContext = new RawContextKey<boolean>('editorIsOpen', false); export const InZenModeContext = new RawContextKey<boolean>('inZenMode', false); <ins> export const SidebarVisibleContext = new RawContextKey<boolean>('sidebarVisible', false); </ins> export const NoEditorsVisibleContext: ContextKeyExpr = EditorsVisibleContext.toNegated(); interface WorkbenchParams {

private messagesVisibleContext: IContextKey<boolean>; private editorsVisibleContext: IContextKey<boolean>; private inZenMode: IContextKey<boolean>; <ins> private sideBarVisibleContext: IContextKey<boolean>; </ins> private hasFilesToCreateOpenOrDiff: boolean; private fontAliasing: string; private zenMode: {

this.messagesVisibleContext = MessagesVisibleContext.bindTo(this.contextKeyService); this.editorsVisibleContext = EditorsVisibleContext.bindTo(this.contextKeyService); this.inZenMode = InZenModeContext.bindTo(this.contextKeyService); <ins> this.sideBarVisibleContext = SidebarVisibleContext.bindTo(this.contextKeyService); </ins> // Register Listeners this.registerListeners();

let viewletRestoreStopWatch: StopWatch; let viewletIdToRestore: string; if (!this.sideBarHidden) { <ins> this.sideBarVisibleContext.set(true); </ins> if (this.shouldRestoreLastOpenedViewlet()) { viewletIdToRestore = this.storageService.get(SidebarPart.activeViewletSettingsKey, StorageScope.WORKSPACE);

public setSideBarHidden(hidden: boolean, skipLayout?: boolean): TPromise<void> { this.sideBarHidden = hidden; <ins> this.sideBarVisibleContext.set(!hidden); </ins> // Adjust CSS if (hidden) {
Change:
VSCode Version: Code 1.17.2 (, 2017-10-16T13:47:41.889Z) OS Version: Darwin x64 17.0.0 Extensions: ExtensionVersion ------ vscode-markdownlint0.10.1 beautify1.1.1 quokka-vscode1.0.72 path-intellisense1.4.2 vscode-svgviewer1.4.3 vscode-eslint1.3.2 python0.7.0 prettier-vscode0.24.0 flow-for-vscode0.7.2 markdown-shortcuts0.8.1 color-highlight2.3.0 javascript-typescript0.0.5 vscode-todo-highlight0.5.11 Steps to Reproduce: a mailto link in markdown file . markdown with and click on link. 't open mail client with email address and error notification pops up . Reproduces without extensions: Yes
I'd like to take a look at this issue if no one is on it yet.
Great! While the error is thrown in Take a look at how http and https links are being handled in there. We should probably handle mailto links similarly to http and https links
Thank you for the heads up! I'll take a look into the code :)

Discussion:
export const file: string = 'file'; <ins> export const mailto: string = 'mailto'; </ins> export const untitled: string = 'untitled'; }

const { scheme, path, query, fragment } = resource; let promise: TPromise<any>; <del> if (scheme === Schemas.http || scheme === Schemas.https) { // open http dom.windowOpenNoOpener(resource.toString(true)); </del> <ins> if (scheme === Schemas.http || scheme === Schemas.https || scheme === Schemas.mailto) { // open http or default mail application dom.windowOpenNoOpener(resource.toString(true)); </ins> } else if (scheme === 'command' && CommandsRegistry.getCommand(path)) { // execute as command let args: any = [];
Change:
VSCode Version: Code 1.17.2 (, 2017-10-16T13:47:41.889Z) OS Version: Darwin x64 17.0.0 Extensions: Extensions are disabled Steps to Reproduce: Find widget (choose Edit -Find). the Find widget. the Find widget. Find widget with replace feature (choose Edit -Replace). of the Replace textbox is not same as the Find textbox, while expecting them to be same. <!-- Launch with to check. --Reproduces without extensions: Yes
It does not reproduce for me (Windows 10 x64, VSCode 1.17.2, extensions disabled).
Strange...I can reproduce this problem on all platforms that I have access (macOS, Linux, Windows 10 x64 in a VM) with version 1.17.2.
I don't have access to other platforms now, but this is how it works for me: ! Maybe this bug appears only in VM or something.
Your recording actually shows exactly how this bug is reproduced. Please note difference of green bounding boxes of two text boxes in the Find widget. When opened, bounding box of the Replace textbox is much wider than it of the Find textbox (where they should be same as each other). Also, please try to resize the Find widget and see how bounding box of the Replace textbox changes.
I guess that's what meant: ! Input box of find and replace should be the same length, however they are not if you do Find -Resize Find Box -Replace.
Ok, sorry for misleading, I thought it was about whole widget box, not just text field inside it, I see it now!

Discussion:
if (this._state.isReplaceRevealed) { if (!this._codeEditor.getConfiguration().readOnly && !this._isReplaceVisible) { this._isReplaceVisible = true; <ins> this._replaceInputBox.width = this._findInput.inputBox.width; </ins> this._updateButtons(); } } else {
Change:
There's syntax highlighting as part of the PowerShell extension to indicate comments. It serves to highlight comments in green. The highlighting looks for a pattern of to detect the start of a comment. In PowerShell, backtick is the escape character, and can be used to treat the character as a literal character instead of the start of a comment. The regular expression that detects comments doesn't take this into account. ! This line has incorrect syntax highlighting. The backtick should escape the and negate the syntax highlighting that colors the remainder of the line green. The regular expression in the PowerShell syntax tmlanguage file can be changed:  Adding the backtick character would resolve this issue, and then the pattern would be -])#`. ! I'm planning on submitting a PR to fix this after submitting this issue.

Discussion:
</dict> <dict> <key>begin</key> <del> <string>(?&lt;![-])#</string> </del> <ins> <string>(?&lt;![`-])#</string> </ins> <key>end</key> <string>$</string> <key>name</key>
Change:
VSCode Version: Code 1.17.2 (, 2017-10-16T13:59:48.528Z) OS Version: Windows_NT ia32 10.0. Extensions: ExtensionVersion ------ vscode-caniuse0.5.3 Bookmarks0.17.0 project-manager0.22.0 vscode-custom-css2.5.0 markdown-preview-github-styles0.1.0 npm-intellisense1.3.0 path-intellisense1.4.2 gitignore0.5.0 vscode-eslint1.4.0 vscode-coffeescript-snippets0.0.2 gitlens5.7.1 EditorConfig0.11.1 vscode-nginx-conf-hint0.0.4 beautify1.1.1 docthis0.5.0 svgpreview0.2.0 coffeelinter1.1.0 vscode-less0.6.3 debugger-for-chrome3.4.0 live-server-preview0.0.4 material-icon-theme2.2.3 vscode-paste-and-indent0.0.8 code-settings-sync2.8.3 vscode-nginx0.4.1 stylelint0.30.0 open-in-browser1.1.0 code-navigation0.2.0 highlight-matching-tag0.4.4 JavaScriptSnippets1.5.0 markdown-all-in-one0.11.0 When a class name contains "class" in its beginning, syntax hightlighting of it is broken. For example: ! Steps to Reproduce: /create a CoffeeScript file; a class name that have "class" in its name + any parameter. This way, "class*" will appear as if were the reserved word , but it isn't. Reproduces without extensions: Yes
In VS Code we use the syntaxes from Atom. Please create an issue . I've tested, in Atom is of course the same behaviour.
This issue was moved to atom/language-coffee-script

Discussion:
"If you want to provide a fix or improvement, please create a pull request against the original repository.", "Once accepted there, we are happy to receive an update request." ], <del> "version": "https://github.com/atom/language-coffee-script/commit/3f0b6b0e28d64cd6d5a720bf7a25c969be636e7b", </del> <ins> "version": "https://github.com/atom/language-coffee-script/commit/c0dbeede971ff5391ec1d94d4ea5d94e60d7e3e3", </ins> "scopeName": "source.coffee", "name": "CoffeeScript", "fileTypes": [

"firstLineMatch": "(?x)n# Hashbangn^#!.*(?:s|/)n  coffeen(?:$|s)n|n# Modelinen(?i:n  # Emacsn  -*-(?:s*(?=[^:;s]+s*-*-)|(?:.*?[;s]|(?<=-*-))modes*:s*)n    coffeen  (?=[s;]|(?<![-*])-*-).*?-*-n  |n  # Vimn  (?:(?:s|^)vi(?:m[<=>]?d+|m)?|sex)(?=:(?=s*set?s[^n:]+:)|:(?!s*set?s))(?:(?:s|s*:s*)w*(?:s*=(?:[^ns]|.)*)?)*[s:](?:filetype|ft|syntax)s*=n    coffeen  (?=s|:|$)n)", "patterns": [ { <ins> "match": "(new)s+(?:(?:(class)s+(w+(?:.w*)*)?)|(w+(?:.w*)*))", "name": "meta.class.instance.constructor.coffee", </ins> "captures": { "1": { "name": "keyword.operator.new.coffee" }, <del> "4": { </del> <ins> "2": { </ins> "name": "storage.type.class.coffee" }, <del> "6": { </del> <ins> "3": { </ins> "name": "entity.name.type.instance.coffee" }, <del> "7": { </del> <ins> "4": { </ins> "name": "entity.name.type.instance.coffee" } <del> }, "match": "(new)s+(((class)(s+(w+(?:.w*)*))?)|(w+(?:.w*)*))", "name": "meta.class.instance.constructor" </del> <ins> } </ins> }, { "begin": "'''",
Change:
Testing Steps to Reproduce: the integrated terminal trying to set: , accidentally enter Bug ! Terminal contents start leaking outside of the panel. I also think we should set a maximum terminal font size just as we do for the minimum terminal font size
As a bit of polish the json schema could also include these ranges so a warning will appear in the settings panel.
Hi, I'd like to take this Issue up and make a PR. Thanks in advance PS: I'm new to Open Source and would like your support.
great! There's already a minimum value (), we just need to find a good maximum and add it there. Right now I'm thinking somewhere between 20 and 30 should be the default as that's getting into the ridiculously large territory. There are instructions for building the project here
Hi I've created a and would like your comments. Thanks for the great support.
Should it match the editor max font size? The editor has some max, not sure what it is, but I can now make the text much larger in the editor than the terminal.

Discussion:
const DEFAULT_LINE_HEIGHT = 1.0; const MINIMUM_FONT_SIZE = 6; <ins> const MAXIMUM_FONT_SIZE = 25; </ins> /** * Encapsulates terminal configuration logic, the primary purpose of this file is so that platform

} } <del> let fontSize = this._toInteger(terminalConfig.fontSize, MINIMUM_FONT_SIZE, EDITOR_FONT_DEFAULTS.fontSize); </del> <ins> let fontSize = this._toInteger(terminalConfig.fontSize, MINIMUM_FONT_SIZE, MAXIMUM_FONT_SIZE, EDITOR_FONT_DEFAULTS.fontSize); </ins> const lineHeight = terminalConfig.lineHeight ? Math.max(terminalConfig.lineHeight, 1) : DEFAULT_LINE_HEIGHT; if (excludeDimensions) {

} } <del> private _toInteger(source: any, minimum: number, fallback: number): number { </del> <ins> private _toInteger(source: any, minimum: number, maximum: number, fallback: number): number { </ins> let r = parseInt(source, 10); if (isNaN(r)) { return fallback;

if (typeof minimum === 'number') { r = Math.max(minimum, r); } <ins> if (typeof maximum === 'number') { r = Math.min(maximum, r); } </ins> return r; } }  No newline at end of file
Change:
Testing Steps to Reproduce: the integrated terminal trying to set: , accidentally enter Bug ! Terminal contents start leaking outside of the panel. I also think we should set a maximum terminal font size just as we do for the minimum terminal font size
As a bit of polish the json schema could also include these ranges so a warning will appear in the settings panel.
Hi, I'd like to take this Issue up and make a PR. Thanks in advance PS: I'm new to Open Source and would like your support.
great! There's already a minimum value (), we just need to find a good maximum and add it there. Right now I'm thinking somewhere between 20 and 30 should be the default as that's getting into the ridiculously large territory. There are instructions for building the project here
Hi I've created a and would like your comments. Thanks for the great support.
Should it match the editor max font size? The editor has some max, not sure what it is, but I can now make the text much larger in the editor than the terminal.

Discussion:
configurationService = new MockConfigurationService({ editor: { <ins> fontFamily: 'foo' }, terminal: { integrated: { fontFamily: 0, fontSize: 1500 } } }); configHelper = new TerminalConfigHelper(configurationService, null, null, null); configHelper.panelContainer = fixture; assert.equal(configHelper.getFont().fontSize, 25, 'The maximum terminal font size should be used when terminal.integrated.fontSize more than it'); configurationService = new MockConfigurationService({ editor: { </ins> fontFamily: 'foo', }, terminal: {
Change:
Looks unbalanced (especially the discard again vs. the stage action): !
While this might have fixed the icon issue in the quick diff area, now I find it uneven in the changes view where icons are typically 16px: !
This is the before/after. The after does look better: !
Yeah looks good for you. Might be my zoom level of 2 then.

Discussion:
<del> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="-0.994 0 16 16" enable-background="new -0.994 0 16 16"><path fill="#C5C5C5" d="M13 6c0 1.461-.636 2.846-1.746 3.797l-5.584 4.951-1.324-1.496 5.595-4.962c.678-.582 1.061-1.413 1.061-2.29 0-1.654-1.345-3-2.997-3-.71 0-1.399.253-1.938.713l-1.521 1.287h2.448l-1.998 2h-3.996v-4l1.998-2v2.692l1.775-1.504c.899-.766 2.047-1.188 3.232-1.188 2.754 0 4.995 2.243 4.995 5z"/></svg> </del>  No newline at end of file <ins> <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="-0.994 0 16 16" enable-background="new -0.994 0 16 16"><path fill="#C5C5C5" d="M13 6c0 1.461-.636 2.846-1.746 3.797l-5.584 4.951-1.324-1.496 5.595-4.962c.678-.582 1.061-1.413 1.061-2.29 0-1.654-1.345-3-2.997-3-.71 0-1.399.253-1.938.713l-1.521 1.287h2.448l-1.998 2h-3.996v-4l1.998-2v2.692l1.775-1.504c.899-.766 2.047-1.188 3.232-1.188 2.754 0 4.995 2.243 4.995 5z"/></svg> </ins>  No newline at end of file

<del> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="-0.994 0 16 16" enable-background="new -0.994 0 16 16"><path fill="#424242" d="M13 6c0 1.461-.636 2.846-1.746 3.797l-5.584 4.951-1.324-1.496 5.595-4.962c.678-.582 1.061-1.413 1.061-2.29 0-1.654-1.345-3-2.997-3-.71 0-1.399.253-1.938.713l-1.521 1.287h2.448l-1.998 2h-3.996v-4l1.998-2v2.692l1.775-1.504c.899-.766 2.047-1.188 3.232-1.188 2.754 0 4.995 2.243 4.995 5z"/></svg> </del>  No newline at end of file <ins> <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="-0.994 0 16 16" enable-background="new -0.994 0 16 16"><path fill="#424242" d="M13 6c0 1.461-.636 2.846-1.746 3.797l-5.584 4.951-1.324-1.496 5.595-4.962c.678-.582 1.061-1.413 1.061-2.29 0-1.654-1.345-3-2.997-3-.71 0-1.399.253-1.938.713l-1.521 1.287h2.448l-1.998 2h-3.996v-4l1.998-2v2.692l1.775-1.504c.899-.766 2.047-1.188 3.232-1.188 2.754 0 4.995 2.243 4.995 5z"/></svg> </ins>  No newline at end of file
Change:
VSCode Version: 1.17.2 OS Version: Win 7 SP 1 Steps to Reproduce: Access search tab Type a word to search for Under "files to include", type ..siblingPath Hit enter Expected: any files under ..siblingPath containing word/pattern are shown. Actual: get "No results found in ..siblingPath". Works fine if absolute path used, or relative path below the current directory. This is very useful when you have a test project open but the interesting source files are in a sibling directory.
will probably work for now.
Indeed it does, thanks for that.

Discussion:
import * as collections from 'vs/base/common/collections'; import * as glob from 'vs/base/common/glob'; import * as paths from 'vs/base/common/paths'; <del> import * as strings from 'vs/base/common/strings'; </del> import uri from 'vs/base/common/uri'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IPatternInfo, IQueryOptions, IFolderQuery, ISearchQuery, QueryType, ISearchConfiguration, getExcludes, pathIncludedInQuery } from 'vs/platform/search/common/search';

*/ public parseSearchPaths(pattern: string): ISearchPathsResult { const isSearchPath = (segment: string) => { <del> // A segment is a search path if it is an absolute path or starts with ./ return paths.isAbsolute(segment) || strings.startsWith(segment, './') || strings.startsWith(segment, '.'); </del> <ins> // A segment is a search path if it is an absolute path or starts with ./, ../, ., or .. return paths.isAbsolute(segment) || /^..?[/]/.test(segment); </ins> }; const segments = splitGlobPattern(pattern);

}] } ], <ins> [ '../', <ISearchPathsResult>{ searchPaths: [{ searchPath: getUri('foo/') }] } ] </ins> ]; cases.forEach(testIncludesDataItem); });
Change:
While working and testing PR for issue (warning for unsaved files before commit), I encountered what I think are two bugs. The first I was able to identify and fix as far as I can tell. I am no Typescript expert so maybe I am off-base. Second issue not so sure about, seems to return an extra set entry that is empty. Have to investigate this one further. NOTE: could this be related to ? For first issue: If there are no resulting filePaths entries, an empty set should be returned via Promise. The code seems to return a promise within a promise which gets lost. I presumed should be resolve(new Set<string()); NOT: Promise.resolve(new Set<string()); checkIgnore(filePaths: string[]): Promise<Set<string{ return (Operation.CheckIgnore, () ={ return new Promise<Set<string((resolve, reject) ={ filePaths = (filePath =!path.relative(, filePath).startsWith('..')); if ( === 0) { // nothing left Nested Promise return Promise.resolve(new Set<string()); } // https://git- const child = (['check-ignore', '-z', '--stdin'], { stdio: [null, null, null] }); (('0'), 'utf8'); const onExit = (exitCode: number) ={ if (exitCode === 1) { // nothing ignored resolve(new Set<string()); } else if (exitCode === 0) { // paths are separated by the null-character resolve(new Set<string(('0'))); } else { reject(new GitError({ stdout: data, stderr, exitCode })); } }; Fixed with PR
Nice find.
Adding -label for consideration
Great catch! I actually reviewed this code and didn't catch this.
Not the first time that I am wishing for a lint rule which checks all code paths inside a promise initialiser...
I have cherry-picked this change for the 1.18.1 release
Thanks guys !

Discussion:
if (filePaths.length === 0) { // nothing left <del> return Promise.resolve(new Set<string>()); </del> <ins> return resolve(new Set<string>()); </ins> } // https://git-scm.com/docs/git-check-ignore#git-check-ignore--z
Change:
It would be nice to have additional snippet format options, e.g. kebabCase, camelCase, snakeCase, startCase, pascalCase. For example, for file named and snippet generated code would be .
Not sure yet as we would derive further from what is defined in TextMate
Why didn't you bring auto closing tag features in vs code for html
Code pointer:
FYI, I ended up using plugin.
I'm on it.
But ... but ... the issue had several formats: and PR only 1 (PascalCase)

Discussion:
return !value ? '' : value.toLocaleLowerCase(); } else if (this.shorthandName === 'capitalize') { return !value ? '' : (value[0].toLocaleUpperCase() + value.substr(1)); <ins> } else if (this.shorthandName === 'pascalcase') { return !value ? '' : this._toPascalCase(value); </ins> } else if (Boolean(value) && typeof this.ifValue === 'string') { return this.ifValue; } else if (!Boolean(value) && typeof this.elseValue === 'string') {

} } <ins> private _toPascalCase(value: string): string { return value.match(/[a-z]+/gi) .map(function (word) { return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase(); }) .join(''); } </ins> toTextmateString(): string { let value = '${'; value += this.index;

assert.equal(new FormatString(1, 'downcase').resolve('FOO'), 'foo'); assert.equal(new FormatString(1, 'capitalize').resolve('bar'), 'Bar'); assert.equal(new FormatString(1, 'capitalize').resolve('bar no repeat'), 'Bar no repeat'); <ins> assert.equal(new FormatString(1, 'pascalcase').resolve('bar-foo'), 'BarFoo'); </ins> assert.equal(new FormatString(1, 'notKnown').resolve('input'), 'input'); // if