jiebi/CodeConvo huggingface dataset:
Code change:
<!-- Do you have a question? Please ask it on --- VSCode Version: Version 1.12.1 (1.12.1) OS Version: Windows 64 bits This issue is not a bug but just a suggestion/idea to improve CodeLens performance for TypeScript when and are activated. In this case tsserver command which can take times and response can be big is called twice: one call of navtree for providing references CodeLens. one call of navtree for providing implementation CodeLens. I tell me if CodeLens provider could manage a shared context to store some data that other code lens provider could use it. For instance in this case, we could have just one call of navtree: one call of navtree for providing references CodeLens and store the result in a shared context. the implementation CodeLens provider search navtree from the shared context.

Related discussion:
text: this.disposables.push(languages.registerCodeActionsProvider(selector, new (await import('./features/refactorProvider')).default(client, this.formattingOptionsManager, commandManager))); this.registerVersionDependentProviders(); <del> const referenceCodeLensProvider = new (await import('./features/referencesCodeLensProvider')).default(client, this.description.id); </del> <ins> const cachedResponse = new CachedNavTreeResponse(); const referenceCodeLensProvider = new (await import('./features/referencesCodeLensProvider')).default(client, this.description.id, cachedResponse); </ins> referenceCodeLensProvider.updateConfiguration(); this.toUpdateOnConfigurationChanged.push(referenceCodeLensProvider); this.disposables.push(languages.registerCodeLensProvider(selector, referenceCodeLensProvider)); <del> const implementationCodeLensProvider = new (await import('./features/implementationsCodeLensProvider')).default(client, this.description.id); </del> <ins> const implementationCodeLensProvider = new (await import('./features/implementationsCodeLensProvider')).default(client, this.description.id, cachedResponse); </ins> implementationCodeLensProvider.updateConfiguration(); this.toUpdateOnConfigurationChanged.push(implementationCodeLensProvider); this.disposables.push(languages.registerCodeLensProvider(selector, implementationCodeLensProvider));
Code change:
Loosely related to ! We can use the 'files to include' box to do a search in an arbitrary folder, but it has to be an absolute path. It should also work when using a ~ to indicate the user's home directory.

Related discussion:
text: import * as glob from 'vs/base/common/glob'; import * as paths from 'vs/base/common/paths'; import uri from 'vs/base/common/uri'; <ins> import { untildify } from 'vs/base/common/labels'; </ins> import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IPatternInfo, IQueryOptions, IFolderQuery, ISearchQuery, QueryType, ISearchConfiguration, getExcludes, pathIncludedInQuery } from 'vs/platform/search/common/search'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; <ins> import { IEnvironmentService } from 'vs/platform/environment/common/environment'; </ins> export interface ISearchPathPattern { searchPath: uri;
Code change:
Loosely related to ! We can use the 'files to include' box to do a search in an arbitrary folder, but it has to be an absolute path. It should also work when using a ~ to indicate the user's home directory.

Related discussion:
text: constructor( @IConfigurationService private configurationService: IConfigurationService, <del> @IWorkspaceContextService private workspaceContextService: IWorkspaceContextService) { } </del> <ins> @IWorkspaceContextService private workspaceContextService: IWorkspaceContextService, @IEnvironmentService private environmentService: IEnvironmentService ) { } </ins> public text(contentPattern: IPatternInfo, folderResources?: uri[], options?: IQueryOptions): ISearchQuery { return this.query(QueryType.Text, contentPattern, folderResources, options);
Code change:
Loosely related to ! We can use the 'files to include' box to do a search in an arbitrary folder, but it has to be an absolute path. It should also work when using a ~ to indicate the user's home directory.

Related discussion:
text: return paths.isAbsolute(segment) || /^..?[/]/.test(segment); }; <del> const segments = splitGlobPattern(pattern); </del> <ins> const segments = splitGlobPattern(pattern) .map(segment => untildify(segment, this.environmentService.userHome)); </ins> const groups = collections.groupBy(segments, segment => isSearchPath(segment) ? 'searchPaths' : 'exprSegments');
Code change:
Loosely related to ! We can use the 'files to include' box to do a search in an arbitrary folder, but it has to be an absolute path. It should also work when using a ~ to indicate the user's home directory.

