diff options
Diffstat (limited to 'xtask/src/codegen.rs')
-rw-r--r-- | xtask/src/codegen.rs | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/xtask/src/codegen.rs b/xtask/src/codegen.rs index e3f9ccada..7cdd8f251 100644 --- a/xtask/src/codegen.rs +++ b/xtask/src/codegen.rs | |||
@@ -7,9 +7,9 @@ | |||
7 | 7 | ||
8 | mod gen_syntax; | 8 | mod gen_syntax; |
9 | mod gen_parser_tests; | 9 | mod gen_parser_tests; |
10 | mod gen_lint_completions; | ||
10 | mod gen_assists_docs; | 11 | mod gen_assists_docs; |
11 | mod gen_feature_docs; | 12 | mod gen_feature_docs; |
12 | mod gen_lint_completions; | ||
13 | mod gen_diagnostic_docs; | 13 | mod gen_diagnostic_docs; |
14 | 14 | ||
15 | use std::{ | 15 | use std::{ |
@@ -18,38 +18,35 @@ use std::{ | |||
18 | }; | 18 | }; |
19 | use xshell::{cmd, pushenv, read_file, write_file}; | 19 | use xshell::{cmd, pushenv, read_file, write_file}; |
20 | 20 | ||
21 | use crate::{ensure_rustfmt, flags, project_root, Result}; | 21 | use crate::{ensure_rustfmt, project_root, Result}; |
22 | 22 | ||
23 | pub(crate) use self::{ | 23 | pub(crate) use self::{ |
24 | gen_assists_docs::{generate_assists_docs, generate_assists_tests}, | 24 | gen_assists_docs::generate_assists_tests, gen_lint_completions::generate_lint_completions, |
25 | gen_diagnostic_docs::generate_diagnostic_docs, | 25 | gen_parser_tests::generate_parser_tests, gen_syntax::generate_syntax, |
26 | gen_feature_docs::generate_feature_docs, | ||
27 | gen_lint_completions::generate_lint_completions, | ||
28 | gen_parser_tests::generate_parser_tests, | ||
29 | gen_syntax::generate_syntax, | ||
30 | }; | 26 | }; |
31 | 27 | ||
28 | pub(crate) fn docs() -> Result<()> { | ||
29 | // We don't commit docs to the repo, so we can just overwrite them. | ||
30 | gen_assists_docs::generate_assists_docs(Mode::Overwrite)?; | ||
31 | gen_feature_docs::generate_feature_docs(Mode::Overwrite)?; | ||
32 | gen_diagnostic_docs::generate_diagnostic_docs(Mode::Overwrite)?; | ||
33 | Ok(()) | ||
34 | } | ||
35 | |||
36 | #[allow(unused)] | ||
37 | fn used() { | ||
38 | generate_parser_tests(Mode::Overwrite); | ||
39 | generate_assists_tests(Mode::Overwrite); | ||
40 | generate_syntax(Mode::Overwrite); | ||
41 | generate_lint_completions(Mode::Overwrite); | ||
42 | } | ||
43 | |||
32 | #[derive(Debug, PartialEq, Eq, Clone, Copy)] | 44 | #[derive(Debug, PartialEq, Eq, Clone, Copy)] |
33 | pub(crate) enum Mode { | 45 | pub(crate) enum Mode { |
34 | Overwrite, | 46 | Overwrite, |
35 | Ensure, | 47 | Ensure, |
36 | } | 48 | } |
37 | 49 | ||
38 | impl flags::Codegen { | ||
39 | pub(crate) fn run(self) -> Result<()> { | ||
40 | if self.features { | ||
41 | generate_lint_completions(Mode::Overwrite)?; | ||
42 | } | ||
43 | generate_syntax(Mode::Overwrite)?; | ||
44 | generate_parser_tests(Mode::Overwrite)?; | ||
45 | generate_assists_tests(Mode::Overwrite)?; | ||
46 | generate_assists_docs(Mode::Overwrite)?; | ||
47 | generate_feature_docs(Mode::Overwrite)?; | ||
48 | generate_diagnostic_docs(Mode::Overwrite)?; | ||
49 | Ok(()) | ||
50 | } | ||
51 | } | ||
52 | |||
53 | /// A helper to update file on disk if it has changed. | 50 | /// A helper to update file on disk if it has changed. |
54 | /// With verify = false, | 51 | /// With verify = false, |
55 | fn update(path: &Path, contents: &str, mode: Mode) -> Result<()> { | 52 | fn update(path: &Path, contents: &str, mode: Mode) -> Result<()> { |