Skip to content

Commit 8f2b230

Browse files
fix: make sure language changes propagate to language check service
1 parent 777f3da commit 8f2b230

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

lib/src/core/controllers/language_tool_controller.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ class LanguageToolController extends TextEditingController {
2222
/// Color scheme to highlight mistakes
2323
final HighlightStyle highlightStyle;
2424

25-
/// Create an instance of [LanguageToolClient] instance
26-
final _languageToolClient = LanguageToolClient();
27-
2825
/// Create an instance of [KeepLatestResponseService]
2926
/// to handle asynchronous operations
3027
final _latestResponseService = KeepLatestResponseService();
@@ -53,10 +50,10 @@ class LanguageToolController extends TextEditingController {
5350
///
5451
/// A language code like en-US, de-DE, fr, or auto to guess
5552
/// the language automatically.
56-
String get language => _languageToolClient.language;
53+
String get language => _languageCheckService?.language ?? 'auto';
5754

5855
set language(String language) {
59-
_languageToolClient.language = language;
56+
_languageCheckService?.language = language;
6057
}
6158

6259
/// An error that may have occurred during the API fetch.
@@ -89,7 +86,7 @@ class LanguageToolController extends TextEditingController {
8986
_languageCheckService = _getLanguageCheckService(
9087
delayType: delayType,
9188
delay: delay,
92-
languageToolClient: _languageToolClient,
89+
languageToolClient: LanguageToolClient(),
9390
);
9491
}
9592

lib/src/domain/language_check_service.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ import 'package:languagetool_textfield/src/utils/result.dart';
33

44
/// A base language check service.
55
abstract class LanguageCheckService {
6+
/// Gets the current language code used for language checking.
7+
///
8+
/// Returns a string representing the language code (e.g., 'en-US', 'de-DE').
9+
String get language;
10+
11+
/// Sets the language code to be used for language checking.
12+
///
13+
/// [language] A string representing the language code (e.g., 'en-US', 'de-DE').
14+
/// This determines which language rules will be applied during text analysis.
15+
set language(String language);
16+
617
/// Creates a new instance of the [LanguageCheckService] class.
718
const LanguageCheckService();
819

lib/src/implementations/lang_tool_service.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ class LangToolService extends LanguageCheckService {
99
/// An instance of this class that is used to interact with LanguageTool API.
1010
final LanguageToolClient languageTool;
1111

12+
@override
13+
String get language => languageTool.language;
14+
15+
@override
16+
set language(String language) {
17+
languageTool.language = language;
18+
}
19+
1220
/// Creates a new instance of the [LangToolService].
1321
LangToolService(this.languageTool);
1422

0 commit comments

Comments
 (0)