Add a work-in-progress Git History view to the source-control panel.

Display bounded first-parent commit history with asynchronous loading, independent pagination, and lazily expandable merge commits. Propagate inherited exclusions through nested merges to avoid repeating already represented history.
Add custom compact history rows, loading/error/retry states, keyboard navigation, repository and history-generation guards, and lifecycle invalidation after history-changing operations.
Add a commit details tab with full commit metadata and message, changed-line totals, GitHub links when available, and a multi-file diff viewer with global collapse and unified/split controls.
Extend UIDiffView with multi-file view controls and register the required Codicons.
The Git History interface and visual design remain a work in progress.
Fix caret positioning inside shaped ligature clusters.
Add explicit closest-glyph and interpolated ligature caret-positioning modes while keeping interpolation as the default for general text geometry.
Use the original closest-glyph behavior for caret and IME positioning in UICodeEditor, UITextEdit, UITextInput, and UIConsole, preventing cursor positions from being synthesized inside ligature glyphs.
Add regression coverage for both positioning modes.
Optimize SyntaxTokenizer by returning tokenizer results in a SmallVector, avoiding heap allocations in common cases.
This commit is contained in:
Martín Lucas Golini
2026-08-28 14:43:05 -03:00
parent 66d22ea5bb
commit baaa0a62c0
34 changed files with 1839 additions and 79 deletions
+11
View File
@@ -1254,4 +1254,15 @@ Für sichtbare Änderung ecode neu starten.</string>
<string name="default_diff_view_desc">Choose the initial layout used when opening text diffs.</string>
<string name="diff_view_side_by_side">Side by Side</string>
<string name="diff_view_unified">Unified</string>
<string name="git_history">Verlauf</string>
<string name="git_history_subject">Betreff</string>
<string name="git_history_author">Autor</string>
<string name="git_history_date">Datum</string>
<string name="git_history_hash">Hash</string>
<string name="git_history_loading">Wird geladen...</string>
<string name="git_history_refresh">Aktualisieren</string>
<string name="git_history_load_older">Ältere Commits laden</string>
<string name="git_history_empty">Noch keine Commits</string>
<string name="git_history_error">Git-Verlauf konnte nicht geladen werden</string>
<string name="git_history_retry">Wiederholen</string>
</resources>
+11
View File
@@ -1239,4 +1239,15 @@ Restart ecode to see the changes.</string>
<string name="default_diff_view_desc">Choose the initial layout used when opening text diffs.</string>
<string name="diff_view_side_by_side">Side by Side</string>
<string name="diff_view_unified">Unified</string>
<string name="git_history">History</string>
<string name="git_history_subject">Subject</string>
<string name="git_history_author">Author</string>
<string name="git_history_date">Date</string>
<string name="git_history_hash">Hash</string>
<string name="git_history_loading">Loading...</string>
<string name="git_history_refresh">Refresh</string>
<string name="git_history_load_older">Load older commits</string>
<string name="git_history_empty">No commits yet</string>
<string name="git_history_error">Could not load Git history</string>
<string name="git_history_retry">Retry</string>
</resources>
+11
View File
@@ -1238,4 +1238,15 @@ Redémarrer ecode pour voir les changements.</string>
<string name="default_diff_view_desc">Choose the initial layout used when opening text diffs.</string>
<string name="diff_view_side_by_side">Side by Side</string>
<string name="diff_view_unified">Unified</string>
<string name="git_history">Historique</string>
<string name="git_history_subject">Sujet</string>
<string name="git_history_author">Auteur</string>
<string name="git_history_date">Date</string>
<string name="git_history_hash">Hash</string>
<string name="git_history_loading">Chargement...</string>
<string name="git_history_refresh">Actualiser</string>
<string name="git_history_load_older">Charger les commits précédents</string>
<string name="git_history_empty">Aucun commit pour le moment</string>
<string name="git_history_error">Impossible de charger l’historique Git</string>
<string name="git_history_retry">Réessayer</string>
</resources>
+11
View File
@@ -1043,4 +1043,15 @@ file in the directory tree.</string>
<string name="default_diff_view_desc">Choose the initial layout used when opening text diffs.</string>
<string name="diff_view_side_by_side">Side by Side</string>
<string name="diff_view_unified">Unified</string>
<string name="git_history">历史</string>
<string name="git_history_subject">主题</string>
<string name="git_history_author">作者</string>
<string name="git_history_date">日期</string>
<string name="git_history_hash">哈希</string>
<string name="git_history_loading">正在加载...</string>
<string name="git_history_refresh">刷新</string>
<string name="git_history_load_older">加载更早的提交</string>
<string name="git_history_empty">尚无提交</string>
<string name="git_history_error">无法加载 Git 历史记录</string>
<string name="git_history_retry">重试</string>
</resources>