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";
}