html_languageservice/
html_data.rs

1use lsp_types::MarkupContent;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
5pub struct HTMLDataV1 {
6    pub version: f32,
7    pub tags: Option<Vec<ITagData>>,
8    #[serde(rename = "globalAttributes")]
9    pub global_attributes: Option<Vec<IAttributeData>>,
10    #[serde(rename = "valueSets")]
11    pub value_sets: Option<Vec<IValueSet>>,
12}
13
14#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
15pub struct ITagData {
16    pub name: String,
17    pub description: Option<Description>,
18    pub attributes: Vec<IAttributeData>,
19    pub references: Option<Vec<IReference>>,
20    pub void: Option<bool>,
21}
22
23#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
24pub struct IAttributeData {
25    pub name: String,
26    pub description: Option<Description>,
27    #[serde(rename = "valueSet")]
28    pub value_set: Option<String>,
29    pub values: Option<Vec<IValueData>>,
30    pub references: Option<Vec<IReference>>,
31}
32
33#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
34pub struct IValueSet {
35    pub name: String,
36    pub values: Vec<IValueData>,
37}
38
39#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
40pub struct IValueData {
41    pub name: String,
42    pub description: Option<Description>,
43    pub references: Option<Vec<IReference>>,
44}
45
46#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
47pub struct IReference {
48    pub name: String,
49    pub url: String,
50}
51
52#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
53#[serde(untagged)]
54pub enum Description {
55    String(String),
56    MarkupContent(MarkupContent),
57}
58
59#[derive(Serialize, Deserialize, Clone, Copy, Debug, PartialEq)]
60pub enum MarkupKind {
61    #[serde(rename = "plaintext")]
62    Plaintext,
63    #[serde(rename = "markdown")]
64    Markdown,
65}