dprint_plugin_markdown/configuration/
types.rs1use dprint_core::configuration::*;
2use dprint_core::generate_str_to_from;
3use serde::Deserialize;
4use serde::Serialize;
5
6#[derive(Clone, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Configuration {
10 pub line_width: u32,
11 pub new_line_kind: NewLineKind,
12 pub text_wrap: TextWrap,
13 pub emphasis_kind: EmphasisKind,
14 pub strong_kind: StrongKind,
15 pub unordered_list_kind: UnorderedListKind,
16 pub ignore_directive: String,
17 pub ignore_file_directive: String,
18 pub ignore_start_directive: String,
19 pub ignore_end_directive: String,
20}
21
22#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub enum TextWrap {
26 Always,
28 Maintain,
30 Never,
32}
33
34generate_str_to_from![TextWrap, [Always, "always"], [Maintain, "maintain"], [Never, "never"]];
35
36#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
38#[serde(rename_all = "camelCase")]
39pub enum EmphasisKind {
40 Asterisks,
42 Underscores,
44}
45
46generate_str_to_from![EmphasisKind, [Asterisks, "asterisks"], [Underscores, "underscores"]];
47
48#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
50#[serde(rename_all = "camelCase")]
51pub enum StrongKind {
52 Asterisks,
54 Underscores,
56}
57
58generate_str_to_from![StrongKind, [Asterisks, "asterisks"], [Underscores, "underscores"]];
59
60#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase")]
69pub enum UnorderedListKind {
70 Dashes,
74 Asterisks,
78}
79
80impl UnorderedListKind {
81 pub fn list_char(&self, is_alternate: bool) -> char {
86 match (self, is_alternate) {
87 (Self::Dashes, true) | (Self::Asterisks, false) => '*',
88 _ => '-',
89 }
90 }
91}
92
93generate_str_to_from![UnorderedListKind, [Dashes, "dashes"], [Asterisks, "asterisks"]];