use super::*;
pub trait Notification {
type Params;
const METHOD: &'static str;
}
#[macro_export]
macro_rules! lsp_notification {
("$/cancelRequest") => { $crate::notification::Cancel };
("initialized") => { $crate::notification::Initialized };
("exit") => { $crate::notification::Exit };
("window/showMessage") => { $crate::notification::ShowMessage };
("window/logMessage") => { $crate::notification::LogMessage };
("telemetry/event") => { $crate::notification::Event };
("textDocument/didOpen") => { $crate::notification::DidOpenTextDocument };
("textDocument/didChange") => { $crate::notification::DidChangeTextDocument };
("textDocument/willSave") => { $crate::notification::WillSaveTextDocument };
("textDocument/didSave") => { $crate::notification::DidSaveTextDocument };
("textDocument/didClose") => { $crate::notification::DidCloseTextDocument };
("textDocument/publishDiagnostics") => { $crate::notification::PublishDiagnostics };
("workspace/didChangeConfiguration") => { $crate::notification::DidChangeConfiguration };
("workspace/didChangeWatchedFiles") => { $crate::notification::DidChangeWatchedFiles };
}
#[derive(Debug)]
pub enum Cancel {}
impl Notification for Cancel {
type Params = CancelParams;
const METHOD: &'static str = "$/cancelRequest";
}
#[derive(Debug)]
pub enum Initialized {}
impl Notification for Initialized {
type Params = InitializedParams;
const METHOD: &'static str = "initialized";
}
#[derive(Debug)]
pub enum Exit {}
impl Notification for Exit {
type Params = ();
const METHOD: &'static str = "exit";
}
#[derive(Debug)]
pub enum ShowMessage {}
impl Notification for ShowMessage {
type Params = ShowMessageParams;
const METHOD: &'static str = "window/showMessage";
}
#[derive(Debug)]
pub enum LogMessage {}
impl Notification for LogMessage {
type Params = LogMessageParams;
const METHOD: &'static str = "window/logMessage";
}
#[derive(Debug)]
pub enum TelemetryEvent {}
impl Notification for TelemetryEvent {
type Params = serde_json::Value;
const METHOD: &'static str = "telemetry/event";
}
#[derive(Debug)]
pub enum DidChangeConfiguration {}
impl Notification for DidChangeConfiguration {
type Params = DidChangeConfigurationParams;
const METHOD: &'static str = "workspace/didChangeConfiguration";
}
#[derive(Debug)]
pub enum DidOpenTextDocument {}
impl Notification for DidOpenTextDocument {
type Params = DidOpenTextDocumentParams;
const METHOD: &'static str = "textDocument/didOpen";
}
#[derive(Debug)]
pub enum DidChangeTextDocument {}
impl Notification for DidChangeTextDocument {
type Params = DidChangeTextDocumentParams;
const METHOD: &'static str = "textDocument/didChange";
}
#[derive(Debug)]
pub enum WillSave {}
impl Notification for WillSave {
type Params = WillSaveTextDocumentParams;
const METHOD: &'static str = "textDocument/willSave";
}
#[derive(Debug)]
pub enum WillSaveWaitUntil {}
impl Notification for WillSaveWaitUntil {
type Params = WillSaveTextDocumentParams;
const METHOD: &'static str = "textDocument/willSaveWaitUntil";
}
#[derive(Debug)]
pub enum DidCloseTextDocument {}
impl Notification for DidCloseTextDocument {
type Params = DidCloseTextDocumentParams;
const METHOD: &'static str = "textDocument/didClose";
}
#[derive(Debug)]
pub enum DidSaveTextDocument {}
impl Notification for DidSaveTextDocument {
type Params = DidSaveTextDocumentParams;
const METHOD: &'static str = "textDocument/didSave";
}
#[derive(Debug)]
pub enum DidChangeWatchedFiles {}
impl Notification for DidChangeWatchedFiles {
type Params = DidChangeWatchedFilesParams;
const METHOD: &'static str = "workspace/didChangeWatchedFiles";
}
#[derive(Debug)]
pub enum PublishDiagnostics {}
impl Notification for PublishDiagnostics {
type Params = PublishDiagnosticsParams;
const METHOD: &'static str = "textDocument/publishDiagnostics";
}