Skip to content

Commit fff27cc

Browse files
author
Eric Wheeler
committed
fix: Missing or inconsistent syntax highlighting across UI components
- Change file listings to use 'shellsession' for terminal-like highlighting - Use 'markdown' for code definitions and instructions - Add file extension-based language detection for new files - Ensure consistent 'diff' highlighting for all diff content - Use 'xml' language for error messages - Make language property required in CodeAccordian - Set default fallback to 'txt' instead of undefined Fixes: #3655 Signed-off-by: Eric Wheeler <[email protected]>
1 parent d7eec3a commit fff27cc

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

webview-ui/src/components/chat/ChatRow.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { useExtensionState } from "@src/context/ExtensionStateContext"
1313
import { findMatchingResourceOrTemplate } from "@src/utils/mcp"
1414
import { vscode } from "@src/utils/vscode"
1515
import { removeLeadingNonAlphanumeric } from "@src/utils/removeLeadingNonAlphanumeric"
16+
import { getLanguageFromPath } from "@src/utils/getLanguageFromPath"
1617
import { Button } from "@src/components/ui"
1718

1819
import { ToolUseBlock, ToolUseBlockHeader } from "../common/ToolUseBlock"
@@ -291,7 +292,7 @@ export const ChatRowContent = ({
291292
<CodeAccordian
292293
path={tool.path}
293294
code={tool.content ?? tool.diff}
294-
language={tool.tool === "appliedDiff" ? "diff" : undefined}
295+
language="diff"
295296
progressStatus={message.progressStatus}
296297
isLoading={message.partial}
297298
isExpanded={isExpanded}
@@ -339,6 +340,7 @@ export const ChatRowContent = ({
339340
<CodeAccordian
340341
path={tool.path}
341342
code={tool.diff}
343+
language="diff"
342344
progressStatus={message.progressStatus}
343345
isLoading={message.partial}
344346
isExpanded={isExpanded}
@@ -356,6 +358,7 @@ export const ChatRowContent = ({
356358
<CodeAccordian
357359
path={tool.path}
358360
code={tool.content}
361+
language={getLanguageFromPath(tool.path || "") || "log"}
359362
isLoading={message.partial}
360363
isExpanded={isExpanded}
361364
onToggleExpand={onToggleExpand}
@@ -401,6 +404,7 @@ export const ChatRowContent = ({
401404
</div>
402405
<CodeAccordian
403406
code={tool.content}
407+
language="markdown"
404408
isLoading={message.partial}
405409
isExpanded={isExpanded}
406410
onToggleExpand={onToggleExpand}
@@ -441,7 +445,7 @@ export const ChatRowContent = ({
441445
<CodeAccordian
442446
path={tool.path}
443447
code={tool.content}
444-
language="shell-session"
448+
language="shellsession"
445449
isExpanded={isExpanded}
446450
onToggleExpand={onToggleExpand}
447451
/>
@@ -461,6 +465,7 @@ export const ChatRowContent = ({
461465
<CodeAccordian
462466
path={tool.path}
463467
code={tool.content}
468+
language="markdown"
464469
isExpanded={isExpanded}
465470
onToggleExpand={onToggleExpand}
466471
/>
@@ -490,7 +495,7 @@ export const ChatRowContent = ({
490495
<CodeAccordian
491496
path={tool.path! + (tool.filePattern ? `/(${tool.filePattern})` : "")}
492497
code={tool.content}
493-
language="log"
498+
language="shellsession"
494499
isExpanded={isExpanded}
495500
onToggleExpand={onToggleExpand}
496501
/>
@@ -710,7 +715,7 @@ export const ChatRowContent = ({
710715
backgroundColor: "var(--vscode-editor-background)",
711716
borderTop: "none",
712717
}}>
713-
<CodeBlock source={`${"```"}plaintext\n${message.text || ""}\n${"```"}`} />
718+
<CodeBlock source={message.text || ""} language="xml" />
714719
</div>
715720
)}
716721
</div>

webview-ui/src/components/common/CodeAccordian.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import CodeBlock from "./CodeBlock"
1111
interface CodeAccordianProps {
1212
path?: string
1313
code?: string
14-
language?: string | undefined
14+
language: string
1515
progressStatus?: ToolProgressStatus
1616
isLoading?: boolean
1717
isExpanded: boolean
@@ -29,7 +29,7 @@ const CodeAccordian = ({
2929
isFeedback,
3030
onToggleExpand,
3131
}: CodeAccordianProps) => {
32-
const inferredLanguage = useMemo(() => language ?? (path ? getLanguageFromPath(path) : undefined), [path, language])
32+
const inferredLanguage = useMemo(() => language ?? (path ? getLanguageFromPath(path) : "txt"), [path, language])
3333
const source = useMemo(() => code.trim(), [code])
3434
const hasHeader = Boolean(path || isFeedback)
3535

0 commit comments

Comments
 (0)