mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
fix #167652
This commit is contained in:
parent
87a5329aec
commit
cf4cc72790
|
@ -89,7 +89,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
|
|||
|
||||
const end = line.lastIndexOf('#');
|
||||
fixes.push({
|
||||
type: vscode.TerminalQuickFixType.command,
|
||||
type: vscode.TerminalQuickFixType.Command,
|
||||
terminalCommand: line.slice(begin, end === -1 ? undefined : end - 1)
|
||||
});
|
||||
}
|
||||
|
|
|
@ -56,7 +56,15 @@ export interface ITerminalCommandSelector {
|
|||
|
||||
export type TerminalQuickFixActionInternal = IAction | ITerminalQuickFixCommandAction | ITerminalQuickFixOpenerAction;
|
||||
export type TerminalQuickFixCallback = (matchResult: ITerminalCommandMatchResult) => TerminalQuickFixActionInternal[] | TerminalQuickFixActionInternal | undefined;
|
||||
export type TerminalQuickFixCallbackExtension = (terminalCommand: ITerminalCommand, lines: string[] | undefined, option: ITerminalQuickFixOptions, token: CancellationToken) => Promise<ITerminalQuickFix[] | ITerminalQuickFix | undefined>;
|
||||
export type TerminalQuickFixCallbackExtension = (terminalCommand: ITerminalCommand, lines: string[] | undefined, option: ITerminalQuickFixOptions, token: CancellationToken) => Promise<ProviderResult<ITerminalQuickFix[] | ITerminalQuickFix>>;
|
||||
|
||||
/**
|
||||
* A provider result represents the values a provider, like the {@link HoverProvider},
|
||||
* may return. For once this is the actual result type `T`, like `Hover`, or a thenable that resolves
|
||||
* to that type `T`. In addition, `null` and `undefined` can be returned - either directly or from a
|
||||
* thenable.
|
||||
*/
|
||||
export type ProviderResult<T> = T | undefined | null | Thenable<T | undefined | null>;
|
||||
|
||||
export interface ITerminalQuickFixProvider {
|
||||
/**
|
||||
|
@ -65,7 +73,7 @@ export interface ITerminalQuickFixProvider {
|
|||
* @param token A cancellation token indicating the result is no longer needed
|
||||
* @return Terminal quick fix(es) if any
|
||||
*/
|
||||
provideTerminalQuickFixes(terminalCommand: ITerminalCommand, lines: string[] | undefined, option: ITerminalQuickFixOptions, token: CancellationToken): Promise<ITerminalQuickFix[] | ITerminalQuickFix | undefined>;
|
||||
provideTerminalQuickFixes(terminalCommand: ITerminalCommand, lines: string[] | undefined, option: ITerminalQuickFixOptions, token: CancellationToken): Promise<ProviderResult<ITerminalQuickFix[] | ITerminalQuickFix>>;
|
||||
}
|
||||
export interface ITerminalCommandMatchResult {
|
||||
commandLine: string;
|
||||
|
|
|
@ -70,7 +70,7 @@ import { CandidatePort } from 'vs/workbench/services/remote/common/remoteExplore
|
|||
import { ITextQueryBuilderOptions } from 'vs/workbench/services/search/common/queryBuilder';
|
||||
import * as search from 'vs/workbench/services/search/common/search';
|
||||
import { EditSessionIdentityMatch } from 'vs/platform/workspace/common/editSessions';
|
||||
import { TerminalCommandMatchResult, TerminalQuickFix } from 'vscode';
|
||||
import { ProviderResult, TerminalCommandMatchResult, TerminalQuickFix } from 'vscode';
|
||||
|
||||
export interface IWorkspaceData extends IStaticWorkspaceData {
|
||||
folders: { uri: UriComponents; name: string; index: number }[];
|
||||
|
@ -1854,7 +1854,7 @@ export interface ExtHostTerminalServiceShape {
|
|||
$initEnvironmentVariableCollections(collections: [string, ISerializableEnvironmentVariableCollection][]): void;
|
||||
$acceptDefaultProfile(profile: ITerminalProfile, automationProfile: ITerminalProfile): void;
|
||||
$createContributedProfileTerminal(id: string, options: ICreateContributedTerminalProfileOptions): Promise<void>;
|
||||
$provideTerminalQuickFixes(id: string, matchResult: TerminalCommandMatchResult, token: CancellationToken): Promise<TerminalQuickFix[] | TerminalQuickFix | undefined>;
|
||||
$provideTerminalQuickFixes(id: string, matchResult: TerminalCommandMatchResult, token: CancellationToken): Promise<ProviderResult<TerminalQuickFix[] | TerminalQuickFix>>;
|
||||
}
|
||||
|
||||
export interface ExtHostSCMShape {
|
||||
|
|
|
@ -679,7 +679,7 @@ export abstract class BaseExtHostTerminalService extends Disposable implements I
|
|||
});
|
||||
}
|
||||
|
||||
public async $provideTerminalQuickFixes(id: string, matchResult: vscode.TerminalCommandMatchResult): Promise<vscode.TerminalQuickFix[] | vscode.TerminalQuickFix | undefined> {
|
||||
public async $provideTerminalQuickFixes(id: string, matchResult: vscode.TerminalCommandMatchResult): Promise<vscode.ProviderResult<vscode.TerminalQuickFix[] | vscode.TerminalQuickFix>> {
|
||||
const token = new CancellationTokenSource().token;
|
||||
if (token.isCancellationRequested) {
|
||||
return;
|
||||
|
|
|
@ -25,7 +25,7 @@ import { IActionWidgetService } from 'vs/platform/actionWidget/browser/actionWid
|
|||
import { ActionSet } from 'vs/platform/actionWidget/common/actionWidget';
|
||||
import { TerminalQuickFix, toMenuItems } from 'vs/workbench/contrib/terminal/browser/widgets/terminalQuickFixMenuItems';
|
||||
import { ITerminalQuickFixProviderSelector, ITerminalQuickFixService } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { ITerminalQuickFixOptions, IResolvedExtensionOptions, IUnresolvedExtensionOptions, ITerminalCommandSelector, ITerminalQuickFix, IInternalOptions, ITerminalQuickFixCommandAction, ITerminalQuickFixOpenerAction, TerminalQuickFixType } from 'vs/platform/terminal/common/xterm/terminalQuickFix';
|
||||
import { ITerminalQuickFixOptions, IResolvedExtensionOptions, IUnresolvedExtensionOptions, ITerminalCommandSelector, ITerminalQuickFix, IInternalOptions, ITerminalQuickFixCommandAction, ITerminalQuickFixOpenerAction, TerminalQuickFixType, ProviderResult } from 'vs/platform/terminal/common/xterm/terminalQuickFix';
|
||||
import { getLinesForCommand } from 'vs/platform/terminal/common/capabilities/commandDetectionCapability';
|
||||
import { IAnchor } from 'vs/base/browser/ui/contextview/contextview';
|
||||
import { ILabelService } from 'vs/platform/label/common/label';
|
||||
|
@ -294,7 +294,7 @@ export async function getQuickFixesForCommand(
|
|||
openerService: IOpenerService,
|
||||
labelService: ILabelService,
|
||||
onDidRequestRerunCommand?: Emitter<{ command: string; addNewLine?: boolean }>,
|
||||
getResolvedFixes?: (selector: ITerminalQuickFixOptions, lines?: string[]) => Promise<ITerminalQuickFix | ITerminalQuickFix[] | undefined>
|
||||
getResolvedFixes?: (selector: ITerminalQuickFixOptions, lines?: string[]) => Promise<ProviderResult<ITerminalQuickFix | ITerminalQuickFix[]>>
|
||||
): Promise<ITerminalAction[] | undefined> {
|
||||
const fixes: ITerminalAction[] = [];
|
||||
const newCommand = terminalCommand.command;
|
||||
|
|
|
@ -12,7 +12,7 @@ declare module 'vscode' {
|
|||
* @param token A cancellation token indicating the result is no longer needed
|
||||
* @return Terminal quick fix(es) if any
|
||||
*/
|
||||
provideTerminalQuickFixes(commandMatchResult: TerminalCommandMatchResult, token: CancellationToken): TerminalQuickFix[] | TerminalQuickFix | undefined;
|
||||
provideTerminalQuickFixes(commandMatchResult: TerminalCommandMatchResult, token: CancellationToken): ProviderResult<TerminalQuickFix[] | TerminalQuickFix>;
|
||||
}
|
||||
|
||||
interface TerminalQuickFix {
|
||||
|
|
Loading…
Reference in a new issue