mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-08-26 21:34:15 +00:00
Make code generation
just work
Contributors don't need to learn about `cargo xtask codegen` if `cargo test` just does the right thing.
This commit is contained in:
parent
abb6b8f14c
commit
1eb61203b7
8 changed files with 42 additions and 50 deletions
|
@ -7,9 +7,9 @@
|
|||
|
||||
mod gen_syntax;
|
||||
mod gen_parser_tests;
|
||||
mod gen_lint_completions;
|
||||
mod gen_assists_docs;
|
||||
mod gen_feature_docs;
|
||||
mod gen_lint_completions;
|
||||
mod gen_diagnostic_docs;
|
||||
|
||||
use std::{
|
||||
|
@ -18,38 +18,35 @@ use std::{
|
|||
};
|
||||
use xshell::{cmd, pushenv, read_file, write_file};
|
||||
|
||||
use crate::{ensure_rustfmt, flags, project_root, Result};
|
||||
use crate::{ensure_rustfmt, project_root, Result};
|
||||
|
||||
pub(crate) use self::{
|
||||
gen_assists_docs::{generate_assists_docs, generate_assists_tests},
|
||||
gen_diagnostic_docs::generate_diagnostic_docs,
|
||||
gen_feature_docs::generate_feature_docs,
|
||||
gen_lint_completions::generate_lint_completions,
|
||||
gen_parser_tests::generate_parser_tests,
|
||||
gen_syntax::generate_syntax,
|
||||
gen_assists_docs::generate_assists_tests, gen_lint_completions::generate_lint_completions,
|
||||
gen_parser_tests::generate_parser_tests, gen_syntax::generate_syntax,
|
||||
};
|
||||
|
||||
pub(crate) fn docs() -> Result<()> {
|
||||
// We don't commit docs to the repo, so we can just overwrite them.
|
||||
gen_assists_docs::generate_assists_docs(Mode::Overwrite)?;
|
||||
gen_feature_docs::generate_feature_docs(Mode::Overwrite)?;
|
||||
gen_diagnostic_docs::generate_diagnostic_docs(Mode::Overwrite)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
fn used() {
|
||||
generate_parser_tests(Mode::Overwrite);
|
||||
generate_assists_tests(Mode::Overwrite);
|
||||
generate_syntax(Mode::Overwrite);
|
||||
generate_lint_completions(Mode::Overwrite);
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
||||
pub(crate) enum Mode {
|
||||
Overwrite,
|
||||
Ensure,
|
||||
}
|
||||
|
||||
impl flags::Codegen {
|
||||
pub(crate) fn run(self) -> Result<()> {
|
||||
if self.features {
|
||||
generate_lint_completions(Mode::Overwrite)?;
|
||||
}
|
||||
generate_syntax(Mode::Overwrite)?;
|
||||
generate_parser_tests(Mode::Overwrite)?;
|
||||
generate_assists_tests(Mode::Overwrite)?;
|
||||
generate_assists_docs(Mode::Overwrite)?;
|
||||
generate_feature_docs(Mode::Overwrite)?;
|
||||
generate_diagnostic_docs(Mode::Overwrite)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
/// A helper to update file on disk if it has changed.
|
||||
/// With verify = false,
|
||||
fn update(path: &Path, contents: &str, mode: Mode) -> Result<()> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue