You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,6 +38,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
38
38
-**Text wrapping support** - Handle wrapped lines correctly by using actual text rect width for measurement.
39
39
-**Bold font measurement** - Use bold font for measurement when content starts with bold markers for better accuracy.
40
40
41
+
#### Scroll Navigation Accuracy
42
+
-**Unified scroll calculation** - Single function for all scroll-to-line operations (find, search-in-files, outline, minimap) ensuring consistent positioning.
43
+
-**Fixed off-by-one errors** - Consistent 0-indexed vs 1-indexed line number handling across all navigation functions.
44
+
-**Fresh line height** - Ensure actual rendered line height is used instead of stale/default values when calculating scroll positions.
45
+
-**Large file accuracy** - Scroll navigation now works correctly in files with 3000+ lines; previously target lines could be hundreds of pixels off or completely out of view.
46
+
-**Semantic minimap highlight fix** - Fixed highlight offset when clicking items in semantic minimap/outline panel. The highlight now correctly marks the target line by using byte offsets (matching search behavior) instead of character offsets.
47
+
41
48
#### Settings & UX
42
49
-**Session restore option** - New setting to disable tab restoration on startup. When disabled, app starts with a single empty tab instead of restoring previous session.
Point release focusing on memory optimization, multi-encoding support, cursor positioning improvements, and UX polish.
104
+
Point release focusing on memory optimization, multi-encoding support, cursor positioning improvements, scroll navigation accuracy, and UX polish.
105
105
106
106
#### Multi-Encoding File Support
107
107
-[x]**Encoding detection** - Auto-detect file encoding on open using `encoding_rs` + `chardetng` crates
@@ -115,7 +115,14 @@ Point release focusing on memory optimization, multi-encoding support, cursor po
115
115
-[x]**Text wrapping support** - Handle wrapped lines correctly by using actual text rect width for measurement
116
116
-[x]**Bold font measurement** - Use bold font for measurement when content starts with bold markers
117
117
118
-
> **Known Limitation:** Cursor positioning is best-effort accurate. Lines with mixed formatting (bold + regular + italic) may have slight drift on longer lines due to font width differences. Perfect positioning requires the custom editor widget planned for v0.3.0.
118
+
#### Scroll Navigation Accuracy (Critical Fix)
119
+
-[x]**Unified scroll calculation** - Single function for all scroll-to-line operations ensuring consistent behavior across find, search-in-files, outline panel, and semantic minimap
120
+
-[x]**Fixed off-by-one errors** - Consistent 0-indexed vs 1-indexed line handling in `navigate_to_heading()` and related functions
121
+
-[x]**Fresh line height tracking** - Use actual rendered line height instead of stale/default 20.0 value
122
+
-[x]**Large file navigation** - Fixed scroll accuracy in files with 3000+ lines where targets around line 2000 could be 1000+ pixels off
123
+
-[x]**Semantic minimap highlight fix** - Fixed highlight offset when clicking outline/minimap items; uses byte offsets (matching search) instead of character offsets
124
+
125
+
> **Known Limitation:** Cursor positioning and scroll accuracy are best-effort within egui's constraints. Lines with mixed formatting may have slight drift on longer lines due to font width differences. Perfect positioning requires the custom editor widget planned for v0.3.0.
119
126
120
127
#### Internationalization
121
128
-[x]**Language selector** - Settings option to choose UI language
@@ -324,7 +331,7 @@ Replace egui's `TextEdit` with a custom `FerriteEditor` widget to unblock advanc
324
331
-[ ]**Code folding with text hiding** - Actually collapse regions visually
325
332
326
333
#### 4. Semantic Minimap Polish
327
-
-[ ]**Scroll position accuracy** - Fix navigation centering for variable line heights, word wrap, and editor padding (deferred from v0.2.5)
334
+
-[ ]**Pixel-perfect scroll positioning** - With custom editor widget, use actual galley coordinates for perfect navigation centering (basic fix shipped in v0.2.5.1; v0.3.0 provides full solution via FerriteEditor)
328
335
329
336
#### 5. Markdown Enhancements
330
337
-[ ]**Wikilinks support** ([#1](https://github.com/OlaProeis/Ferrite/issues/1)) - `[[wikilinks]]` syntax with auto-completion
0 commit comments