Remove movable array, improve client code

This commit is contained in:
ivan770 2021-03-16 16:57:14 +02:00
parent 7d60458495
commit a154ef7ca1
No known key found for this signature in database
GPG key ID: D8C4BD5AE4D9CC4D
3 changed files with 14 additions and 30 deletions

View file

@ -148,16 +148,20 @@ export function moveItem(ctx: Ctx, direction: ra.Direction): Cmd {
const client = ctx.client;
if (!editor || !client) return;
const edit: lc.TextDocumentEdit = await client.sendRequest(ra.moveItem, {
const edit = await client.sendRequest(ra.moveItem, {
range: client.code2ProtocolConverter.asRange(editor.selection),
textDocument: ctx.client.code2ProtocolConverter.asTextDocumentIdentifier(editor.document),
direction
});
if(!edit) return;
await editor.edit((builder) => {
client.protocol2CodeConverter.asTextEdits(edit.edits).forEach((edit: any) => {
builder.replace(edit.range, edit.newText);
});
}).then(() => {
editor.selection = new vscode.Selection(editor.selection.end, editor.selection.end);
});
};
}

View file

@ -128,7 +128,7 @@ export interface OpenCargoTomlParams {
textDocument: lc.TextDocumentIdentifier;
}
export const moveItem = new lc.RequestType<MoveItemParams, lc.TextDocumentEdit, void>("experimental/moveItem");
export const moveItem = new lc.RequestType<MoveItemParams, lc.TextDocumentEdit | void, void>("experimental/moveItem");
export interface MoveItemParams {
textDocument: lc.TextDocumentIdentifier,