Skip to content

Commit a1c7541

Browse files
authored
Merge pull request #163 from Onix-Systems/fix/formatters
fix: 'jumping' cursor
2 parents 699940a + 735bc0a commit a1c7541

File tree

5 files changed

+30
-8
lines changed

5 files changed

+30
-8
lines changed

lib/app/util/formatters/first_character_is_not_digit_formatter.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ class FirstCharacterNotDigitFormatter extends TextInputFormatter {
1212
newValue.text[0].contains(RegExp('[0-9]'))) {
1313
return oldValue;
1414
}
15-
return newValue;
15+
return newValue.copyWith(
16+
selection: newValue.selection,
17+
);
1618
}
1719
}

lib/app/util/formatters/lower_case_formatter.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ class LowerCaseFormatter extends TextInputFormatter {
88
TextEditingValue oldValue,
99
TextEditingValue newValue,
1010
) {
11+
final newText = newValue.text.toLowerCase();
1112
return TextEditingValue(
12-
text: newValue.text.toLowerCase(),
13-
selection: newValue.selection,
13+
text: newText,
14+
selection: newValue.selection.copyWith(
15+
baseOffset: newText.length -
16+
(newValue.text.length - newValue.selection.baseOffset),
17+
extentOffset: newText.length -
18+
(newValue.text.length - newValue.selection.extentOffset),
19+
),
1420
);
1521
}
1622
}

lib/app/util/formatters/method_name_formatter.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,12 @@ class MethodNameFormatter extends TextInputFormatter {
2525

2626
return TextEditingValue(
2727
text: text,
28-
selection: TextSelection.collapsed(offset: text.length),
28+
selection: newValue.selection.copyWith(
29+
baseOffset: text.length -
30+
(newValue.text.length - newValue.selection.baseOffset),
31+
extentOffset: text.length -
32+
(newValue.text.length - newValue.selection.extentOffset),
33+
),
2934
);
3035
}
3136
}

lib/app/util/formatters/pascal_case_formatter.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@ class PascalCaseFormatter extends TextInputFormatter {
99
TextEditingValue oldValue,
1010
TextEditingValue newValue,
1111
) {
12+
final newText = newValue.text.pascalCase;
1213
return TextEditingValue(
13-
text: newValue.text.pascalCase,
14-
selection: newValue.selection,
14+
text: newText,
15+
selection: newValue.selection.copyWith(
16+
baseOffset: newText.length -
17+
(newValue.text.length - newValue.selection.baseOffset),
18+
extentOffset: newText.length -
19+
(newValue.text.length - newValue.selection.extentOffset),
20+
),
1521
);
1622
}
1723
}

lib/app/util/formatters/path_formatter.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,11 @@ class PathFormatter extends TextInputFormatter {
3636

3737
return TextEditingValue(
3838
text: text,
39-
selection: TextSelection.collapsed(
40-
offset: text.length,
39+
selection: newValue.selection.copyWith(
40+
baseOffset: text.length -
41+
(newValue.text.length - newValue.selection.baseOffset),
42+
extentOffset: text.length -
43+
(newValue.text.length - newValue.selection.extentOffset),
4144
),
4245
);
4346
}

0 commit comments

Comments
 (0)