Merge from master

This commit is contained in:
Raj Musuku
2019-02-21 17:56:04 -08:00
parent 5a146e34fa
commit 666ae11639
11482 changed files with 119352 additions and 255574 deletions

View File

@@ -2,11 +2,9 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import * as nls from 'vs/nls';
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
import { TPromise } from 'vs/base/common/winjs.base';
import { IContextKeyService, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
import { Position, IPosition } from 'vs/editor/common/core/position';
@@ -17,7 +15,7 @@ import { Range } from 'vs/editor/common/core/range';
import { PeekContext, getOuterEditor } from './peekViewWidget';
import { ReferencesController, RequestOptions, ctxReferenceSearchVisible } from './referencesController';
import { ReferencesModel, OneReference } from './referencesModel';
import { asWinJsPromise, createCancelablePromise } from 'vs/base/common/async';
import { createCancelablePromise } from 'vs/base/common/async';
import { onUnexpectedExternalError } from 'vs/base/common/errors';
import { EditorContextKeys } from 'vs/editor/common/editorContextKeys';
import { EmbeddedCodeEditorWidget } from 'vs/editor/browser/widget/embeddedCodeEditorWidget';
@@ -26,7 +24,7 @@ import { ITextModel } from 'vs/editor/common/model';
import { IListService } from 'vs/platform/list/browser/listService';
import { ctxReferenceWidgetSearchTreeFocused } from 'vs/editor/contrib/referenceSearch/referencesWidget';
import { CommandsRegistry, ICommandHandler } from 'vs/platform/commands/common/commands';
import URI from 'vs/base/common/uri';
import { URI } from 'vs/base/common/uri';
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
import { CancellationToken } from 'vs/base/common/cancellation';
@@ -62,8 +60,8 @@ export class ReferenceAction extends EditorAction {
constructor() {
super({
id: 'editor.action.referenceSearch.trigger',
label: nls.localize('references.action.label', "Find All References"),
alias: 'Find All References',
label: nls.localize('references.action.label', "Peek References"),
alias: 'Find All References', // leave the alias?
precondition: ContextKeyExpr.and(
EditorContextKeys.hasReferenceProvider,
PeekContext.notInPeekEditor,
@@ -117,7 +115,7 @@ let findReferencesCommand: ICommandHandler = (accessor: ServicesAccessor, resour
let references = createCancelablePromise(token => provideReferences(control.getModel(), Position.lift(position), token).then(references => new ReferencesModel(references)));
let range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);
return TPromise.as(controller.toggleWidget(range, references, defaultReferenceSearchOptions));
return Promise.resolve(controller.toggleWidget(range, references, defaultReferenceSearchOptions));
});
};
@@ -126,6 +124,10 @@ let showReferencesCommand: ICommandHandler = (accessor: ServicesAccessor, resour
throw new Error('illegal argument, uri expected');
}
if (!references) {
throw new Error('missing references');
}
const codeEditorService = accessor.get(ICodeEditorService);
return codeEditorService.openCodeEditor({ resource }, codeEditorService.getFocusedCodeEditor()).then(control => {
if (!isCodeEditor(control)) {
@@ -137,7 +139,7 @@ let showReferencesCommand: ICommandHandler = (accessor: ServicesAccessor, resour
return undefined;
}
return TPromise.as(controller.toggleWidget(
return Promise.resolve(controller.toggleWidget(
new Range(position.lineNumber, position.column, position.lineNumber, position.column),
createCancelablePromise(_ => Promise.resolve(new ReferencesModel(references))),
defaultReferenceSearchOptions)).then(() => true);
@@ -272,9 +274,7 @@ export function provideReferences(model: ITextModel, position: Position, token:
// collect references from all providers
const promises = ReferenceProviderRegistry.ordered(model).map(provider => {
return asWinJsPromise((token) => {
return provider.provideReferences(model, position, { includeDeclaration: true }, token);
}).then(result => {
return Promise.resolve(provider.provideReferences(model, position, { includeDeclaration: true }, token)).then(result => {
if (Array.isArray(result)) {
return <Location[]>result;
}