dprint_plugin_markdown/configuration/
types.rs1use std::collections::HashMap;
2
3use dprint_core::configuration::*;
4use dprint_core::generate_str_to_from;
5use serde::Deserialize;
6use serde::Serialize;
7
8#[derive(Clone, Serialize, Deserialize)]
10#[serde(rename_all = "camelCase")]
11pub struct Configuration {
12 pub line_width: u32,
13 pub new_line_kind: NewLineKind,
14 pub text_wrap: TextWrap,
15 pub emphasis_kind: EmphasisKind,
16 pub strong_kind: StrongKind,
17 pub unordered_list_kind: UnorderedListKind,
18 pub heading_kind: HeadingKind,
19 pub ignore_directive: String,
20 pub ignore_file_directive: String,
21 pub ignore_start_directive: String,
22 pub ignore_end_directive: String,
23 #[serde(default)]
26 pub tags: HashMap<String, String>,
27}
28
29#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
31#[serde(rename_all = "camelCase")]
32pub enum TextWrap {
33 Always,
35 Maintain,
37 Never,
39}
40
41generate_str_to_from![TextWrap, [Always, "always"], [Maintain, "maintain"], [Never, "never"]];
42
43#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
45#[serde(rename_all = "camelCase")]
46pub enum EmphasisKind {
47 Asterisks,
49 Underscores,
51}
52
53generate_str_to_from![EmphasisKind, [Asterisks, "asterisks"], [Underscores, "underscores"]];
54
55#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub enum StrongKind {
59 Asterisks,
61 Underscores,
63}
64
65generate_str_to_from![StrongKind, [Asterisks, "asterisks"], [Underscores, "underscores"]];
66
67#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
75#[serde(rename_all = "camelCase")]
76pub enum UnorderedListKind {
77 Dashes,
81 Asterisks,
85}
86
87impl UnorderedListKind {
88 pub fn list_char(&self, is_alternate: bool) -> char {
93 match (self, is_alternate) {
94 (Self::Dashes, true) | (Self::Asterisks, false) => '*',
95 _ => '-',
96 }
97 }
98}
99
100generate_str_to_from![UnorderedListKind, [Dashes, "dashes"], [Asterisks, "asterisks"]];
101
102#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
108#[serde(rename_all = "camelCase")]
109pub enum HeadingKind {
110 Setext,
113 Atx,
115}
116
117generate_str_to_from![HeadingKind, [Setext, "setext"], [Atx, "atx"]];