Skip to content

Commit

Permalink
feat(cmds): joinLines extension (#259)
Browse files Browse the repository at this point in the history
  • Loading branch information
fannheyward authored May 25, 2020
1 parent c74c1fd commit b3b32ee
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
7 changes: 3 additions & 4 deletions src/cmds/join_lines.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { workspace } from 'coc.nvim';
import { Cmd, Ctx, isRustDocument } from '../ctx';
import * as ra from '../rust-analyzer-api';
import { applySourceChange } from '../source_change';

export function joinLines(ctx: Ctx): Cmd {
return async () => {
Expand All @@ -15,9 +14,9 @@ export function joinLines(ctx: Ctx): Cmd {
}
const param: ra.JoinLinesParams = {
textDocument: { uri: doc.uri },
range,
ranges: [range],
};
const change = await ctx.client.sendRequest(ra.joinLines, param);
await applySourceChange(change);
const items = await ctx.client.sendRequest(ra.joinLines, param);
await doc.applyEdits(items);
};
}
16 changes: 13 additions & 3 deletions src/rust-analyzer-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@
* This file mirrors `crates/rust-analyzer/src/req.rs` declarations.
*/

import { Location, NotificationType, Position, Range, RequestType, TextDocumentIdentifier, TextDocumentPositionParams, WorkspaceEdit } from 'vscode-languageserver-protocol';
import {
Location,
NotificationType,
Position,
Range,
RequestType,
TextDocumentIdentifier,
TextDocumentPositionParams,
TextEdit,
WorkspaceEdit,
} from 'vscode-languageserver-protocol';

type Option<T> = null | T;
type Vec<T> = T[];
Expand Down Expand Up @@ -56,9 +66,9 @@ export const parentModule = request<TextDocumentPositionParams, Vec<Location>>('

export interface JoinLinesParams {
textDocument: TextDocumentIdentifier;
range: Range;
ranges: Range[];
}
export const joinLines = request<JoinLinesParams, SourceChange>('joinLines');
export const joinLines = new RequestType<JoinLinesParams, TextEdit[], unknown>('experimental/joinLines');

export const onEnter = request<TextDocumentPositionParams, Option<SourceChange>>('onEnter');

Expand Down

0 comments on commit b3b32ee

Please sign in to comment.