dprint_plugin_biome/configuration/
configuration.rs

1use dprint_core::configuration::ParseConfigurationError;
2use dprint_core::generate_str_to_from;
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
6#[serde(rename_all = "camelCase")]
7pub enum IndentStyle {
8  Tab,
9  Space,
10}
11
12generate_str_to_from![IndentStyle, [Tab, "tab"], [Space, "space"]];
13
14#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
15#[serde(rename_all = "camelCase")]
16pub enum Semicolons {
17  Always,
18  AsNeeded,
19}
20
21generate_str_to_from![Semicolons, [Always, "always"], [AsNeeded, "asNeeded"]];
22
23#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub enum QuoteStyle {
26  Single,
27  Double,
28}
29
30generate_str_to_from![QuoteStyle, [Single, "single"], [Double, "double"]];
31
32#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
33#[serde(rename_all = "camelCase")]
34pub enum QuoteProperties {
35  AsNeeded,
36  Preserve,
37}
38
39generate_str_to_from![QuoteProperties, [AsNeeded, "asNeeded"], [Preserve, "preserve"]];
40
41#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub enum ArrowParentheses {
44  Always,
45  AsNeeded,
46}
47
48generate_str_to_from![ArrowParentheses, [Always, "always"], [AsNeeded, "asNeeded"]];
49
50#[derive(Clone, PartialEq, Copy, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase")]
52pub enum TrailingComma {
53  All,
54  Es5,
55  None,
56}
57
58generate_str_to_from![TrailingComma, [All, "all"], [Es5, "es5"], [None, "none"]];
59
60#[derive(Default, Clone, Serialize, Deserialize)]
61#[serde(rename_all = "camelCase")]
62pub struct Configuration {
63  pub javascript_indent_style: Option<IndentStyle>,
64  pub javascript_indent_size: Option<u8>,
65  pub javascript_line_width: Option<u16>,
66  pub json_indent_style: Option<IndentStyle>,
67  pub json_indent_size: Option<u8>,
68  pub json_line_width: Option<u16>,
69  pub semicolons: Option<Semicolons>,
70  pub quote_style: Option<QuoteStyle>,
71  pub jsx_quote_style: Option<QuoteStyle>,
72  pub quote_properties: Option<QuoteProperties>,
73  pub arrow_parentheses: Option<ArrowParentheses>,
74  pub trailing_comma: Option<TrailingComma>,
75}