MCPcopy Create free account
hub / github.com/modem-dev/hunk / loadHighlightedDiff

Function loadHighlightedDiff

src/ui/diff/pierre.ts:679–711  ·  view source on GitHub ↗
(
  file: DiffFile,
  theme: HighlightThemeInput = "dark",
)

Source from the content-addressed store, hash-verified

677
678/** Highlight a diff file and return just the rendered line trees the UI needs. */
679export async function loadHighlightedDiff(
680 file: DiffFile,
681 theme: HighlightThemeInput = "dark",
682): Promise<HighlightedDiffCode> {
683 try {
684 const highlighter = await prepareHighlighter(file.language, theme);
685 return queueHighlightedWork(() => {
686 const highlighted = renderDiffWithHighlighter(
687 file.metadata,
688 highlighter,
689 pierreRenderOptions(theme),
690 );
691 return aliasHighlightedContextLines(file, {
692 deletionLines: highlighted.code.deletionLines as Array<HastNode | undefined>,
693 additionLines: highlighted.code.additionLines as Array<HastNode | undefined>,
694 });
695 });
696 } catch {
697 const fallbackTheme = highlightThemeAppearance(theme);
698 const highlighter = await prepareHighlighter("text", fallbackTheme);
699 return queueHighlightedWork(() => {
700 const highlighted = renderDiffWithHighlighter(
701 { ...file.metadata, lang: "text" },
702 highlighter,
703 pierreRenderOptions(fallbackTheme),
704 );
705 return aliasHighlightedContextLines(file, {
706 deletionLines: highlighted.code.deletionLines as Array<HastNode | undefined>,
707 additionLines: highlighted.code.additionLines as Array<HastNode | undefined>,
708 });
709 });
710 }
711}
712
713/** Highlight a full source file for unchanged lines synthesized during gap expansion. */
714export async function loadHighlightedSourceLines({

Callers 3

renderStaticFileFunction · 0.90
pierre.test.tsFile · 0.90

Calls 5

prepareHighlighterFunction · 0.85
queueHighlightedWorkFunction · 0.85
pierreRenderOptionsFunction · 0.85
highlightThemeAppearanceFunction · 0.85

Tested by

no test coverage detected