1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
use super::Configuration;
use dprint_core::configuration::*;
pub fn resolve_config(config: ConfigKeyMap, global_config: &GlobalConfiguration) -> ResolveConfigurationResult<Configuration> {
let mut diagnostics = Vec::new();
let mut config = config;
let resolved_config = Configuration {
use_tabs: get_value(
&mut config,
"useTabs",
global_config.use_tabs.unwrap_or(DEFAULT_GLOBAL_CONFIGURATION.use_tabs),
&mut diagnostics,
),
indent_width: get_value(
&mut config,
"indentWidth",
global_config.indent_width.unwrap_or(DEFAULT_GLOBAL_CONFIGURATION.indent_width),
&mut diagnostics,
),
new_line_kind: get_value(
&mut config,
"newLineKind",
global_config.new_line_kind.unwrap_or(DEFAULT_GLOBAL_CONFIGURATION.new_line_kind),
&mut diagnostics,
),
uppercase: get_value(&mut config, "uppercase", false, &mut diagnostics),
lines_between_queries: get_value(&mut config, "linesBetweenQueries", 1, &mut diagnostics),
};
diagnostics.extend(get_unknown_property_diagnostics(config));
ResolveConfigurationResult {
config: resolved_config,
diagnostics,
}
}