Skip to content

Commit

Permalink
Merge branch 'main' into fix/popup-suggestions-overflow
Browse files Browse the repository at this point in the history
  • Loading branch information
mitryp committed May 26, 2023
2 parents 6c590b5 + 29bd626 commit f8cf10b
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 3 deletions.
17 changes: 14 additions & 3 deletions lib/core/controllers/colored_text_editing_controller.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:math';

import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:languagetool_textfield/core/enums/mistake_type.dart';
Expand Down Expand Up @@ -53,6 +55,12 @@ class ColoredTextEditingController extends TextEditingController {
);
}

@override
void dispose() {
languageCheckService.dispose();
super.dispose();
}

/// Replaces mistake with given replacement
void replaceMistake(Mistake mistake, String replacement) {
text = text.replaceRange(mistake.offset, mistake.endOffset, replacement);
Expand Down Expand Up @@ -92,7 +100,7 @@ class ColoredTextEditingController extends TextEditingController {
yield TextSpan(
text: text.substring(
currentOffset,
mistake.offset,
min(mistake.offset, text.length),
),
style: style,
);
Expand All @@ -113,7 +121,10 @@ class ColoredTextEditingController extends TextEditingController {
yield TextSpan(
children: [
TextSpan(
text: text.substring(mistake.offset, mistake.endOffset),
text: text.substring(
mistake.offset,
min(mistake.endOffset, text.length),
),
mouseCursor: MaterialStateMouseCursor.clickable,
style: style?.copyWith(
backgroundColor: mistakeColor.withOpacity(
Expand All @@ -128,7 +139,7 @@ class ColoredTextEditingController extends TextEditingController {
],
);

currentOffset = mistake.endOffset;
currentOffset = min(mistake.endOffset, text.length);
}

/// TextSpan after mistake
Expand Down
6 changes: 6 additions & 0 deletions lib/domain/language_check_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,10 @@ abstract class LanguageCheckService {

/// Returns found mistakes in the given [text].
Future<List<Mistake>> findMistakes(String text);

/// Disposes resources of this [LanguageCheckService].
Future<void> dispose() async {
// does nothing by default, but implementations may need to use it
return;
}
}
6 changes: 6 additions & 0 deletions lib/implementations/debounce_lang_tool_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ class DebounceLangToolService extends LanguageCheckService {

return value ?? [];
}

@override
Future<void> dispose() async {
await debouncing.close();
await baseService.dispose();
}
}
6 changes: 6 additions & 0 deletions lib/implementations/throttling_lang_tool_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,10 @@ class ThrottlingLangToolService extends LanguageCheckService {
Future<List<Mistake>> findMistakes(String text) =>
throttling.throttle(() => baseService.findMistakes(text))
as Future<List<Mistake>>;

@override
Future<void> dispose() async {
await throttling.close();
await baseService.dispose();
}
}

0 comments on commit f8cf10b

Please sign in to comment.