Inline diffs for large files and low computation timeouts - #6005
Conversation
|
I've added two small fixes for marker rendering, but the refining is still too unreliable, e.g. if i do not have the delimiter line in the added test, diff thinks the whole chunk at the start is added. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6005 +/- ##
==========================================
- Coverage 93.96% 93.92% -0.04%
==========================================
Files 647 647
Lines 140305 140672 +367
Branches 14739 14741 +2
==========================================
+ Hits 131836 132126 +290
- Misses 8469 8546 +77
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…es now uses Dynamic Programming algo instead of Myers
New commit should fix this -> I returned Dynamic Programming call for documents with combined lines less than 1700 (as it was in previous implementation); lazy visible-only inline refinement remains unchanged. |
Issue #, if available:
Description of changes:
The default provider now performs a fast Myers (or Dynamic Programming for combined lines less than 1700) line-level diff for the entire document and marks modified line chunks as pending character refinement. Character-level diffs are calculated only for chunks in or near the visible viewport, using dynamic programming for small chunks and Myers for larger ones.
The renderer also skips redundant inline markers when an inline change covers the complete line-diff range.
For Diff Providers without
refinemethod this logic is completely skipped.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Pull Request Checklist:
ace.d.ts) and its references:Open kitchen-sink @ 8b448c7c61a3d3d1408d04f1da9fcf866eab61fb
Open kitchen-sink @ 25c4ec412a8176a5e09473c1cbc9932eeabf4250
Open kitchen-sink @ d63fd5f0f5b6600ee6b7b1c9d0517368f8c09fc1
Open kitchen-sink @ ef76825defa4b08ff7c161b1321482d5cadb7965
Open kitchen-sink @ 677c4da7a7548d25ff4504a779b4c410770e34b7
Open kitchen-sink @ ca24ada14903fbd0b8dcb61ad10a937d082ae629