mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-21 04:20:11 -04:00
Merge from master
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user