feat(ecode): add Git diff gutter and minimap indicators

Compute document line changes asynchronously against the repository
baseline and render added, modified, and removed markers in the editor
gutter and minimap.

Keep diff indicators disabled by default to avoid unexpected background
work. Add settings for enabling them and configuring the debounce delay,
with translations for all supported locales.

Handle fully added files, stale asynchronous results, document lifetime,
repository changes, and unsaved edits. Add focused Git diff and document
serialization regression coverage.

Vendor a reduced simdutf build and use it to accelerate String UTF-8 and
UTF-32 conversion and codepoint counting. Preserve efficient scalar and
cached-ASCII paths while reusing output storage for document snapshots.
Add simdutf to the Premake 4, Premake 5, and Android builds.

Fix UIConsole wheel and keyboard scrolling, and repair its text cache by
hashing log entries before moving their strings. Initialize cache hashes
and add regression coverage for scrolling and moved log entries.

Preserve debugger response data when notifying multiple listeners by
copying for all but the final listener. Remove an evaluation-order hazard
when capturing and submitting URIs for asynchronous document loading.

Refs SpartanJ/ecode#955.
This commit is contained in:
Martín Lucas Golini
2026-09-21 18:05:23 -03:00
parent 53f1fe6045
commit e2174aa044
25 changed files with 35429 additions and 171 deletions
+4
View File
@@ -1235,6 +1235,10 @@ Für sichtbare Änderung ecode neu starten.</string>
<string name="discordrpc_language_icons_desc">Display an icon for the active document language.</string>
<string name="formatter_auto_format_on_save">Format on Save</string>
<string name="formatter_auto_format_on_save_desc">Automatically format supported documents when saving.</string>
<string name="git_diff_gutter">Show Git Diff Gutter</string>
<string name="git_diff_gutter_desc">Show added, modified and deleted line indicators in the editor gutter.</string>
<string name="git_diff_gutter_debounce_delay">Git Diff Gutter Update Delay</string>
<string name="git_diff_gutter_debounce_delay_desc">How long to wait after editing before updating Git diff indicators.</string>
<string name="git_filetree_highlight_changes">Highlight File Tree Changes</string>
<string name="git_filetree_highlight_changes_desc">Highlight files with Git changes in the file tree.</string>
<string name="git_filetree_highlight_style_color">File Tree Highlight Color</string>
+4
View File
@@ -1220,6 +1220,10 @@ Restart ecode to see the changes.</string>
<string name="discordrpc_language_icons_desc">Display an icon for the active document language.</string>
<string name="formatter_auto_format_on_save">Format on Save</string>
<string name="formatter_auto_format_on_save_desc">Automatically format supported documents when saving.</string>
<string name="git_diff_gutter">Show Git Diff Gutter</string>
<string name="git_diff_gutter_desc">Show added, modified and deleted line indicators in the editor gutter.</string>
<string name="git_diff_gutter_debounce_delay">Git Diff Gutter Update Delay</string>
<string name="git_diff_gutter_debounce_delay_desc">How long to wait after editing before updating Git diff indicators.</string>
<string name="git_filetree_highlight_changes">Highlight File Tree Changes</string>
<string name="git_filetree_highlight_changes_desc">Highlight files with Git changes in the file tree.</string>
<string name="git_filetree_highlight_style_color">File Tree Highlight Color</string>
+4
View File
@@ -1219,6 +1219,10 @@ Redémarrer ecode pour voir les changements.</string>
<string name="discordrpc_language_icons_desc">Display an icon for the active document language.</string>
<string name="formatter_auto_format_on_save">Format on Save</string>
<string name="formatter_auto_format_on_save_desc">Automatically format supported documents when saving.</string>
<string name="git_diff_gutter">Show Git Diff Gutter</string>
<string name="git_diff_gutter_desc">Show added, modified and deleted line indicators in the editor gutter.</string>
<string name="git_diff_gutter_debounce_delay">Git Diff Gutter Update Delay</string>
<string name="git_diff_gutter_debounce_delay_desc">How long to wait after editing before updating Git diff indicators.</string>
<string name="git_filetree_highlight_changes">Highlight File Tree Changes</string>
<string name="git_filetree_highlight_changes_desc">Highlight files with Git changes in the file tree.</string>
<string name="git_filetree_highlight_style_color">File Tree Highlight Color</string>
+4
View File
@@ -1024,6 +1024,10 @@ file in the directory tree.</string>
<string name="discordrpc_language_icons_desc">Display an icon for the active document language.</string>
<string name="formatter_auto_format_on_save">Format on Save</string>
<string name="formatter_auto_format_on_save_desc">Automatically format supported documents when saving.</string>
<string name="git_diff_gutter">Show Git Diff Gutter</string>
<string name="git_diff_gutter_desc">Show added, modified and deleted line indicators in the editor gutter.</string>
<string name="git_diff_gutter_debounce_delay">Git Diff Gutter Update Delay</string>
<string name="git_diff_gutter_debounce_delay_desc">How long to wait after editing before updating Git diff indicators.</string>
<string name="git_filetree_highlight_changes">Highlight File Tree Changes</string>
<string name="git_filetree_highlight_changes_desc">Highlight files with Git changes in the file tree.</string>
<string name="git_filetree_highlight_style_color">File Tree Highlight Color</string>