diff --git a/src/ui/diff/splitDiffView.ts b/src/ui/diff/splitDiffView.ts index 7ce60364..ed95764f 100644 --- a/src/ui/diff/splitDiffView.ts +++ b/src/ui/diff/splitDiffView.ts @@ -5,6 +5,10 @@ import { SimpleGit } from "src/gitManager/simpleGit"; import type ObsidianGit from "src/main"; import type { DiffViewState } from "src/types"; +import { history, indentWithTab, standardKeymap } from "@codemirror/commands"; +import { MergeView } from "@codemirror/merge"; +import { highlightSelectionMatches, search } from "@codemirror/search"; +import { EditorState, Transaction } from "@codemirror/state"; import { drawSelection, EditorView, @@ -12,10 +16,6 @@ import { lineNumbers, ViewPlugin, } from "@codemirror/view"; -import { EditorState, Transaction } from "@codemirror/state"; -import { MergeView } from "@codemirror/merge"; -import { history, indentWithTab, standardKeymap } from "@codemirror/commands"; -import { highlightSelectionMatches, search } from "@codemirror/search"; import { GitError } from "simple-git"; // This class is not extending `FileView', because it needs a `TFile`, which is not possible for dot files like `.gitignore`, which this editor should support as well.` @@ -358,6 +358,10 @@ export default class SplitDiffView extends ItemView { this.mergeView = new MergeView({ b: bState, a: aState, + collapseUnchanged: { + minSize: 6, + margin: 4, + }, diffConfig: { scanLimit: this.bIsEditable ? 1000 : 10000, // default is 500 }, diff --git a/styles.css b/styles.css index 2a9ffb45..9c490e7c 100644 --- a/styles.css +++ b/styles.css @@ -590,3 +590,16 @@ .git-obscure-prompt[git-is-obscured="false"] #git-show-password:after { -webkit-mask-image: url('data:image/svg+xml,'); } + +/* Override styling of Codemirror merge view "collapsed lines" indicator */ +.git-split-diff-view .ͼ2 .cm-collapsedLines { + background: var(--interactive-normal); + border-radius: var(--radius-m); + color: var(--text-accent); + font-size: var(--font-small); + padding: var(--size-4-1) var(--size-4-1); +} +.git-split-diff-view .ͼ2 .cm-collapsedLines:hover { + background: var(--interactive-hover); + color: var(--text-accent-hover); +}