jsona_lsp/lsp_ext/
notification.rs

1use lsp_types::{notification::Notification, Url};
2use serde::{Deserialize, Serialize};
3
4pub enum MessageWithOutput {}
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub enum MessageKind {
9    Info,
10    Warn,
11    Error,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub struct MessageWithOutputParams {
17    pub kind: MessageKind,
18    pub message: String,
19}
20
21impl Notification for MessageWithOutput {
22    type Params = MessageWithOutputParams;
23    const METHOD: &'static str = "jsona/messageWithOutput";
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub enum AssociationRule {
29    Glob(String),
30    Regex(String),
31    Url(Url),
32}
33
34pub enum InitializeWorkspace {}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37#[serde(rename_all = "camelCase")]
38pub struct InitializeWorkspaceParams {
39    pub root_uri: Url,
40}
41
42impl Notification for InitializeWorkspace {
43    type Params = InitializeWorkspaceParams;
44    const METHOD: &'static str = "jsona/initializeWorkspace";
45}