Make language registry optional in parse_markdown (#23221)

Motivation for this is using markdown for keymap error notifications in
#23113

Release Notes:

- N/A
This commit is contained in:
Michael Sloan 2025-01-16 03:56:46 -07:00 committed by GitHub
parent 0dbe34d2ae
commit 55e1e831a1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 14 additions and 10 deletions

View file

@ -538,7 +538,7 @@ async fn parse_markdown(text: &str, language_registry: &Arc<LanguageRegistry>) -
markdown::parse_markdown_block(
text,
language_registry,
Some(language_registry),
None,
&mut parsed_message.text,
&mut parsed_message.highlights,

View file

@ -189,7 +189,7 @@ impl Editor {
if let Some(mut signature_help) = signature_help_task.await.into_iter().next() {
let mut parsed_content = parse_markdown(
signature_help.markdown.as_str(),
&language_registry,
Some(&language_registry),
language,
)
.await;

View file

@ -256,7 +256,7 @@ pub async fn prepare_completion_documentation(
}
lsp::MarkupKind::Markdown => {
let parsed = parse_markdown(value, language_registry, language).await;
let parsed = parse_markdown(value, Some(language_registry), language).await;
Documentation::MultiLineMarkdown(parsed)
}
},

View file

@ -121,7 +121,7 @@ impl Link {
/// Parses a string of Markdown.
pub async fn parse_markdown(
markdown: &str,
language_registry: &Arc<LanguageRegistry>,
language_registry: Option<&Arc<LanguageRegistry>>,
language: Option<Arc<Language>>,
) -> ParsedMarkdown {
let mut text = String::new();
@ -151,7 +151,7 @@ pub async fn parse_markdown(
/// Parses a Markdown block.
pub async fn parse_markdown_block(
markdown: &str,
language_registry: &Arc<LanguageRegistry>,
language_registry: Option<&Arc<LanguageRegistry>>,
language: Option<Arc<Language>>,
text: &mut String,
highlights: &mut Vec<(Range<usize>, MarkdownHighlight)>,
@ -247,10 +247,13 @@ pub async fn parse_markdown_block(
Tag::CodeBlock(kind) => {
new_paragraph(text, &mut list_stack);
current_language = if let CodeBlockKind::Fenced(language) = kind {
language_registry
.language_for_name_or_extension(language.as_ref())
.await
.ok()
match language_registry {
None => None,
Some(language_registry) => language_registry
.language_for_name_or_extension(language.as_ref())
.await
.ok(),
}
} else {
language.clone()
}

View file

@ -4418,7 +4418,8 @@ impl LspStore {
Documentation::Undocumented
} else if response.documentation_is_markdown {
Documentation::MultiLineMarkdown(
markdown::parse_markdown(&response.documentation, &language_registry, None).await,
markdown::parse_markdown(&response.documentation, Some(&language_registry), None)
.await,
)
} else if response.documentation.lines().count() <= 1 {
Documentation::SingleLine(response.documentation)