html_languageservice/
html_data.rs1use 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}