Procházet zdrojové kódy

adds special color for currently selected search hit

devmil před 4 roky
rodič
revize
ebd07b1c60

+ 6 - 4
lib/frontend/terminal_painters.dart

@@ -98,12 +98,12 @@ class TerminalPainter extends CustomPainter {
 
     canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), dimPaint);
 
-    for (final hit in searchResult.allHits) {
-      _paintSearchHit(canvas, hit);
+    for (int i = 1; i <= searchResult.allHits.length; i++) {
+      _paintSearchHit(canvas, searchResult.allHits[i - 1], i);
     }
   }
 
-  void _paintSearchHit(Canvas canvas, TerminalSearchHit hit) {
+  void _paintSearchHit(Canvas canvas, TerminalSearchHit hit, int hitNum) {
     //check if the hit is visible
     if (hit.startLineIndex >=
             terminal.scrollOffsetFromTop + terminal.terminalHeight ||
@@ -112,7 +112,9 @@ class TerminalPainter extends CustomPainter {
     }
 
     final paint = Paint()
-      ..color = Color(terminal.theme.searchHitBackground)
+      ..color = Color(terminal.currentSearchHit == hitNum
+          ? terminal.theme.searchHitBackgroundCurrent
+          : terminal.theme.searchHitBackground)
       ..style = PaintingStyle.fill;
 
     if (hit.startLineIndex == hit.endLineIndex) {

+ 2 - 0
lib/theme/terminal_theme.dart

@@ -21,6 +21,7 @@ class TerminalTheme {
       required this.brightCyan,
       required this.brightWhite,
       required this.searchHitBackground,
+      required this.searchHitBackgroundCurrent,
       required this.searchHitForeground});
 
   final int cursor;
@@ -47,5 +48,6 @@ class TerminalTheme {
   final int brightWhite;
 
   final int searchHitBackground;
+  final int searchHitBackgroundCurrent;
   final int searchHitForeground;
 }

+ 2 - 0
lib/theme/terminal_themes.dart

@@ -23,6 +23,7 @@ class TerminalThemes {
     brightCyan: 0XFF29B8DB,
     brightWhite: 0XFFFFFFFF,
     searchHitBackground: 0XFFFFFF2B,
+    searchHitBackgroundCurrent: 0XFF31FF26,
     searchHitForeground: 0XFF000000,
   );
 
@@ -48,6 +49,7 @@ class TerminalThemes {
     brightCyan: 0XFF29B8DB,
     brightWhite: 0XFFFFFFFF,
     searchHitBackground: 0XFFFFFF2B,
+    searchHitBackgroundCurrent: 0XFF31FF26,
     searchHitForeground: 0XFF000000,
   );
 }