mirror of
https://github.com/Microsoft/vscode
synced 2024-09-18 01:58:27 +00:00
debt - remove quickFix/browser
This commit is contained in:
parent
de018cc023
commit
4dba7669ae
|
@ -11,7 +11,7 @@ import Event, { Emitter } from 'vs/base/common/event';
|
|||
import * as dom from 'vs/base/browser/dom';
|
||||
import { TrackedRangeStickiness, MouseTargetType } from 'vs/editor/common/editorCommon';
|
||||
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { QuickFixComputeEvent } from 'vs/editor/contrib/quickFix/common/quickFixModel';
|
||||
import { QuickFixComputeEvent } from './quickFixModel';
|
||||
|
||||
export class LightBulbWidget implements IDisposable {
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
'use strict';
|
||||
|
||||
import * as nls from 'vs/nls';
|
||||
import URI from 'vs/base/common/uri';
|
||||
import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
|
||||
import { ICommandService } from 'vs/platform/commands/common/commands';
|
||||
|
@ -12,13 +13,19 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView
|
|||
import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
|
||||
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
|
||||
import { IMarkerService } from 'vs/platform/markers/common/markers';
|
||||
import { ICommonCodeEditor, EditorContextKeys, ModeContextKeys, IEditorContribution } from 'vs/editor/common/editorCommon';
|
||||
import { editorAction, ServicesAccessor, EditorAction } from 'vs/editor/common/editorCommonExtensions';
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { ICommonCodeEditor, EditorContextKeys, ModeContextKeys, IEditorContribution, IReadOnlyModel } from 'vs/editor/common/editorCommon';
|
||||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { editorAction, ServicesAccessor, EditorAction, CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions';
|
||||
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
|
||||
import { editorContribution } from 'vs/editor/browser/editorBrowserExtensions';
|
||||
import { QuickFixContextMenu } from 'vs/editor/contrib/quickFix/browser/quickFixWidget';
|
||||
import { LightBulbWidget } from 'vs/editor/contrib/quickFix/browser/lightBulbWidget';
|
||||
import { QuickFixModel, QuickFixComputeEvent } from 'vs/editor/contrib/quickFix/common/quickFixModel';
|
||||
import { CodeAction, CodeActionProviderRegistry } from 'vs/editor/common/modes';
|
||||
import { asWinJsPromise } from 'vs/base/common/async';
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { onUnexpectedExternalError, illegalArgument } from 'vs/base/common/errors';
|
||||
import { QuickFixContextMenu } from './quickFixWidget';
|
||||
import { LightBulbWidget } from './lightBulbWidget';
|
||||
import { QuickFixModel, QuickFixComputeEvent } from './quickFixModel';
|
||||
|
||||
@editorContribution
|
||||
export class QuickFixController implements IEditorContribution {
|
||||
|
@ -129,3 +136,35 @@ export class QuickFixAction extends EditorAction {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export function getCodeActions(model: IReadOnlyModel, range: Range): TPromise<CodeAction[]> {
|
||||
|
||||
const allResults: CodeAction[] = [];
|
||||
const promises = CodeActionProviderRegistry.all(model).map(support => {
|
||||
return asWinJsPromise(token => support.provideCodeActions(model, range, token)).then(result => {
|
||||
if (Array.isArray(result)) {
|
||||
allResults.push(...result);
|
||||
}
|
||||
}, err => {
|
||||
onUnexpectedExternalError(err);
|
||||
});
|
||||
});
|
||||
|
||||
return TPromise.join(promises).then(() => allResults);
|
||||
}
|
||||
|
||||
CommonEditorRegistry.registerLanguageCommand('_executeCodeActionProvider', function (accessor, args) {
|
||||
|
||||
const { resource, range } = args;
|
||||
if (!(resource instanceof URI) || !Range.isIRange(range)) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
|
||||
const model = accessor.get(IModelService).getModel(resource);
|
||||
if (!model) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
|
||||
return getCodeActions(model, model.validateRange(range));
|
||||
});
|
||||
|
|
|
@ -13,7 +13,7 @@ import { IMarker, IMarkerService } from 'vs/platform/markers/common/markers';
|
|||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { ICommonCodeEditor, IPosition, IRange } from 'vs/editor/common/editorCommon';
|
||||
import { CodeActionProviderRegistry, CodeAction } from 'vs/editor/common/modes';
|
||||
import { getCodeActions } from '../common/quickFix';
|
||||
import { getCodeActions } from './quickFix';
|
||||
|
||||
|
||||
export class QuickFixOracle {
|
|
@ -1,47 +0,0 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { illegalArgument, onUnexpectedExternalError } from 'vs/base/common/errors';
|
||||
import URI from 'vs/base/common/uri';
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { IReadOnlyModel } from 'vs/editor/common/editorCommon';
|
||||
import { CommonEditorRegistry } from 'vs/editor/common/editorCommonExtensions';
|
||||
import { CodeActionProviderRegistry, CodeAction } from 'vs/editor/common/modes';
|
||||
import { IModelService } from 'vs/editor/common/services/modelService';
|
||||
import { asWinJsPromise } from 'vs/base/common/async';
|
||||
|
||||
export function getCodeActions(model: IReadOnlyModel, range: Range): TPromise<CodeAction[]> {
|
||||
|
||||
const allResults: CodeAction[] = [];
|
||||
const promises = CodeActionProviderRegistry.all(model).map(support => {
|
||||
return asWinJsPromise(token => support.provideCodeActions(model, range, token)).then(result => {
|
||||
if (Array.isArray(result)) {
|
||||
allResults.push(...result);
|
||||
}
|
||||
}, err => {
|
||||
onUnexpectedExternalError(err);
|
||||
});
|
||||
});
|
||||
|
||||
return TPromise.join(promises).then(() => allResults);
|
||||
}
|
||||
|
||||
CommonEditorRegistry.registerLanguageCommand('_executeCodeActionProvider', function (accessor, args) {
|
||||
|
||||
const {resource, range} = args;
|
||||
if (!(resource instanceof URI) || !Range.isIRange(range)) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
|
||||
const model = accessor.get(IModelService).getModel(resource);
|
||||
if (!model) {
|
||||
throw illegalArgument();
|
||||
}
|
||||
|
||||
return getCodeActions(model, model.validateRange(range));
|
||||
});
|
|
@ -11,7 +11,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
|
|||
import { Model } from 'vs/editor/common/model/model';
|
||||
import { mockCodeEditor } from 'vs/editor/test/common/mocks/mockCodeEditor';
|
||||
import { MarkerService } from 'vs/platform/markers/common/markerService';
|
||||
import { QuickFixOracle } from 'vs/editor/contrib/quickFix/common/quickFixModel';
|
||||
import { QuickFixOracle } from 'vs/editor/contrib/quickFix/browser/quickFixModel';
|
||||
import { CodeActionProviderRegistry, LanguageIdentifier } from 'vs/editor/common/modes';
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ import { getDefinitionsAtPosition, getImplementationsAtPosition, getTypeDefiniti
|
|||
import { getHover } from 'vs/editor/contrib/hover/common/hover';
|
||||
import { getOccurrencesAtPosition } from 'vs/editor/contrib/wordHighlighter/common/wordHighlighter';
|
||||
import { provideReferences } from 'vs/editor/contrib/referenceSearch/browser/referenceSearch';
|
||||
import { getCodeActions } from 'vs/editor/contrib/quickFix/common/quickFix';
|
||||
import { getCodeActions } from 'vs/editor/contrib/quickFix/browser/quickFix';
|
||||
import { getWorkspaceSymbols } from 'vs/workbench/parts/search/common/search';
|
||||
import { rename } from 'vs/editor/contrib/rename/browser/rename';
|
||||
import { provideSignatureHelp } from 'vs/editor/contrib/parameterHints/common/parameterHints';
|
||||
|
|
Loading…
Reference in a new issue