jiebi/CodeConvo huggingface dataset:
Change:
The cache is preserved throughout URI serialization. We should invalidate it when the URI crosses platform boundaries. Related to

Discussion:
return data; } else { const result = new _URI(data); <del> result._fsPath = (<UriState>data).fsPath; </del> result._formatted = (<UriState>data).external; <ins> result._fsPath = (<UriState>data)._sep === _pathSepMarker ? (<UriState>data).fsPath : null; </ins> return result; } }

interface UriState extends UriComponents { $mid: number; <del> fsPath: string; </del> external: string; <ins> fsPath: string; _sep: 1 | undefined; </ins> } <ins> const _pathSepMarker = isWindows ? 1 : undefined; </ins> // tslint:disable-next-line:class-name class _URI extends URI {

// cached state if (this._fsPath) { res.fsPath = this._fsPath; <ins> res._sep = _pathSepMarker; </ins> } if (this._formatted) { res.external = this._formatted;

scheme: 'file', path: '/path/test.file', fsPath: '/path/test.file'.replace(///g, isWindows ? '' : '/'), <ins> _sep: isWindows ? 1 : undefined, </ins> }); assert.ok(uri.toString());

scheme: 'file', path: '/path/test.file', fsPath: '/path/test.file'.replace(///g, isWindows ? '' : '/'), <ins> _sep: isWindows ? 1 : undefined, </ins> external: 'file:///path/test.file' }); });
Change:
Note: char disable tab after it with setting even with custom snippet the not trigger because char disable tab after it.
closedWith
Actually, reopening since I realized the extension isn't allowing the abbreviations outside of surrounding braces. the latest Emmet doesn't allow + in the expansions now, so you'd have to create custom snippets (with names that don't have +) to get that old behaviour back.
"+" Cheats| 1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17- 18- 19- 20- 21- 22- 23-
I'm aware there were a lot of snippets with +. The Emmet documentation website is currently outdated. See and
Sorry I didn't know that.
Verifier: verify that in an empty stylesheet document (e.g. CSS), , , , and all have an Emmet suggestion showing up.

Discussion:
return true; } <ins> // Get the abbreviation right now // Fixes https://github.com/microsoft/vscode/issues/74505 // Stylesheet abbreviations starting with @ should bring up suggestions // even at outer-most level const abbreviation = document.getText(new vscode.Range(abbreviationRange.start.line, abbreviationRange.start.character, abbreviationRange.end.line, abbreviationRange.end.character)); if (abbreviation.startsWith('@')) { return true; } </ins> // Fix for https://github.com/microsoft/vscode/issues/34162 // Other than sass, stylus, we can make use of the terminator tokens to validate position if (syntax !== 'sass' && syntax !== 'stylus' && currentNode.type === 'property') { // Fix for upstream issue https://github.com/emmetio/css-parser/issues/3 if (currentNode.parent && currentNode.parent.type !== 'rule'

