Closed
Description
I'm getting completion results with missing lines from documentation code blocks.
rust-analyzer version: rust-analyzer version: 0.3.2086-standalone (7106cd3be 2024-08-25)
rustc version: rustc 1.80.1 (3f5fd8dd4 2024-08-06)
editor or extension: Manually LSP server requests but same behavior with VS Code Version: 1.92.2
.
code snippet to reproduce:
fn main() {
// Place cursor at the end of ...by and the completion suggestion will include incorrect documentation.
u16::from_le_by
}

The generated documentation has the full snippets. Also, the same as the official docs
let value = u16::from_le_bytes([0x34, 0x12]);
assert_eq!(value, 0x1234);
and
fn read_le_u16(input: &mut &[u8]) -> u16 {
let (int_bytes, rest) = input.split_at(std::mem::size_of::<u16>());
*input = rest;
u16::from_le_bytes(int_bytes.try_into().unwrap())
}
Whereas rust-analyzer
generates the first block as empty code and the second one with two lines with the rest missing.
Here's the LSP server completion response JSON.
{
"label": "from_le_bytes",
"kind": 3,
"detail": "const fn([u8; {in type const InTypeConstId(36)}]) -> u16",
"documentation": {
"kind": "markdown",
"value": "Create a native endian integer value from its representation\nas a byte array in little endian.\n\n\n\n# Examples\n\n```rust\n```\n\nWhen starting from a slice rather than an array, fallible conversion APIs can be used:\n\n```rust\n *input = rest;\n}\n```"
},
"deprecated": false,
"sortText": "ffffffe0",
"filterText": "from_le_bytes",
"textEdit": {
"range": {
"start": {
"line": 22,
"character": 9
},
"end": {
"line": 22,
"character": 18
}
},
"newText": "from_le_bytes"
},
"additionalTextEdits": []
},