Skip to content

Commit b96002c

Browse files
Merge pull request #59 from MrWangJustToDo/fix/theme
update
2 parents 920bd0f + e14d0b6 commit b96002c

6 files changed

Lines changed: 58 additions & 51 deletions

File tree

packages/core/src/parse/template.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ export const getPlainDiffTemplateByFastDiff = ({
8181
rawLine: string;
8282
operator: "add" | "del";
8383
}) => {
84+
if (diffLine.plainTemplate && diffLine.plainTemplateMode === 'fast-diff') return;
85+
8486
const changes = diffLine.diffChanges;
8587

8688
if (!changes || !changes.hasLineChange || !rawLine) return;

packages/react/src/components/DiffView.tsx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
22
/* eslint-disable @typescript-eslint/ban-ts-comment */
3-
import { DiffFile, _cacheMap, SplitSide, highlighter as buildInHighlighter } from "@git-diff-view/core";
3+
import { DiffFile, _cacheMap, SplitSide } from "@git-diff-view/core";
44
import { diffFontSizeName, DiffModeEnum } from "@git-diff-view/utils";
55
import { memo, useEffect, useMemo, forwardRef, useImperativeHandle, useRef } from "react";
66
import * as React from "react";
@@ -315,17 +315,18 @@ const DiffViewWithRef = <T extends unknown>(
315315
if (!diffFile) return;
316316

317317
if (props.diffViewHighlight) {
318-
const finalHighlighter = registerHighlighter || buildInHighlighter;
319-
320-
if (
321-
finalHighlighter.name !== diffFile._getHighlighterName() ||
322-
finalHighlighter.type !== diffFile._getHighlighterType()
323-
) {
324-
diffFile.initSyntax({ registerHighlighter: finalHighlighter });
318+
if (registerHighlighter) {
319+
if (
320+
registerHighlighter.name !== diffFile._getHighlighterName() ||
321+
registerHighlighter.type !== diffFile._getHighlighterType() ||
322+
registerHighlighter.type !== "class"
323+
) {
324+
diffFile.initSyntax({ registerHighlighter: registerHighlighter });
325+
diffFile.notifyAll();
326+
}
327+
} else if (diffFile._getHighlighterType() !== "class") {
328+
diffFile.initSyntax();
325329
diffFile.notifyAll();
326-
} else {
327-
diffFile.initSyntax({ registerHighlighter: finalHighlighter });
328-
if (finalHighlighter.type !== "class") diffFile.notifyAll();
329330
}
330331
}
331332
}, [diffFile, props.diffViewHighlight, registerHighlighter, diffViewTheme]);

packages/solid/src/components/DiffView.tsx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* eslint-disable @typescript-eslint/no-unnecessary-type-constraint */
2-
import { _cacheMap, DiffFile, SplitSide, highlighter as buildInHighlighter } from "@git-diff-view/core";
2+
import { _cacheMap, DiffFile, SplitSide } from "@git-diff-view/core";
33
import { diffFontSizeName, DiffModeEnum } from "@git-diff-view/utils";
44
import { type JSXElement, type JSX, createSignal, createEffect, createMemo, onCleanup, Show } from "solid-js";
55

@@ -196,16 +196,19 @@ const InternalDiffView = <T extends unknown>(props: DiffViewProps<T>) => {
196196
props.diffViewTheme;
197197
if (mounted && currentDiffFile) {
198198
if (props.diffViewHighlight) {
199-
const finalHighlighter = props.registerHighlighter || buildInHighlighter;
200-
if (
201-
finalHighlighter.name !== currentDiffFile._getHighlighterName() ||
202-
finalHighlighter.type !== currentDiffFile._getHighlighterType()
203-
) {
204-
currentDiffFile.initSyntax({ registerHighlighter: finalHighlighter });
199+
const registerHighlighter = props.registerHighlighter;
200+
if (registerHighlighter) {
201+
if (
202+
registerHighlighter.name !== currentDiffFile._getHighlighterName() ||
203+
registerHighlighter.type !== currentDiffFile._getHighlighterType() ||
204+
registerHighlighter.type !== "class"
205+
) {
206+
currentDiffFile.initSyntax({ registerHighlighter: registerHighlighter });
207+
currentDiffFile.notifyAll();
208+
}
209+
} else if (currentDiffFile._getHighlighterType() !== "class") {
210+
currentDiffFile.initSyntax();
205211
currentDiffFile.notifyAll();
206-
} else {
207-
currentDiffFile.initSyntax({ registerHighlighter: finalHighlighter });
208-
if (finalHighlighter.type !== "class") currentDiffFile.notifyAll();
209212
}
210213
}
211214
}

packages/svelte/src/lib/components/DiffView.svelte

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -167,20 +167,21 @@
167167
theme;
168168
169169
if (enableHighlight) {
170-
const finalHighlighter = props.registerHighlighter || buildInHighlighter;
171-
if (
172-
finalHighlighter.name !== diffFile._getHighlighterName() ||
173-
finalHighlighter.type !== diffFile._getHighlighterType()
174-
) {
175-
diffFile.initSyntax({
176-
registerHighlighter: finalHighlighter
177-
});
170+
const registerHighlighter = props.registerHighlighter;
171+
if (registerHighlighter) {
172+
if (
173+
registerHighlighter.name !== diffFile._getHighlighterName() ||
174+
registerHighlighter.type !== diffFile._getHighlighterType() ||
175+
registerHighlighter.type !== 'class'
176+
) {
177+
diffFile.initSyntax({
178+
registerHighlighter: registerHighlighter
179+
});
180+
diffFile.notifyAll();
181+
}
182+
} else if (diffFile._getHighlighterType() !== 'class') {
183+
diffFile.initSyntax();
178184
diffFile.notifyAll();
179-
} else {
180-
diffFile.initSyntax({
181-
registerHighlighter: finalHighlighter
182-
});
183-
if (finalHighlighter.type !== 'class') diffFile.notifyAll();
184185
}
185186
}
186187
};

packages/vue/src/components/DiffView.tsx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DiffFile, _cacheMap, SplitSide, highlighter as buildInHighlighter } from "@git-diff-view/core";
1+
import { DiffFile, _cacheMap, SplitSide } from "@git-diff-view/core";
22
import { diffFontSizeName, DiffModeEnum } from "@git-diff-view/utils";
33
import { defineComponent, provide, ref, watch, watchEffect, computed, onUnmounted } from "vue";
44

@@ -163,21 +163,21 @@ export const DiffView = defineComponent<
163163
theme.value;
164164

165165
if (enableHighlight.value) {
166-
const finalHighlighter = props.registerHighlighter || buildInHighlighter;
167-
if (
168-
finalHighlighter.name !== instance._getHighlighterName() ||
169-
finalHighlighter.type !== instance._getHighlighterType()
170-
) {
171-
instance.initSyntax({
172-
registerHighlighter: finalHighlighter,
173-
});
174-
instance.notifyAll();
175-
} else {
176-
instance.initSyntax({
177-
registerHighlighter: finalHighlighter,
178-
});
179-
180-
if (finalHighlighter.type !== "class") instance.notifyAll();
166+
const registerHighlighter = props.registerHighlighter;
167+
if (registerHighlighter) {
168+
if (
169+
registerHighlighter.name !== instance._getHighlighterName() ||
170+
registerHighlighter.type !== instance._getHighlighterType() ||
171+
registerHighlighter.type !== "class"
172+
) {
173+
instance.initSyntax({
174+
registerHighlighter: registerHighlighter,
175+
});
176+
instance.notifyAll();
177+
} else if (instance._getHighlighterType() !== "class") {
178+
instance.initSyntax({});
179+
instance.notifyAll();
180+
}
181181
}
182182
}
183183
};

ui/vue-example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"version": "0.0.0",
55
"type": "module",
66
"scripts": {
7-
"dev": "vite",
7+
"dev": "vite --force",
88
"build": "vue-tsc && vite build",
99
"preview": "vite preview"
1010
},

0 commit comments

Comments
 (0)