Related discussion:
text: import { IWorkspaceContextService, Workspace, toWorkspaceFolders } from 'vs/platform/workspace/common/workspace'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { QueryBuilder, ISearchPathsResult } from 'vs/workbench/parts/search/common/queryBuilder'; <del> import { TestContextService } from 'vs/workbench/test/workbenchTestServices'; </del> <ins> import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { TestContextService, TestEnvironmentService } from 'vs/workbench/test/workbenchTestServices'; </ins> import { ISearchQuery, QueryType, IPatternInfo, IFolderQuery } from 'vs/platform/search/common/search';
Code change:
Loosely related to ! We can use the 'files to include' box to do a search in an arbitrary folder, but it has to be an absolute path. It should also work when using a ~ to indicate the user's home directory.

Related discussion:
text: mockContextService.setWorkspace(mockWorkspace); instantiationService.stub(IWorkspaceContextService, mockContextService); <ins> instantiationService.stub(IEnvironmentService, TestEnvironmentService); </ins> queryBuilder = instantiationService.createInstance(QueryBuilder); });
Code change:
VSCode Version: Code 1.17.1 (, 2017-10-10T14:24:50.851Z) OS Version: Windows_NT x64 10.0. Current default keybindings on Windows: has two key bindings, which seems unnecessary. On Linux the default key bindings are (IIRC): Which makes a lot more sense IMHO. Also using this default on Windows would also align Windows/Linux key bindings and maybe even avoid complications like . (same for of course)
We will not change this. See

Related discussion:
text: kbOpts: { weight: CORE_WEIGHT, kbExpr: EditorContextKeys.textInputFocus, <del> primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyMod.Alt | KeyCode.UpArrow, </del> <ins> primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.UpArrow, </ins> linux: { primary: 0 } } }));
Code change:
VSCode Version: Code 1.17.1 (, 2017-10-10T14:24:50.851Z) OS Version: Windows_NT x64 10.0. Current default keybindings on Windows: has two key bindings, which seems unnecessary. On Linux the default key bindings are (IIRC): Which makes a lot more sense IMHO. Also using this default on Windows would also align Windows/Linux key bindings and maybe even avoid complications like . (same for of course)
We will not change this. See

Related discussion:
text: kbOpts: { weight: CORE_WEIGHT, kbExpr: EditorContextKeys.textInputFocus, <del> primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyMod.Alt | KeyCode.DownArrow, </del> <ins> primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.DownArrow, </ins> linux: { primary: 0 } } }));
Code change:
VSCode Version: Code 1.17.1 (, 2017-10-10T14:24:50.851Z) OS Version: Windows_NT x64 10.0. Current default keybindings on Windows: has two key bindings, which seems unnecessary. On Linux the default key bindings are (IIRC): Which makes a lot more sense IMHO. Also using this default on Windows would also align Windows/Linux key bindings and maybe even avoid complications like . (same for of course)
We will not change this. See

Related discussion:
text: weight: CORE_WEIGHT, kbExpr: EditorContextKeys.textInputFocus, primary: KeyMod.Shift | KeyCode.UpArrow, <del> secondary: [KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.UpArrow], </del> mac: { primary: KeyMod.Shift | KeyCode.UpArrow }, linux: { primary: KeyMod.Shift | KeyCode.UpArrow } }
Code change:
VSCode Version: Code 1.17.1 (, 2017-10-10T14:24:50.851Z) OS Version: Windows_NT x64 10.0. Current default keybindings on Windows: has two key bindings, which seems unnecessary. On Linux the default key bindings are (IIRC): Which makes a lot more sense IMHO. Also using this default on Windows would also align Windows/Linux key bindings and maybe even avoid complications like . (same for of course)
We will not change this. See

