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