use serde::Serialize;
use crate::server::lsp::{LspMessage, rpc::NotificationMessageBase};
#[derive(Debug, Serialize)]
pub struct CompletionQueryNotification {
#[serde(flatten)]
pub base: NotificationMessageBase,
pub params: CompletionQueryParams,
}
impl CompletionQueryNotification {
pub(crate) fn new(params: CompletionQueryParams) -> Self {
Self {
base: NotificationMessageBase::new("qlueLs/completionQuery"),
params,
}
}
}
impl LspMessage for CompletionQueryNotification {}
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CompletionQueryParams {
pub template: String,
pub query: String,
pub url: String,
pub duration_ms: u32,
#[serde(skip_serializing_if = "Option::is_none")]
pub result_count: Option<usize>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}