return false; } <del> const abbreviation = document.getText(new vscode.Range(abbreviationRange.start.line, abbreviationRange.start.character, abbreviationRange.end.line, abbreviationRange.end.character)); </del> const propertyNode = <Property>currentNode; if (propertyNode.terminatorToken && propertyNode.separator

/* .foo { op.3 dn	{ */ <del> @ </del> <ins> bgc </ins> } bg `; return withRandomFileEditor(sassContents, '.scss', (_, doc) => {

new vscode.Range(2, 3, 2, 7),		// Line commented selector new vscode.Range(3, 3, 3, 7),		// Block commented selector new vscode.Range(4, 0, 4, 2),		// dn inside block comment <del> new vscode.Range(6, 1, 6, 2),		// @ inside a rule whose opening brace is commented </del> <ins> new vscode.Range(6, 1, 6, 2),		// bgc inside a rule whose opening brace is commented </ins> new vscode.Range(7, 2, 7, 4)		// bg after ending of badly constructed block ]; rangesNotEmmet.forEach(range => {
Change:
Testing create a TS extension as described in and look at 'runTests' is called with testRunnerPath. The hover of says: ts import as testRunner from 'vscode/lib/testrunner'; module.exports = testRunner; Looking at I don't see a testRunner exported.
Ok, thanks. But now my question is about What is the ? How does the user define it? Is it necessary? Why do we use the style. Our APIs typically use Promises...
So the testRunner is the module name passed to . Did we change the contract? Before it had to export a now it has to export a ?
We didn't. That's what the old test runner does: We use the old API since we don't want to break backwards compat. I'd suggest we come up with a better API (see my comment here: ), but it has to be a different name, such as . Here's the relevant code:
I don't really like us having to have this API, but for people who are still importing from , if they don't migrate we don't want to break them.
Actually, for people who have been importing from , they haven't used the signature directly. So if we do add a better signature with a different name such as , we might not need to expose .
The change is to add a new function signature for : When the function returns a promise, wait for the promise, otherwise use the old logic.

Discussion:
import { IURITransformer } from 'vs/base/common/uriIpc'; interface ITestRunner { <ins> /** Old test runner API, as exported from `vscode/lib/testrunner` */ </ins> run(testsRoot: string, clb: (error: Error, failures?: number) => void): void; } <ins> interface INewTestRunner { /** New test runner API, as explained in the extension test doc */ run(): Promise<void>; } </ins> export interface IHostUtils { exit(code?: number): void; exists(path: string): Promise<boolean>;

const extensionTestsPath = originalFSPath(extensionTestsLocationURI); // Require the test runner via node require from the provided path <del> let testRunner: ITestRunner | undefined; </del> <ins> let testRunner: ITestRunner | INewTestRunner | undefined; </ins> let requireError: Error | undefined; try { testRunner = <any>require.__$__nodeRequire(extensionTestsPath);

requireError = error; } <del> // Execute the runner if it follows our spec </del> <ins> // Execute the runner if it follows the old `run` spec </ins> if (testRunner && typeof testRunner.run === 'function') { return new Promise<void>((c, e) => { <del> testRunner!.run(extensionTestsPath, (error, failures) => { </del> <ins> const oldTestRunnerCallback = (error: Error, failures: number | undefined) => { </ins> if (error) { e(error.toString()); } else {

// after tests have run, we shutdown the host this._gracefulExit(error || (typeof failures === 'number' && failures > 0) ? 1 /* ERROR */ : 0 /* OK */); <del> }); </del> <ins> }; const runResult = testRunner!.run(extensionTestsPath, oldTestRunnerCallback); // Using the new API `run(): Promise<void>` if (runResult && runResult.then) { runResult .then(() => { c(); this._gracefulExit(0); }) .catch((err) => { e(err); this._gracefulExit(1); }); } </ins> }); }
Change:
Testing OS Version: Windows Enterprise With wrapping for long tooltips (if the title has space in it) ! If I have a long link without spacing in it, there's no wrapping and the scroll bar shows up only if you hover by the tooltip. ! Thoughts on wrapping?
After thinking about this a bit more, I'd say we should wrap long words / links
Pushing to June since the change will effect some core styling

Discussion:
.monaco-editor-hover .markdown-hover > .hover-contents:not(.code-hover-contents) { max-width: 500px; <ins> word-wrap: break-word; </ins> } .monaco-editor-hover p,
Change:
contribute command that uses enablement assign a keybinding, via :bug: enablement isn't honoured
When users configure keybindings we allow them to change preconditions as well, e.g rename requires an editable document so I don't plan to have a different strategy for contributed commands
I don't see the nice "Command 'Hello World' is not enabled in the current context." info toast when I try the keybinding though. I only see that message when I try to run it from the command palette. The command correctly doesn't run when not enabled though.
Yeah, that's the design. Keybindings don't show messages

Discussion:
let _commandRegistrations: IDisposable[] = []; <del> ExtensionsRegistry.registerExtensionPoint<schema.IUserFriendlyCommand | schema.IUserFriendlyCommand[]>({ </del> <ins> export const commandsExtensionPoint = ExtensionsRegistry.registerExtensionPoint<schema.IUserFriendlyCommand | schema.IUserFriendlyCommand[]>({ </ins> extensionPoint: 'commands', jsonSchema: schema.commandsContribution <del> }).setHandler(extensions => { </del> <ins> }); commandsExtensionPoint.setHandler(extensions => { </ins> function handleCommand(userFriendlyCommand: schema.IUserFriendlyCommand, extension: IExtensionPointUser<any>, disposables: IDisposable[]) {

import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { MenuRegistry } from 'vs/platform/actions/common/actions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; <ins> import { commandsExtensionPoint } from 'vs/workbench/api/common/menusExtensionPoint'; </ins> export class KeyboardMapperFactory { public static readonly INSTANCE = new KeyboardMapperFactory();

const keybindingsExtPoint = ExtensionsRegistry.registerExtensionPoint<ContributedKeyBinding | ContributedKeyBinding[]>({ extensionPoint: 'keybindings', <ins> deps: [commandsExtensionPoint], </ins> jsonSchema: { description: nls.localize('vscode.extension.contributes.keybindings', "Contributes keybindings."), oneOf: [

weight = KeybindingWeight.ExternalExtension + idx; } <ins> let commandAction = MenuRegistry.getCommand(command); let precondition = commandAction && commandAction.precondition; let fullWhen: ContextKeyExpr | undefined; if (when && precondition) { fullWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(when)); } else if (when) { fullWhen = ContextKeyExpr.deserialize(when); } else if (precondition) { fullWhen = precondition; } </ins> let desc: IKeybindingRule2 = { id: command, args, <del> when: ContextKeyExpr.deserialize(when), </del> <ins> when: fullWhen, </ins> weight: weight, primary: KeybindingParser.parseKeybinding(key, OS), mac: mac ? { primary: KeybindingParser.parseKeybinding(mac, OS) } : null,

configurationRegistry.registerConfiguration(keyboardConfiguration); <del> registerSingleton(IKeybindingService, WorkbenchKeybindingService); </del>  No newline at end of file <ins> registerSingleton(IKeybindingService, WorkbenchKeybindingService); </ins>
Change:
<!-- 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: --From but he wasn't willing to open his issue. Left click is broken but right click works. It's introduced in 1.34.0. I can reproduce it by upgrading from 1.33.1 to 1.34.0. Is it by designed that only right click works? <!-- Use Help Report Issue to prefill these. --- VSCode Version: 1.34.0 and 1.35.0 OS Version: Windows 10 1903 and Windows 7 and Debian 10 Steps to Reproduce: The same as <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes <details</details
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.455 --<!-- potentialduplicatescomment --
Now I can reproduce it. You can disable custom menus with to work around it if that helps
Yes, takes effects.
I pushed a PR to fix this but in a duplicated issue (just found this one sorry about the duplicate)
Tried the latest insider version, works.

Discussion:
*--------------------------------------------------------------------------------------------*/ import { ContextSubMenu } from 'vs/base/browser/contextmenu'; <del> import { getDomNodePagePosition } from 'vs/base/browser/dom'; </del> <ins> import { EventHelper, getDomNodePagePosition } from 'vs/base/browser/dom'; </ins> import { IAction } from 'vs/base/common/actions'; import { Delayer } from 'vs/base/common/async'; import { Emitter, Event } from 'vs/base/common/event';

} private onEditSettingClicked(editPreferenceWidget: EditPreferenceWidget<IIndexedSetting>, e: IEditorMouseEvent): void { <ins> EventHelper.stop(e.event, true); </ins> const anchor = { x: e.event.posx, y: e.event.posy + 10 }; const actions = this.getSettings(editPreferenceWidget.getLine()).length === 1 ? this.getActions(editPreferenceWidget.preferences[0], this.getConfigurationsMap()[editPreferenceWidget.preferences[0].key]) : editPreferenceWidget.preferences.map(setting => new ContextSubMenu(setting.key, this.getActions(setting, this.getConfigurationsMap()[setting.key])));
Change:
tsserver could provide a list of languages so that when a document other than and is opened, the plugins would be notified. Angular language service relies on this to parse files in Angular templates. There seems to be a regression whereby languages provided by tsserver plugins are no longer synced (does not have buffer sync support). This was brought to light by in For potential fix, please see cc:
Related We only prototyped the support for external languages in TypeScript so this is not really an official API. You'd have to check with the TS team to see if this is still something they are interested in properly supporting as there is other work required beyond this
I merged a pr that fixes this so you can test it and provide feedback, but you must not ship anything to customers that relies on this API. It is not official and may be changed or be removed at any point in the future
Thanks for the update. I'll test it out locally. I'd like to organize a meeting to finalize the design with the Typescript team, so that we can move on with the implementation.

Discussion:
import * as typeConverters from './utils/typeConverters'; import TypingsStatus, { AtaProgressReporter } from './utils/typingsStatus'; import VersionStatus from './utils/versionStatus'; <ins> import { flatten } from './utils/arrays'; </ins> // Style check diagnostics that can be reported as warnings const styleCheckDiagnostics = [

configFileWatcher.onDidDelete(handleProjectCreateOrDelete, this, this._disposables); configFileWatcher.onDidChange(handleProjectChange, this, this._disposables); <del> const allModeIds = this.getAllModeIds(descriptions); </del> <ins> const allModeIds = this.getAllModeIds(descriptions, pluginManager); </ins> this.client = this._register(new TypeScriptServiceClient( workspaceState, version => this.versionStatus.onDidChangeTypeScriptVersion(version),

this.configurationChanged(); } <del> private getAllModeIds(descriptions: LanguageDescription[]) { const allModeIds: string[] = []; for (const description of descriptions) { allModeIds.push(...description.modeIds); } </del> <ins> private getAllModeIds(descriptions: LanguageDescription[], pluginManager: PluginManager) { const allModeIds = flatten([ ...descriptions.map(x => x.modeIds), ...pluginManager.plugins.map(x => x.languages) ]); </ins> return allModeIds; }
Change:
<!-- 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.35.1 OS Version: macOS Very weird issue, open a new VS Code instance and do with this repo: . Instead of keeping the name it was renamed to
(Experimental duplicate detection) Thanks for submitting this issue. Please also check if it is already covered by an existing one, like: <!-- score: 0.447 --<!-- potentialduplicatescomment --
I know how to reproduce it: new VS Code instance and as fast as possible open Command Palette and use you should see it opens Command Palette with and closes it immediately. this repo: would be cloned as instead of . I believe it's related because of that flicker and automatically closing Command Palette because I did it pretty fast so I guess initialization didn't happen properly. EDIT: Shit I can't reproduce it again
Reproduces if the URL has a trailing slash.
Thanks for looking into this and I'm very happy you were able to reproduce it.

Discussion:
} async clone(url: string, parentPath: string, cancellationToken?: CancellationToken): Promise<string> { <del> let baseFolderName = decodeURI(url).replace(/^.*//, '').replace(/.git$/, '') || 'repository'; </del> <ins> let baseFolderName = decodeURI(url).replace(/[/]+$/, '').replace(/^.*//, '').replace(/.git$/, '') || 'repository'; </ins> let folderName = baseFolderName; let folderPath = path.join(parentPath, folderName); let count = 1;
Change:
<!-- 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.34.0 OS Version: Windows 10 Steps to Reproduce: terminal any command that makes any change of your current project directory after a while, like 'New Folder' action refreshing directory by the terminal command, 'New Folder' input will disappear and File Explorer remains inactive <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes !

Discussion:
const lastDot = value.lastIndexOf('.'); inputBox.value = value; <del> inputBox.focus(); inputBox.select({ start: 0, end: lastDot > 0 && !stat.isDirectory ? lastDot : value.length }); const done = once(async (success: boolean, finishEditing: boolean) => { </del> <ins> let isFinishableDisposeEvent = false; setTimeout(() => { // Check if disposed if (!inputBox.inputElement) { return; } inputBox.focus(); inputBox.select({ start: 0, end: lastDot > 0 && !stat.isDirectory ? lastDot : value.length }); isFinishableDisposeEvent = true; }, 0); const done = once(async (success: boolean) => { </ins> label.element.style.display = 'none'; const value = inputBox.value; dispose(toDispose); container.removeChild(label.element); <del> if (finishEditing) { // Timeout: once done rendering only then re-render #70902 setTimeout(() => editableData.onFinish(value, success), 0); } </del> <ins> // Timeout: once done rendering only then re-render #70902 setTimeout(() => editableData.onFinish(value, success), 0); </ins> }); const blurDisposable = DOM.addDisposableListener(inputBox.inputElement, DOM.EventType.BLUR, () => { <del> done(inputBox.isInputValid(), true); </del> <ins> done(inputBox.isInputValid()); </ins> }); const toDispose = [

DOM.addStandardDisposableListener(inputBox.inputElement, DOM.EventType.KEY_DOWN, (e: IKeyboardEvent) => { if (e.equals(KeyCode.Enter)) { if (inputBox.validate()) { <del> done(true, true); </del> <ins> done(true); </ins> } } else if (e.equals(KeyCode.Escape)) { <del> done(false, true); </del> <ins> done(false); </ins> } }), blurDisposable,

]; return toDisposable(() => { <del> blurDisposable.dispose(); done(false, false); </del> <ins> if (isFinishableDisposeEvent) { done(false); } else { dispose(toDispose); } </ins> }); }
Change:
Issue Type: <bBug</bGitHub reported a security vulnerability related to the NPM package in my VS Code extension's . <img width="765" alt="Screen Shot 2019-06-18 at 5 49 45 PM" src="https://user-"In my VS Code extension's , I've a dependency for : When I run to see what packages are using , I see this: <img width="156" alt="Screen Shot 2019-06-18 at 5 49 23 PM" src="https://user-"And I see this reflected in my : VS Code version: Code 1.35.1 (, 2019-06-12T14:29:22.216Z) OS version: Darwin x64 18.6.0 <details<summarySystem Info</summary </details<details<summaryExtensions (15)</summaryExtensionVersion ------ vscode-css-formatter1.0.1 npm-intellisense1.3.0 path-intellisense1.4.2 bracket-pair-colorizer1.0.61 vscode-eslint1.9.0 gitlens9.8.2 vscode-npm-script0.3.7 auto-rename-tag0.1.0 beautify1.5.0 ibm-streams0.5.0 vscode-duplicate1.2.1 java0.46.0 change-case1.0.0 JavaScriptSnippets1.7.2 ReactSnippets2.3.0 </details<!-- generated by issue reporter --
Seems NPM org is taken by someone :( I'm now forking mocha to update to fix security alert Wondering what I should do :one: Publish it under :two: Make depends on octref/mocha on GitHub :three: We should create a NPM org for these kind of packages What do you think?
can't we just update to mocha 5 or 6 in the vscode module?
will talk to you in chat
Ah, I thought Mocha 5/6 would have breaking changes so we can't really upgrade easily. Turns out Mocha 5 only had : Drop IE9/10 support. It shouldn't affect us. Meanwhile if someone really needs Mocha 4. He can use and manually depends on it. Will upgrade to Mocha 5.
Thanks

Discussion:
# Visual Studio Code - Open Source <del> [VS Code](http://code.visualstudio.com) is a new choice of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. Code provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools. </del> <ins> [VS Code](http://code.visualstudio.com) is a new type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle. Code provides comprehensive editing and debugging support, an extensibility model, and lightweight integration with existing tools. </ins> <img width="550" alt="vscodereadme" align="middle"  src="https://cloud.githubusercontent.com/assets/1487073/11243985/98562110-8e0b-11e5-9922-29a0b4884eab.png">
Change:
<!-- 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.36-Insider OS Version: Windows 10 Steps to Reproduce: click into minimap <!-- Launch with to check. --Does this issue occur when all extensions are disabled?: Yes/No Yes
You can click and drag the highlighted area, but you can't click in a non-highlighted area and have it move to that section of the code. I disabled the other extensions, reloaded the app and closed it out and re-opened it again. Still no go.
The same issue. Dragging the highlighted area on the minimap works. Click outside the highlighted area in order to move to that area doesn't work.
Just to add more information, it is also happening on VSCode Linux. Version: 1.36.0-insider Commit: Date: 2019-06-25T05:17:18.032Z Electron: 4.2.5 Chrome: 69.0.3497.128 10.11.0 V8: 6.9.427.31-electron.0 OS: Linux x64 4.15.0-52-generic
I'm copying my info from the closed report at the top, as it's also happening on macOS (therefor across the board, it seems): Issue Type: <bBug</bSince this build it is no longer possible to click on the minimap to jump to a position in code. Instead one is forced to drag the view-highlight in the minimap. VS Code version: Code - Insiders 1.36.0-insider (, 2019-06-21T05:18:36.348Z) OS version: Darwin x64 18.6.0 <details<summarySystem Info</summary </details<details<summaryExtensions (23)</summaryExtensionVersion ------ vscode-intelephense-client1.0.14 vscode-tailwindcss0.2.0 npm-intellisense1.3.0 laravel-blade1.1.2 vscode-markdownlint0.28.0 vscode-eslint1.9.0 EditorConfig0.13.0 vscode-npm-script0.3.7 LogFileHighlighter2.5.0 file-icons1.0.17 auto-close-tag0.5.6 gc-excelviewer2.1.32 todo-tree0.0.135 phpcs1.0.5 path-autocomplete1.13.3 sftp1.12.7 tailwind-sass-syntax1.1.1 dotenv1.0.1 vscode-duplicate1.2.1 atom-keybindings3.0.6 vetur0.21.0 code-settings-sync3.2.9 vscode-wakatime2.1.2 (1 theme extensions excluded) </details<!-- generated by issue reporter --

Discussion:
this._applyLayout(); <del> this._mouseDownListener = dom.addStandardDisposableListener(this._canvas.domNode, 'mousedown', (e) => { </del> <ins> this._mouseDownListener = dom.addStandardDisposableListener(this._domNode.domNode, 'mousedown', (e) => { </ins> e.preventDefault(); const renderMinimap = this._options.renderMinimap;