Apply the api design suggestions
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user