Don't use additional_text_edits API internally

This commit is contained in:
Aleksey Kladov 2019-02-18 12:05:16 +03:00
parent 79f35cc699
commit 92aa0f9c87
57 changed files with 1300 additions and 384 deletions

View file

@ -16,15 +16,16 @@ use ra_syntax::{
use ra_text_edit::TextEditBuilder;
fn postfix_snippet(ctx: &CompletionContext, label: &str, detail: &str, snippet: &str) -> Builder {
let replace_range = ctx.source_range();
let receiver_range = ctx.dot_receiver.expect("no receiver available").syntax().range();
let delete_range = TextRange::from_to(receiver_range.start(), replace_range.start());
let mut builder = TextEditBuilder::default();
builder.delete(delete_range);
CompletionItem::new(CompletionKind::Postfix, replace_range, label)
.insert_snippet(snippet)
let edit = {
let receiver_range = ctx.dot_receiver.expect("no receiver available").syntax().range();
let delete_range = TextRange::from_to(receiver_range.start(), ctx.source_range().end());
let mut builder = TextEditBuilder::default();
builder.replace(delete_range, snippet.to_string());
builder.finish()
};
CompletionItem::new(CompletionKind::Postfix, ctx.source_range(), label)
.detail(detail)
.text_edit(builder.finish())
.snippet_edit(edit)
}
pub(super) fn complete_postfix(acc: &mut Completions, ctx: &CompletionContext) {