From 239d57c6be8a5a859b7f8d4a66da4e30d17fc7d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=90=E7=9E=BB=20Luci?= <22126563+LuciNyan@users.noreply.github.com> Date: Fri, 3 Mar 2023 18:46:02 +0800 Subject: [PATCH] fix: bread-break keep-all (#415) ### Description Resolved part of the issue. #414 https://user-images.githubusercontent.com/22126563/222655548-b2d65f09-45af-486d-a120-b20538ff4848.mov --- src/text.ts | 3 +-- src/utils.ts | 8 ++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/text.ts b/src/text.ts index 86cb5f03..62b51143 100644 --- a/src/text.ts +++ b/src/text.ts @@ -83,10 +83,9 @@ export default async function* buildTextNodes( } const isBreakWord = wordBreak === 'break-word' - const isBreakAll = wordBreak === 'break-all' const { words, requiredBreaks } = splitByBreakOpportunities( content, - isBreakAll + wordBreak as string ) // Create a container node for this text fragment. diff --git a/src/utils.ts b/src/utils.ts index 777351d1..b11973e0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -404,15 +404,19 @@ export function isString(x: unknown): x is string { export function splitByBreakOpportunities( content: string, - isBreakAll + wordBreak: string ): { words: string[] requiredBreaks: boolean[] } { - if (isBreakAll) { + if (wordBreak === 'break-all') { return { words: segment(content, 'grapheme'), requiredBreaks: [] } } + if (wordBreak === 'keep-all') { + return { words: segment(content, 'word'), requiredBreaks: [] } + } + const breaker = new LineBreaker(content) let last = 0 let bk = breaker.nextBreak()