Auto merge of #14006 - Veykril:markdown-remove-soft-break, r=Veykril

Replace soft breaks in markdown with spaces

cc https://github.com/rust-lang/rust-analyzer/pull/13988#issuecomment-1399924205
This commit is contained in:
bors 2023-01-23 11:21:46 +00:00
commit e1d7a71bcc

View File

@ -11,9 +11,8 @@ pub(crate) fn remove_markdown(markdown: &str) -> String {
for event in parser { for event in parser {
match event { match event {
Event::Text(text) | Event::Code(text) => out.push_str(&text), Event::Text(text) | Event::Code(text) => out.push_str(&text),
Event::SoftBreak | Event::HardBreak | Event::Rule | Event::End(Tag::CodeBlock(_)) => { Event::SoftBreak => out.push(' '),
out.push('\n') Event::HardBreak | Event::Rule | Event::End(Tag::CodeBlock(_)) => out.push('\n'),
}
Event::End(Tag::Paragraph) => { Event::End(Tag::Paragraph) => {
out.push('\n'); out.push('\n');
out.push('\n'); out.push('\n');
@ -111,13 +110,9 @@ book] or the [Reference].
expect![[r#" expect![[r#"
A function or function pointer. A function or function pointer.
Functions are the primary way code is executed within Rust. Function blocks, usually just Functions are the primary way code is executed within Rust. Function blocks, usually just called functions, can be defined in a variety of different places and be assigned many different attributes and modifiers.
called functions, can be defined in a variety of different places and be assigned many
different attributes and modifiers.
Standalone functions that just sit within a module not attached to anything else are common, Standalone functions that just sit within a module not attached to anything else are common, but most functions will end up being inside impl blocks, either on another type itself, or as a trait impl for that type.
but most functions will end up being inside impl blocks, either on another type itself, or
as a trait impl for that type.
fn standalone_function() { fn standalone_function() {
// code // code
@ -140,9 +135,7 @@ book] or the [Reference].
} }
} }
In addition to presenting fixed types in the form of fn name(arg: type, ..) -> return_type, In addition to presenting fixed types in the form of fn name(arg: type, ..) -> return_type, functions can also declare a list of type parameters along with trait bounds that they fall into.
functions can also declare a list of type parameters along with trait bounds that they fall
into.
fn generic_function<T: Clone>(x: T) -> (T, T, T) { fn generic_function<T: Clone>(x: T) -> (T, T, T) {
(x.clone(), x.clone(), x.clone()) (x.clone(), x.clone(), x.clone())
@ -154,14 +147,10 @@ book] or the [Reference].
x + x + x x + x + x
} }
Declaring trait bounds in the angle brackets is functionally identical to using a where Declaring trait bounds in the angle brackets is functionally identical to using a where clause. It's up to the programmer to decide which works better in each situation, but where tends to be better when things get longer than one line.
clause. It's up to the programmer to decide which works better in each situation, but where
tends to be better when things get longer than one line.
Along with being made public via pub, fn can also have an extern added for use in Along with being made public via pub, fn can also have an extern added for use in FFI.
FFI.
For more information on the various types of functions and how they're used, consult the Rust For more information on the various types of functions and how they're used, consult the Rust book or the Reference."#]].assert_eq(&res);
book or the Reference."#]].assert_eq(&res);
} }
} }