22 lines
749 B
TypeScript
22 lines
749 B
TypeScript
import type { Token } from '../core/types';
|
|
|
|
export const DEFAULT_TOO_LONG_THRESHOLDS = Object.freeze({ EN: 30, TC: 60 });
|
|
|
|
export function isTooLong(tokens: Token[], lang: 'TC' | 'EN', thresholds: { EN: number; TC: number }): boolean {
|
|
const n = Math.max(0, tokens.length | 0);
|
|
const limit = lang === 'EN' ? thresholds.EN : thresholds.TC;
|
|
return n > limit;
|
|
}
|
|
|
|
export function isLineStartPunctTC(tokens: Token[], nextPos: number, tcPunctuations: string[]): boolean {
|
|
const p = nextPos | 0;
|
|
if (p <= 0) return false;
|
|
const t = tokens[p]?.text ?? '';
|
|
return tcPunctuations.includes(t);
|
|
}
|
|
|
|
export function approxWidth(tokenCount: number, charCount: number, lang: 'TC' | 'EN'): number {
|
|
return lang === 'EN' ? tokenCount : charCount;
|
|
}
|
|
|