Apply the api design suggestions

This commit is contained in:
Kirill Bulatov
2020-01-12 00:40:36 +02:00
parent 73dc8b6f06
commit 78a21253b4
10 changed files with 97 additions and 59 deletions

View File

@@ -34,8 +34,20 @@ function showReferences(ctx: Ctx): Cmd {
}
function applySourceChange(ctx: Ctx): Cmd {
return async (change: sourceChange.SourceChange, alternativeChanges: sourceChange.SourceChange[] | undefined) => {
sourceChange.applySourceChange(ctx, change, alternativeChanges);
return async (change: sourceChange.SourceChange) => {
sourceChange.applySourceChange(ctx, change);
};
}
function selectAndApplySourceChange(ctx: Ctx): Cmd {
return async (changes: sourceChange.SourceChange[]) => {
if (changes.length === 1) {
await sourceChange.applySourceChange(ctx, changes[0]);
} else if (changes.length > 0) {
const selectedChange = await vscode.window.showQuickPick(changes);
if (!selectedChange) return;
await sourceChange.applySourceChange(ctx, selectedChange);
}
};
}
@@ -59,5 +71,6 @@ export {
runSingle,
showReferences,
applySourceChange,
selectAndApplySourceChange,
reload
};

View File

@@ -26,6 +26,7 @@ export async function activate(context: vscode.ExtensionContext) {
ctx.registerCommand('runSingle', commands.runSingle);
ctx.registerCommand('showReferences', commands.showReferences);
ctx.registerCommand('applySourceChange', commands.applySourceChange);
ctx.registerCommand('selectAndApplySourceChange', commands.selectAndApplySourceChange);
if (ctx.config.enableEnhancedTyping) {
ctx.overrideCommand('type', commands.onEnter);

View File

@@ -9,7 +9,7 @@ export interface SourceChange {
cursorPosition?: lc.TextDocumentPositionParams;
}
async function applySelectedSourceChange(ctx: Ctx, change: SourceChange) {
export async function applySourceChange(ctx: Ctx, change: SourceChange) {
const client = ctx.client;
if (!client) return;
@@ -55,13 +55,3 @@ async function applySelectedSourceChange(ctx: Ctx, change: SourceChange) {
);
}
}
export async function applySourceChange(ctx: Ctx, change: SourceChange, alternativeChanges: SourceChange[] | undefined) {
if (alternativeChanges !== undefined && alternativeChanges.length > 0) {
const selectedChange = await vscode.window.showQuickPick([change, ...alternativeChanges]);
if (!selectedChange) return;
await applySelectedSourceChange(ctx, selectedChange);
} else {
await applySelectedSourceChange(ctx, change);
}
}