Skip to content

Commit 00add94

Browse files
committed
Set snippet inside user_data if CompletionItem is snippet.
Close #727.
1 parent 0d80fa8 commit 00add94

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/types.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,10 @@ pub struct VimCompleteItem {
557557
pub icase: Option<u64>,
558558
#[serde(skip_serializing_if = "Option::is_none")]
559559
pub dup: Option<u64>,
560+
/// Deprecated. Use `user_data` instead.
560561
#[serde(skip_serializing_if = "Option::is_none")]
561562
pub snippet: Option<String>,
563+
/// Deprecated. Use `user_data` instead.
562564
#[serde(skip_serializing_if = "Option::is_none")]
563565
pub is_snippet: Option<bool>,
564566
// NOTE: `user_data` can only be string in vim. So cannot specify concrete type here.
@@ -570,6 +572,8 @@ pub struct VimCompleteItem {
570572
pub struct VimCompleteItemUserData {
571573
#[serde(skip_serializing_if = "Option::is_none")]
572574
pub lspitem: Option<CompletionItem>,
575+
#[serde(skip_serializing_if = "Option::is_none")]
576+
pub snippet: Option<String>,
573577
}
574578

575579
impl VimCompleteItem {
@@ -603,13 +607,10 @@ impl VimCompleteItem {
603607
}
604608
}
605609

606-
let is_snippet;
607610
let snippet;
608611
if lspitem.insert_text_format == Some(InsertTextFormat::Snippet) {
609-
is_snippet = Some(true);
610612
snippet = Some(word.clone());
611613
} else {
612-
is_snippet = None;
613614
snippet = None;
614615
};
615616

@@ -620,6 +621,7 @@ impl VimCompleteItem {
620621

621622
let user_data = VimCompleteItemUserData {
622623
lspitem: Some(lspitem.clone()),
624+
snippet: snippet.clone(),
623625
};
624626

625627
Ok(VimCompleteItem {
@@ -634,8 +636,8 @@ impl VimCompleteItem {
634636
.replace("\n", " "),
635637
info,
636638
kind: lspitem.kind.map(|k| format!("{:?}", k)).unwrap_or_default(),
639+
is_snippet: Some(snippet.is_some()),
637640
snippet,
638-
is_snippet,
639641
user_data: Some(serde_json::to_string(&user_data)?),
640642
})
641643
}

0 commit comments

Comments
 (0)