Skip to content

Commit

Permalink
Refactor adfer review
Browse files Browse the repository at this point in the history
  • Loading branch information
solid-danylokhvan committed Jul 6, 2023
1 parent 9b3258f commit f504280
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
19 changes: 9 additions & 10 deletions lib/core/controllers/colored_text_editing_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import 'package:languagetool_textfield/core/enums/mistake_type.dart';
import 'package:languagetool_textfield/domain/highlight_style.dart';
import 'package:languagetool_textfield/domain/language_check_service.dart';
import 'package:languagetool_textfield/domain/mistake.dart';
import 'package:languagetool_textfield/implementations/keep_latest_response_service.dart';
import 'package:languagetool_textfield/utils/closed_range.dart';
import 'package:languagetool_textfield/utils/keep_latest_response_service.dart';
import 'package:languagetool_textfield/utils/mistake_popup.dart';

/// A TextEditingController with overrides buildTextSpan for building
Expand Down Expand Up @@ -235,12 +235,14 @@ class ColoredTextEditingController extends TextEditingController {
required int lengthDiscrepancy,
}) {
final mistakeRange = ClosedRange(mistake.offset, mistake.endOffset);
final baseOffset = selection.base.offset;
final shouldSkipOffsetAdjustment = mistakeRange.contains(baseOffset);
final caretLocation = selection.base.offset;
final isCaretOnMistake = mistakeRange.contains(caretLocation);

if (shouldSkipOffsetAdjustment) return null;
// Don't highlight mistakes on changed text
// until we get an update from the API.
if (isCaretOnMistake) return null;

final shouldAdjustOffset = mistakeRange.isBeforeOrAt(baseOffset);
final shouldAdjustOffset = mistakeRange.isBeforeOrAt(caretLocation);
final newOffset = mistake.offset + lengthDiscrepancy;

return shouldAdjustOffset ? mistake.copyWith(offset: newOffset) : mistake;
Expand All @@ -253,12 +255,9 @@ class ColoredTextEditingController extends TextEditingController {
}) {
final selectionRange = ClosedRange(selection.start, selection.end);
final mistakeRange = ClosedRange(mistake.offset, mistake.endOffset);
final hasSelectedTextChanged = selectionRange.overlapsWith(mistakeRange);

final shouldSkipOffsetAdjustment =
selectionRange.containsRange(mistakeRange) ||
selectionRange.overlapsWith(mistakeRange);

if (shouldSkipOffsetAdjustment) return null;
if (hasSelectedTextChanged) return null;

final shouldAdjustOffset = selectionRange.isAfterOrAt(mistake.offset);
final newOffset = mistake.offset + lengthDiscrepancy;
Expand Down
5 changes: 0 additions & 5 deletions lib/utils/closed_range.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,6 @@ class ClosedRange {
return start <= point && point <= end;
}

/// Checks if the encompasses the entire range
bool containsRange(ClosedRange other) {
return contains(other.start) && contains(other.end);
}

/// Checks if the this range is within the boundaries of the another range
bool overlapsWith(ClosedRange other) {
return contains(other.start) || contains(other.end);
Expand Down
File renamed without changes.

0 comments on commit f504280

Please sign in to comment.