diff options
author | Cashew <52880648+cashewnuttynuts@users.noreply.github.com> | 2024-06-01 08:58:41 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-31 23:58:41 +0000 |
commit | b6341f312d8332ccff0d928d936e9290da0e9584 (patch) | |
tree | afbe836ced6f9fdee9423bdf3b4384769b025283 /ext/js/language/ja | |
parent | 76ca08bd59f0e8bfa1bb20ac813f48e7ab241265 (diff) |
Add isTextLookupWorthy function for Chinese (#743)
* add is Chinese check move
* fix lint
* fix lint
* fixes
---------
Co-authored-by: Darius Jahandarie <djahandarie@gmail.com>
Co-authored-by: Stefan Vukovic <stefanvukovic44@gmail.com>
Diffstat (limited to 'ext/js/language/ja')
-rw-r--r-- | ext/js/language/ja/japanese.js | 69 |
1 files changed, 8 insertions, 61 deletions
diff --git a/ext/js/language/ja/japanese.js b/ext/js/language/ja/japanese.js index bad773b3..3a009ebb 100644 --- a/ext/js/language/ja/japanese.js +++ b/ext/js/language/ja/japanese.js @@ -15,6 +15,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import {CJK_IDEOGRAPH_RANGES, isCodePointInRange, isCodePointInRanges} from '../CJK-util.js'; + const HIRAGANA_SMALL_TSU_CODE_POINT = 0x3063; const KATAKANA_SMALL_TSU_CODE_POINT = 0x30c3; @@ -22,53 +24,22 @@ const KATAKANA_SMALL_KA_CODE_POINT = 0x30f5; const KATAKANA_SMALL_KE_CODE_POINT = 0x30f6; const KANA_PROLONGED_SOUND_MARK_CODE_POINT = 0x30fc; -/** @type {import('japanese-util').CodepointRange} */ +/** @type {import('CJK-util').CodepointRange} */ const HIRAGANA_RANGE = [0x3040, 0x309f]; -/** @type {import('japanese-util').CodepointRange} */ +/** @type {import('CJK-util').CodepointRange} */ const KATAKANA_RANGE = [0x30a0, 0x30ff]; -/** @type {import('japanese-util').CodepointRange} */ +/** @type {import('CJK-util').CodepointRange} */ const HIRAGANA_CONVERSION_RANGE = [0x3041, 0x3096]; -/** @type {import('japanese-util').CodepointRange} */ +/** @type {import('CJK-util').CodepointRange} */ const KATAKANA_CONVERSION_RANGE = [0x30a1, 0x30f6]; -/** @type {import('japanese-util').CodepointRange[]} */ +/** @type {import('CJK-util').CodepointRange[]} */ const KANA_RANGES = [HIRAGANA_RANGE, KATAKANA_RANGE]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_RANGE = [0x4e00, 0x9fff]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A_RANGE = [0x3400, 0x4dbf]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B_RANGE = [0x20000, 0x2a6df]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C_RANGE = [0x2a700, 0x2b73f]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D_RANGE = [0x2b740, 0x2b81f]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E_RANGE = [0x2b820, 0x2ceaf]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F_RANGE = [0x2ceb0, 0x2ebef]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_COMPATIBILITY_IDEOGRAPHS_RANGE = [0xf900, 0xfaff]; -/** @type {import('japanese-util').CodepointRange} */ -const CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT_RANGE = [0x2f800, 0x2fa1f]; -/** @type {import('japanese-util').CodepointRange[]} */ -const CJK_IDEOGRAPH_RANGES = [ - CJK_UNIFIED_IDEOGRAPHS_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E_RANGE, - CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F_RANGE, - CJK_COMPATIBILITY_IDEOGRAPHS_RANGE, - CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT_RANGE, -]; - /** * Japanese character ranges, roughly ordered in order of expected frequency. - * @type {import('japanese-util').CodepointRange[]} + * @type {import('CJK-util').CodepointRange[]} */ const JAPANESE_RANGES = [ HIRAGANA_RANGE, @@ -184,30 +155,6 @@ for (let i = 0, ii = kana.length; i < ii; i += 3) { } } - -/** - * @param {number} codePoint - * @param {import('japanese-util').CodepointRange} range - * @returns {boolean} - */ -function isCodePointInRange(codePoint, [min, max]) { - return (codePoint >= min && codePoint <= max); -} - -/** - * @param {number} codePoint - * @param {import('japanese-util').CodepointRange[]} ranges - * @returns {boolean} - */ -function isCodePointInRanges(codePoint, ranges) { - for (const [min, max] of ranges) { - if (codePoint >= min && codePoint <= max) { - return true; - } - } - return false; -} - /** * @param {string} previousCharacter * @returns {?string} |