From e75d45b4bcf12867d031169407f44e85f95981c1 Mon Sep 17 00:00:00 2001 From: xdBronch <51252236+xdBronch@users.noreply.github.com> Date: Tue, 18 Nov 2025 12:24:53 -0500 Subject: [PATCH] lsp: support deprecated completion item tag and advertise capability --- crates/editor/src/code_context_menus.rs | 12 +++++++++++- crates/lsp/src/lsp.rs | 4 ++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/crates/editor/src/code_context_menus.rs b/crates/editor/src/code_context_menus.rs index f220cadee5acca..9a2b8c385689f2 100644 --- a/crates/editor/src/code_context_menus.rs +++ b/crates/editor/src/code_context_menus.rs @@ -8,6 +8,7 @@ use gpui::{ use itertools::Itertools; use language::CodeLabel; use language::{Buffer, LanguageName, LanguageRegistry}; +use lsp::CompletionItemTag; use markdown::{Markdown, MarkdownElement}; use multi_buffer::{Anchor, ExcerptId}; use ordered_float::OrderedFloat; @@ -840,7 +841,16 @@ impl CompletionsMenu { if completion .source .lsp_completion(false) - .and_then(|lsp_completion| lsp_completion.deprecated) + .and_then(|lsp_completion| { + match (lsp_completion.deprecated, &lsp_completion.tags) + { + (Some(true), _) => Some(true), + (_, Some(tags)) => Some( + tags.contains(&CompletionItemTag::DEPRECATED), + ), + _ => None, + } + }) .unwrap_or(false) { highlight.strikethrough = Some(StrikethroughStyle { diff --git a/crates/lsp/src/lsp.rs b/crates/lsp/src/lsp.rs index 84e5a95ed80e75..af6760a36817ed 100644 --- a/crates/lsp/src/lsp.rs +++ b/crates/lsp/src/lsp.rs @@ -764,6 +764,10 @@ impl LanguageServer { // "textEdit".to_string(), ], }), + deprecated_support: Some(true), + tag_support: Some(TagSupport { + value_set: vec![CompletionItemTag::DEPRECATED], + }), insert_replace_support: Some(true), label_details_support: Some(true), insert_text_mode_support: Some(InsertTextModeSupport {