mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 20:42:04 +00:00
use a combination of source_change
and text_edit
for CompleteItem
This commit is contained in:
parent
94d96b60f3
commit
2a43638052
48 changed files with 305 additions and 295 deletions
|
@ -13,7 +13,6 @@ use ra_syntax::{SyntaxKind, TextRange, TextUnit};
|
|||
use ra_text_edit::{AtomTextEdit, TextEdit};
|
||||
|
||||
use crate::{req, server_world::ServerWorld, Result};
|
||||
use ra_text_edit::TextEditBuilder;
|
||||
|
||||
pub trait Conv {
|
||||
type Output;
|
||||
|
@ -79,13 +78,11 @@ impl ConvWith for CompletionItem {
|
|||
type Ctx = LineIndex;
|
||||
type Output = ::lsp_types::CompletionItem;
|
||||
|
||||
fn conv_with(self, ctx: &LineIndex) -> ::lsp_types::CompletionItem {
|
||||
let atom_text_edit = AtomTextEdit::replace(self.replace_range(), self.insert_text());
|
||||
fn conv_with(mut self, ctx: &LineIndex) -> ::lsp_types::CompletionItem {
|
||||
let atom_text_edit = AtomTextEdit::replace(self.source_range(), self.insert_text());
|
||||
let text_edit = (&atom_text_edit).conv_with(ctx);
|
||||
let additional_text_edits = if let Some(delete_range) = self.delete_range() {
|
||||
let mut builder = TextEditBuilder::default();
|
||||
builder.delete(delete_range);
|
||||
Some(builder.finish().conv_with(ctx))
|
||||
let additional_text_edits = if let Some(edit) = self.take_text_edit() {
|
||||
Some(edit.conv_with(ctx))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue