When rust-analyzer.completion.fullFunctionSignatures.enable is set to true, completion descriptions are generated by detail_full, which internally calls write_function() to produce the signature. For functions with more than four parameters, the generated signature is multi-line:
Take the compare_exchange() function as an example, the final generated signature for this function is like:
pub fn compare_exchange(
&self,
current: bool,
new: bool,
success: Ordering,
failure: Ordering,
) -> Result<bool, bool>
Flattening this output in detail_full previously inserted a space right after ( and right before ), e.g. pub fn compare_exchange( &self, ... ).
This PR makes a small change to detail_full to skip the whitespace insertion around the parentheses.