Related discussion:
text: weight: CORE_WEIGHT, kbExpr: EditorContextKeys.textInputFocus, primary: KeyMod.Shift | KeyCode.DownArrow, <del> secondary: [KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.DownArrow], </del> mac: { primary: KeyMod.Shift | KeyCode.DownArrow }, linux: { primary: KeyMod.Shift | KeyCode.DownArrow } }
Code change:
Generalization of Steps to Reproduce: a markdown file: the js code block, type Bug inserted. Root cause* Markdown defines and as auto closing pairs. Js does not. It appears that we always use the document language's autoclosing pairs instead of the autoclosing pairs of the embedded language at the current cursor position
Good catch, auto close should check language around cursor instead of model.
Another case: Based on JS's auto closing rules, we would expect completion to

Related discussion:
text: } } <del> return true; </del> <ins> return false; </ins> } public getSurroundingPairs(): IAutoClosingPair[] {
Code change:
Default order in keybindings (default keybindings and intelliSense) is: ==When you copy from keybindings view and paste: ==

Related discussion:
text: this.selectEntry(keybinding); this.reportKeybindingAction(KEYBINDINGS_EDITOR_COMMAND_COPY, keybinding.keybindingItem.command, keybinding.keybindingItem.keybinding); const userFriendlyKeybinding: IUserFriendlyKeybinding = { <del> command: keybinding.keybindingItem.command, key: keybinding.keybindingItem.keybinding ? keybinding.keybindingItem.keybinding.getUserSettingsLabel() : '' </del> <ins> key: keybinding.keybindingItem.keybinding ? keybinding.keybindingItem.keybinding.getUserSettingsLabel() : '', command: keybinding.keybindingItem.command </ins> }; if (keybinding.keybindingItem.when) { userFriendlyKeybinding.when = keybinding.keybindingItem.when;
Code change:
Given , I should be able to Run In parent directory prompt, enter Get popup
Hasn't this issue been solved before ? If it hasn't I'll try to fix it.
Actually it seems the current solution can only handle in the config setting... but not in the input box!
hello I could take a look at the issue if no one is already assigned. It would be my first one. Regards, Pascal.
Hi let me know if you're working on the issue. I think I've found a solution.
go for it !

Related discussion:
text: return ''; } <ins> private handlePathTilde(path: string): string { return path.replace(/^~/, os.homedir()); } </ins> private static cloneId = 0; @command('git.clone')
Code change:
Given , I should be able to Run In parent directory prompt, enter Get popup
Hasn't this issue been solved before ? If it hasn't I'll try to fix it.
Actually it seems the current solution can only handle in the config setting... but not in the input box!
hello I could take a look at the issue if no one is already assigned. It would be my first one. Regards, Pascal.
Hi let me know if you're working on the issue. I think I've found a solution.
go for it !

Related discussion:
text: const config = workspace.getConfiguration('git'); let value = config.get<string>('defaultCloneDirectory') || os.homedir(); <del> value = value.replace(/^~/, os.homedir()); </del> const parentPath = await window.showInputBox({ prompt: localize('parent', "Parent Directory"), <del> value, </del> <ins> value: this.handlePathTilde(value), </ins> ignoreFocusOut: true });
Code change:
Given , I should be able to Run In parent directory prompt, enter Get popup
Hasn't this issue been solved before ? If it hasn't I'll try to fix it.
Actually it seems the current solution can only handle in the config setting... but not in the input box!
hello I could take a look at the issue if no one is already assigned. It would be my first one. Regards, Pascal.
Hi let me know if you're working on the issue. I think I've found a solution.
go for it !

Related discussion:
text: statusBarItem.command = cancelCommandId; statusBarItem.show(); <del> const clonePromise = this.git.clone(url, parentPath, tokenSource.token); </del> <ins> const clonePromise = this.git.clone(url, this.handlePathTilde(parentPath), tokenSource.token); </ins> try { window.withProgress({ location: ProgressLocation.SourceControl, title: localize('cloning', "Cloning git repository...") }, () => clonePromise);
Code change:
From: Steps to Reproduce: VSCode Version: 1.20.1 OS Version: macOS High Sierra 10.13.3 Steps to Reproduce: markdown file markdown to first line in preview or double click on the first line Does this issue occur when all extensions are disabled?: Yes

Related discussion:
text: if (previous) { if (next) { const betweenProgress = (offset - window.scrollY - previous.element.getBoundingClientRect().top) / (next.element.getBoundingClientRect().top - previous.element.getBoundingClientRect().top); <del> return previous.line + betweenProgress * (next.line - previous.line); </del> <ins> const line = previous.line + betweenProgress * (next.line - previous.line); return (0 <= line) ? line : 0; </ins> } else { <del> return previous.line; </del> <ins> return (0 <= previous.line) ? previous.line : 0; </ins> } } return null;
Code change:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !

Related discussion:
text: if (this.partService.isCreated() && !errors.isPromiseCanceledError(error)) { const actions: INotificationActions = { primary: [] }; if (errors.isErrorWithActions(error)) { <del> actions.primary = error.actions; </del> <ins> actions.primary = (error as errors.IErrorWithActions).actions; </ins> } const handle = this.notificationService.notify({
Code change:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !

Related discussion:
text: for (let i = 0, len = events.length; i < len; i++) { const resource = events[i].resource; const isJson = paths.extname(resource.fsPath) === '.json'; <del> const isDeletedSettingsFolder = (events[i].type === FileChangeType.DELETED && paths.isEqual(paths.basename(resource.fsPath), this.configFolderRelativePath)); </del> <ins> const isDeletedSettingsFolder = (events[i].type === FileChangeType.DELETED && paths.basename(resource.fsPath) === this.configFolderRelativePath); </ins> if (!isJson && !isDeletedSettingsFolder) { continue; // only JSON files or the actual settings folder }
Code change:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !

Related discussion:
text: <del> <?xml version='1.0' standalone='no' ?> <svg xmlns='http://www.w3.org/2000/svg' version='1.1' width='10px' height='10px'> <style> circle { animation: ball 0.6s linear infinite; } circle:nth-child(2) { animation-delay: 0.075s; } circle:nth-child(3) { animation-delay: 0.15s; } circle:nth-child(4) { animation-delay: 0.225s; } circle:nth-child(5) { animation-delay: 0.3s; } circle:nth-child(6) { animation-delay: 0.375s; } circle:nth-child(7) { animation-delay: 0.45s; } circle:nth-child(8) { animation-delay: 0.525s; } @keyframes ball { from { opacity: 1; } to { opacity: 0.3; } } </style> <g style="fill:white;"> <circle cx='5' cy='1' r='1' style='opacity:0.3;' /> <circle cx='7.8284' cy='2.1716' r='1' style='opacity:0.3;' /> <circle cx='9' cy='5' r='1' style='opacity:0.3;' /> <circle cx='7.8284' cy='7.8284' r='1' style='opacity:0.3;' /> <circle cx='5' cy='9' r='1' style='opacity:0.3;' /> <circle cx='2.1716' cy='7.8284' r='1' style='opacity:0.3;' /> <circle cx='1' cy='5' r='1' style='opacity:0.3;' /> <circle cx='2.1716' cy='2.1716' r='1' style='opacity:0.3;' /> </g> </svg> </del>
Code change:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !

Related discussion:
text: *--------------------------------------------------------------------------------------------*/ .monaco-workbench > .part.statusbar > .statusbar-item.progress { <del> background-image: url(progress.svg); background-repeat: no-repeat; background-position: left; padding-left: 14px; display: inline; </del> <ins> padding-left: 5px; } .monaco-workbench > .part.statusbar > .statusbar-item.progress .spinner-container { padding-right: 5px; </ins> } .monaco-workbench .progress-badge > .badge-content {
Code change:
In light themes the status bar text changes from white to black, but progress spinners do not so they're hard to see: 
This icon is probably not themable yet. E.g. for the status bar feedback smiley we use trick to allow to change the color of it (). Depending on the outcome of we might move this into the notification area though.
fyi, the fix is to use a font for the icon (in this case our octicons). I found the sync icon fitting because we already use it for SCM sync: ! Alternatively we could use this animation: !

Related discussion:
text: render(element: HTMLElement): IDisposable { this._element = element; <del> this._label = new OcticonLabel(this._element); </del> this._element.classList.add('progress'); <ins> const container = document.createElement('span'); this._element.appendChild(container); const spinnerContainer = document.createElement('span'); spinnerContainer.classList.add('spinner-container'); container.appendChild(spinnerContainer); const spinner = new OcticonLabel(spinnerContainer); spinner.text = '$(sync~spin)'; const labelContainer = document.createElement('span'); container.appendChild(labelContainer); this._label = new OcticonLabel(labelContainer); </ins> this.hide(); return null; }
Code change:
Issue Type: <bFeature Request</bVSCode uses different conventions for the problem counters in the problems view and in the status bar. The problems view displays: 1 2 ... 999 1K 2K ... 10K+ and the tooltip shows the actual number. The status bar displays: for errors/warnings: 1 2 ... 99+ and the tooltip doesn't show the actual number. for infos: 1 2 ... (always the actual number), the tooltip doesn't show the actual number. <img width="118" alt="problems-view" src="https://user-"<img width="108" alt="status-bar" src="https://user-"VS Code version: Code 1.21.0 (, 2018-03-07T10:54:22.798Z) OS version: Darwin x64 17.4.0 <!-- generated by issue reporter --
assigning to you. I personally would adopt the status bar to the problems view. Everything over 99 is not very informative anyways.

Related discussion:
text: const info = document.createElement('div'); const building = document.createElement('div'); <ins> const errorTitle = n => nls.localize('totalErrors', "{0} Errors", n); const warningTitle = n => nls.localize('totalWarnings', "{0} Warnings", n); const infoTitle = n => nls.localize('totalInfos', "{0} Infos", n); </ins> Dom.addClass(element, 'task-statusbar-item'); Dom.addClass(label, 'task-statusbar-item-label'); element.appendChild(label); <del> element.title = nls.localize('problems', "Problems"); </del> Dom.addClass(errorIcon, 'task-statusbar-item-label-error'); Dom.addClass(errorIcon, 'mask-icon');
Code change:
Issue Type: <bFeature Request</bVSCode uses different conventions for the problem counters in the problems view and in the status bar. The problems view displays: 1 2 ... 999 1K 2K ... 10K+ and the tooltip shows the actual number. The status bar displays: for errors/warnings: 1 2 ... 99+ and the tooltip doesn't show the actual number. for infos: 1 2 ... (always the actual number), the tooltip doesn't show the actual number. <img width="118" alt="problems-view" src="https://user-"<img width="108" alt="status-bar" src="https://user-"VS Code version: Code 1.21.0 (, 2018-03-07T10:54:22.798Z) OS version: Darwin x64 17.4.0 <!-- generated by issue reporter --
assigning to you. I personally would adopt the status bar to the problems view. Everything over 99 is not very informative anyways.

Related discussion:
text: Dom.addClass(error, 'task-statusbar-item-label-counter'); error.innerHTML = '0'; <ins> error.title = errorIcon.title = errorTitle(0); </ins> label.appendChild(error); Dom.addClass(warningIcon, 'task-statusbar-item-label-warning');
Code change:
Issue Type: <bFeature Request</bVSCode uses different conventions for the problem counters in the problems view and in the status bar. The problems view displays: 1 2 ... 999 1K 2K ... 10K+ and the tooltip shows the actual number. The status bar displays: for errors/warnings: 1 2 ... 99+ and the tooltip doesn't show the actual number. for infos: 1 2 ... (always the actual number), the tooltip doesn't show the actual number. <img width="118" alt="problems-view" src="https://user-"<img width="108" alt="status-bar" src="https://user-"VS Code version: Code 1.21.0 (, 2018-03-07T10:54:22.798Z) OS version: Darwin x64 17.4.0 <!-- generated by issue reporter --
assigning to you. I personally would adopt the status bar to the problems view. Everything over 99 is not very informative anyways.

Related discussion:
text: Dom.addClass(warning, 'task-statusbar-item-label-counter'); warning.innerHTML = '0'; <ins> warning.title = warningIcon.title = warningTitle(0); </ins> label.appendChild(warning); Dom.addClass(infoIcon, 'task-statusbar-item-label-info');