diff --git a/app/src/main/java/chat/revolt/markdown/jbm/JBMRenderer.kt b/app/src/main/java/chat/revolt/markdown/jbm/JBMRenderer.kt index 2ada5010..c8966d2a 100644 --- a/app/src/main/java/chat/revolt/markdown/jbm/JBMRenderer.kt +++ b/app/src/main/java/chat/revolt/markdown/jbm/JBMRenderer.kt @@ -877,7 +877,32 @@ private fun JBMBlock(node: ASTNode, modifier: Modifier, nestingCounter: Int = 0) } MarkdownElementTypes.CODE_FENCE -> { - JBMCodeBlockContent(node, modifier) + if (LocalJBMarkdownTreeState.current.singleLine) { + Text( + text = buildAnnotatedString { + withStyle(SpanStyle(fontFamily = FragmentMono)) { + val codeFenceLanguage = + node.children.firstOrNull { it.type == MarkdownTokenTypes.FENCE_LANG } + ?.getTextInNode(state.sourceText)?.toString() + val languageName = languageDisplayNamedResource[ + languageAliases[codeFenceLanguage] + ?: SyntaxLanguage.getByName(codeFenceLanguage ?: "") + ]?.let { + stringResource(it) + } + + append(languageName?.let { + stringResource(R.string.programming_language_snippet, it) + } ?: stringResource(R.string.programming_language_snippet_default)) + } + }, + maxLines = if (state.singleLine) 1 else Int.MAX_VALUE, + overflow = if (state.singleLine) TextOverflow.Ellipsis else TextOverflow.Clip, + modifier = modifier + ) + } else { + JBMCodeBlockContent(node, modifier) + } } MarkdownElementTypes.BLOCK_QUOTE -> { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d506ebc0..843cec35 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -308,6 +308,10 @@ Go PHP + + [%1$s snippet] + [Code snippet] + Official Server Verified Server