diff --git a/lib/widgets/markdown_toolbar.dart b/lib/widgets/markdown_toolbar.dart index 64159688..83e0aab1 100644 --- a/lib/widgets/markdown_toolbar.dart +++ b/lib/widgets/markdown_toolbar.dart @@ -132,14 +132,15 @@ TextEditingValue modifyCurrentWord( } //print('CursorPos: $cursorPos'); - var wordStartPos = text.lastIndexOf(' ', cursorPos == 0 ? 0 : cursorPos - 1); + var wordStartPos = + text.lastIndexOf(RegExp('\\s'), cursorPos == 0 ? 0 : cursorPos - 1); if (wordStartPos == -1) { wordStartPos = 0; } else { wordStartPos += 1; } - var wordEndPos = text.indexOf(' ', cursorPos); + var wordEndPos = text.indexOf(RegExp('\\s'), cursorPos); if (wordEndPos == -1) { wordEndPos = text.length; } diff --git a/test/markdown_toolbar_test.dart b/test/markdown_toolbar_test.dart index ca027a84..ce9bf2f1 100644 --- a/test/markdown_toolbar_test.dart +++ b/test/markdown_toolbar_test.dart @@ -167,6 +167,16 @@ void main() { ); }); + test("Surrounds the middle word with a newline", () { + _testWord( + before: 'Hello\nHydra Person', + beforeOffset: 8, + after: 'Hello\n**Hydra** Person', + afterOffset: 13, + char: '**', + ); + }); + // // Navigation //