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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//! The registered languages, split by ecosystem.
//!
//! Adding a language is an entry in its ecosystem file (plus a new file for
//! a new ecosystem) and, if it has one, a tool output parser. No control flow
//! anywhere else in drep changes.
//!
//! `config_files` is what makes a tool run at all: drep checks a project against
//! the style that project has *chosen*, so a repo with no eslint config gets no
//! eslint findings rather than a wall of default-preset complaints.
//!
//! Every ecosystem's statics are re-exported from here so the module path a
//! consumer uses (`definitions::RUFF`) is unchanged by the split.
pub use c_family::;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
use LanguageSupport;
use LazyLock;
/// Every registered language, in registration order.
///
/// Assembled from each ecosystem file's own `FAMILY` slice rather than
/// maintained here as a hand-written list. A static can be defined and
/// re-exported above while never being registered, and no test could see the
/// omission - the same failure class as a test file no `mod` declares. With
/// the list built beside the definitions, leaving a language out means
/// leaving it out of the file that defines it.
///
/// The order is the order `doctor` reports languages in, so it remains part
/// of the output contract - but the contract is now two-level: families in
/// the order listed below, and within a family the order its own file writes.
/// Appending a language to its family therefore moves nothing, while adding a
/// family appends only at the position it is listed here. Assembling this way
/// reordered the flat list once, on the commit that introduced it, by moving
/// Vue and Svelte up beside TypeScript where they belong; the previous rule
/// ("append rather than insert") described the hand-written list and would now
/// forbid the grouping that replaced it.
///
/// `all_languages_returns_every_registered_language` pins the resulting
/// sequence in full, so a reorder is a visible test change rather than a
/// silent one.
pub static ALL_LANGUAGES: = new;