This commit is contained in:
Aleksey Kladov 2020-05-30 23:57:16 +02:00
parent 40bdd2e161
commit e1829d8959

View file

@ -8,7 +8,7 @@ use crate::{
}; };
pub fn generate_assists_docs(mode: Mode) -> Result<()> { pub fn generate_assists_docs(mode: Mode) -> Result<()> {
let assists = collect_assists()?; let assists = Assist::collect()?;
generate_tests(&assists, mode)?; generate_tests(&assists, mode)?;
generate_docs(&assists, mode)?; generate_docs(&assists, mode)?;
Ok(()) Ok(())
@ -22,29 +22,8 @@ struct Assist {
after: String, after: String,
} }
fn hide_hash_comments(text: &str) -> String { impl Assist {
text.split('\n') // want final newline fn collect() -> Result<Vec<Assist>> {
.filter(|&it| !(it.starts_with("# ") || it == "#"))
.map(|it| format!("{}\n", it))
.collect()
}
fn reveal_hash_comments(text: &str) -> String {
text.split('\n') // want final newline
.map(|it| {
if it.starts_with("# ") {
&it[2..]
} else if it == "#" {
""
} else {
it
}
})
.map(|it| format!("{}\n", it))
.collect()
}
fn collect_assists() -> Result<Vec<Assist>> {
let mut res = Vec::new(); let mut res = Vec::new();
for path in rust_files(&project_root().join(codegen::ASSISTS_DIR)) { for path in rust_files(&project_root().join(codegen::ASSISTS_DIR)) {
collect_file(&mut res, path.as_path())?; collect_file(&mut res, path.as_path())?;
@ -98,6 +77,7 @@ fn collect_assists() -> Result<Vec<Assist>> {
} }
Ok(()) Ok(())
} }
}
} }
fn generate_tests(assists: &[Assist], mode: Mode) -> Result<()> { fn generate_tests(assists: &[Assist], mode: Mode) -> Result<()> {
@ -157,3 +137,25 @@ fn generate_docs(assists: &[Assist], mode: Mode) -> Result<()> {
codegen::update(&project_root().join(codegen::ASSISTS_DOCS), &buf, mode) codegen::update(&project_root().join(codegen::ASSISTS_DOCS), &buf, mode)
} }
fn hide_hash_comments(text: &str) -> String {
text.split('\n') // want final newline
.filter(|&it| !(it.starts_with("# ") || it == "#"))
.map(|it| format!("{}\n", it))
.collect()
}
fn reveal_hash_comments(text: &str) -> String {
text.split('\n') // want final newline
.map(|it| {
if it.starts_with("# ") {
&it[2..]
} else if it == "#" {
""
} else {
it
}
})
.map(|it| format!("{}\n", it))
.collect()
}