@@ -231,6 +231,12 @@ impl Component for Completion {
231231 // ---
232232 // option.documentation
233233
234+ let (view, doc) = cx.editor.current();
235+ let language = doc
236+ .language()
237+ .and_then(|scope| scope.strip_prefix("source."))
238+ .unwrap_or("");
239+
234240 let doc = match &option.documentation {
235241 Some(lsp::Documentation::String(contents))
236242 | Some(lsp::Documentation::MarkupContent(lsp::MarkupContent {
@@ -239,7 +245,8 @@ impl Component for Completion {
239245 })) => {
240246 // TODO: convert to wrapped text
241247 Markdown::new(format!(
242− "```rust\n{}\n```\n{}",
248+ "```{}\n{}\n```\n{}",
249+ language,
243250 option.detail.as_deref().unwrap_or_default(),
244251 contents.clone()
245252 ))
@@ -250,7 +257,8 @@ impl Component for Completion {
250257 })) => {
251258 // TODO: set language based on doc scope
252259 Markdown::new(format!(
253− "```rust\n{}\n```\n{}",
260+ "```{}\n{}\n```\n{}",
261+ language,
254262 option.detail.as_deref().unwrap_or_default(),
255263 contents.clone()
256264 ))
@@ -260,7 +268,8 @@ impl Component for Completion {
260268
261269 // TODO: set language based on doc scope
262270 Markdown::new(format!(
263− "```rust\n{}\n```",
271+ "```{}\n{}\n```",
272+ language,
264273 option.detail.as_deref().unwrap_or_default(),
265274 ))
266275 }