Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
788cb52
chore: empty commit for beta branch
amadeus May 29, 2026
60be5b7
Editor (#601)
ije May 29, 2026
4197d3f
chore: update @pierre/diffs to `1.3.0-beta.1`
amadeus May 29, 2026
b6f583d
chore: update @pierre/diffs to `1.3.0-beta.2`
amadeus Jun 1, 2026
6635b25
feat(editor): Add rounded selection (#757)
ije Jun 2, 2026
e9bcbc3
refactor(editor): refactor search panel (#759)
ije Jun 2, 2026
24ca26a
refactor(editor): Reshape search panel UI (#764)
ije Jun 3, 2026
826f3fb
pref(editor): Introduce `postponeBackgroundTokenizeToNextFrame` metho…
ije Jun 5, 2026
cbe9af4
Homepage Editor demo (#761)
mdo Jun 8, 2026
7351e83
chore: update @pierre/diffs to `1.3.0-beta.3`
amadeus Jun 9, 2026
689b4b5
fix(diffs/editor): Add input support of `deleteSoftLineBackward` and…
ije Jun 9, 2026
cf9d848
refactor(editor): realtime update on diff editing (#774)
ije Jun 9, 2026
f2fb5a3
refactor(diffs/editor): Rename "Quick Edit" to "Selection Action" (#790)
ije Jun 9, 2026
81e036d
feat(diffs/editor): Add marker support (#787)
ije Jun 10, 2026
ea59286
[diffs/editor] Fix cursor move (#799)
ije Jun 10, 2026
bcf82b4
chore: bump @pierre/diffs to `1.3.0-beta.4`
amadeus Jun 11, 2026
ca8539e
[diffs] Removing BETA badge from Virtualization (#820)
amadeus Jun 16, 2026
57b3eb2
[diffs/editor] refactor editor API (#804)
ije Jun 16, 2026
94cec5b
[diff/editor] Add Find-in-file replace support (#817)
ije Jun 16, 2026
cddd662
chore: update @pierre/diffs to `1.3.0-beta.5`
amadeus Jun 16, 2026
1a7cefb
[diff/editor] Add auto-surround feature (#813)
ije Jun 17, 2026
61eecc4
[diff/editor] Add `autoSurround` option in docs (#824)
ije Jun 17, 2026
3a14ac4
fix(diffs): Handle IME composition input (#823)
necolas Jun 17, 2026
14f873b
[editor/diff] Update toggle icon size in search panel (#826)
ije Jun 17, 2026
f71e057
[diffs/editor] Support unified diff (#818)
ije Jun 17, 2026
9da0aaa
New editor homepage demo (#795)
mdo Jun 17, 2026
8b8e804
[editor/diffs] Render marker popup in overlay element (#825)
ije Jun 17, 2026
409706e
fix(diffs): Add accessible name to editor textbox host (#829)
necolas Jun 17, 2026
076c7b9
fix(diffs): Guard gutter pointerdown to mouse only
necolas Jun 17, 2026
dc5c2ad
perf(diffs): Skip redundant hunk recompute on line-count edits
necolas Jun 17, 2026
b1aaca3
fix(diffs): re-anchor caret after editor.applyEdits
necolas Jun 17, 2026
eb2d627
fix(diffs): move caret past text inserted at the caret
necolas Jun 17, 2026
1fca004
fix(diffs): Disable caret blink under reduced motion
necolas Jun 17, 2026
0a6218b
fix(diffs): Cut collapsed editor selections by line
necolas Jun 17, 2026
c7f8f0b
Move methods to selection.ts
ije Jun 18, 2026
a8dc226
fix(diffs): Correct editor selection, indent, and platform handling
necolas Jun 18, 2026
67f12d5
Add new OG image for edit, update diffs OG (#838)
mdo Jun 18, 2026
0e8a5bb
fix(diffs): don't steal focus on programmatic applyEdits
necolas Jun 18, 2026
1fc3294
fix(diffs): ignore selectionchange while the editor is unfocused
necolas Jun 18, 2026
3981955
fix(diffs): re-sync native selection on non-pointer refocus
necolas Jun 18, 2026
f0e04aa
perf(diffs): Reuse the compiled search regex across lines (#837)
necolas Jun 19, 2026
56224bf
fix(diffs): Keep paste and cut as their own undo steps (#839)
necolas Jun 19, 2026
95c9bd1
fix(diffs): re-measure character width after web font loads (#841)
necolas Jun 19, 2026
5b988ee
fix(diffs): count CR line breaks in edit change ranges (#844)
necolas Jun 19, 2026
18536fd
fix(diffs): Measure tabs against tab stops, not a flat width (#842)
necolas Jun 19, 2026
22aca17
fix(diffs): move caret and transpose by whole graphemes (#848)
necolas Jun 19, 2026
12b3a47
Update edit mode docs
mdo Jun 18, 2026
3ff568d
feat(diffs): Add programmatic undo and redo to the editor
necolas Jun 18, 2026
b635c16
Update docs
ije Jun 19, 2026
be8d97b
fix(diffs): memoize and round DOM text measurements (#847)
necolas Jun 19, 2026
e1fde4c
More edit CSS fixes (#845)
mdo Jun 19, 2026
b99e3da
[diff/editor] Fix emoji deletion (#856)
ije Jun 19, 2026
4eae379
[diff/editor] Support 'insertLineBreak'(shift + enter) input type (#857)
ije Jun 19, 2026
ad717b2
fix(diffs): keep the caret line highlighted during selection
necolas Jun 19, 2026
eab5d7e
fix(diffs): keep the editor active-line highlight silent
necolas Jun 19, 2026
faeed0c
chore(diffs): remove setSelectedLines interface comment
necolas Jun 19, 2026
6bb37b4
fix(diffs): use current selection for selection action
necolas Jun 19, 2026
d17c883
fix(diffs): keep an editable line when the editor is emptied
necolas Jun 19, 2026
c55be32
fix(diffs): keep an editable row when the old side is a blank line
necolas Jun 19, 2026
f6cfd50
[diff/editor] Suppport custom clipboard provider (#865)
ije Jun 23, 2026
d0dfb84
fix(diffs): align caret and selection on lines below a wrapping edit
necolas Jun 22, 2026
b21a737
fix(diffs): keep viewport colors correct after an offscreen delete
necolas Jun 22, 2026
2df71d0
fix(diffs): normalize pasted text to the document line ending
necolas Jun 22, 2026
f556b35
fix expandSingleNewlineInsert function
ije Jun 23, 2026
6023a0d
perf(diffs): edit the piece table in place instead of rebuilding it
necolas Jun 22, 2026
829671e
fix(diffs): keep edits rendered at a virtualized window's bottom
necolas Jun 22, 2026
a5a29f4
fix(diffs): align selection highlight with text in wrapped split diffs
necolas Jun 23, 2026
9c5a92e
fix(diffs): ignore stale split-diff content offset after layout change
necolas Jun 23, 2026
9f09081
[diffs] Filename Header Suffix Slot API (#874)
amadeus Jun 23, 2026
34a9a8e
[diffs/editor] Add responsive for marker popup element (#879)
ije Jun 24, 2026
bd8bc98
fix(diffs): keep editor edits visible across host re-renders
necolas Jun 23, 2026
808c6bb
Some editor nits and updates (#873)
mdo Jun 24, 2026
d59b1f4
hotfix: main formatting update changes
amadeus Jun 24, 2026
1ea1572
hotfix: new let/const fix
amadeus Jun 24, 2026
da2129f
Editor bug bash (#889)
mdo Jun 24, 2026
3e82b23
[diffs/editor] Fix deletion by indent (#885)
ije Jun 25, 2026
be98a4d
perf(diffs): store parsed diff lines as a per-file UTF-8 byte arena
clemg Jun 16, 2026
a93a9b7
test(diffs): cover the byte-arena DiffLines model and edge cases
clemg Jun 16, 2026
b2f54bf
perf(diffs): parse hunk content from UTF-8 bytes
clemg Jun 16, 2026
bd8b538
perf(diffs): split streamed patches into per-file bytes
clemg Jun 16, 2026
4c1f6db
test(diffs): cover the byte stream splitter and the byte parser
clemg Jun 17, 2026
f11a6d0
fix(diffs): convert empty doc recompute to DiffLines
clemg Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion apps/demo/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,28 @@
<input id="wrap-lines" type="checkbox" />
Wrap
</label>
<label>
<input id="lag-radar" type="checkbox" />
Lag Radar
</label>
</div>
</div>
<div id="wrapper" class="wrapper" />
<div id="wrapper" class="wrapper"></div>
</div>
<!-- lag radar -->
<div
id="radar"
style="
display: none;
position: fixed;
bottom: 4px;
right: 4px;
width: 100px;
height: 100px;
z-index: 100;
pointer-events: none;
"
></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
1 change: 1 addition & 0 deletions apps/demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"type": "module",
"dependencies": {
"@pierre/diffs": "workspace:*",
"@pierre/icons": "catalog:",
"react": "catalog:",
"react-dom": "catalog:",
"shiki": "catalog:"
Expand Down
10 changes: 10 additions & 0 deletions apps/demo/src/codeViewDemo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ import {
import type { WorkerPoolManager } from '@pierre/diffs/worker';

import { FAKE_DIFF_LINE_ANNOTATIONS, type LineCommentMetadata } from './mocks/';
import { createHeaderFilenameSuffixBadge } from './utils/createHeaderFilenameSuffixBadge';

const RENDER_FILENAME_SUFFIX = false;

type CodeViewCommentMetadata =
| CodeViewSavedCommentMetadata
Expand Down Expand Up @@ -95,6 +98,13 @@ export function renderDemoCodeView(
renderAnnotation(annotation) {
return renderCodeViewAnnotation(annotation, viewer, items);
},
...(RENDER_FILENAME_SUFFIX
? {
renderHeaderFilenameSuffix() {
return createHeaderFilenameSuffixBadge('CodeView slot');
},
}
: null),
lineHoverHighlight: 'both',
expansionLineCount: 10,
enableLineSelection: true,
Expand Down
Loading