diff options
| -rw-r--r-- | ext/bg/js/api.js | 33 | ||||
| -rw-r--r-- | ext/bg/js/backend.js | 31 | 
2 files changed, 31 insertions, 33 deletions
| diff --git a/ext/bg/js/api.js b/ext/bg/js/api.js index 7a4c2dcf..3be6ac56 100644 --- a/ext/bg/js/api.js +++ b/ext/bg/js/api.js @@ -41,37 +41,8 @@ function apiTextParse(text, optionsContext) {      return utilBackend()._onApiTextParse({text, optionsContext});  } -async function apiTextParseMecab(text, optionsContext) { -    const options = await apiOptionsGet(optionsContext); -    const mecab = utilBackend().mecab; - -    const results = {}; -    const rawResults = await mecab.parseText(text); -    for (const mecabName in rawResults) { -        const result = []; -        for (const parsedLine of rawResults[mecabName]) { -            for (const {expression, reading, source} of parsedLine) { -                const term = []; -                if (expression !== null && reading !== null) { -                    for (const {text, furigana} of jpDistributeFuriganaInflected( -                        expression, -                        jpKatakanaToHiragana(reading), -                        source -                    )) { -                        const reading = jpConvertReading(text, furigana, options.parsing.readingMode); -                        term.push({text, reading}); -                    } -                } else { -                    const reading = jpConvertReading(source, null, options.parsing.readingMode); -                    term.push({text: source, reading}); -                } -                result.push(term); -            } -            result.push([{text: '\n'}]); -        } -        results[mecabName] = result; -    } -    return results; +function apiTextParseMecab(text, optionsContext) { +    return utilBackend()._onApiTextParseMecab({text, optionsContext});  }  function apiKanjiFind(text, optionsContext) { diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 56bd4fca..67197cf7 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -284,8 +284,35 @@ class Backend {          return results;      } -    _onApiTextParseMecab({text, optionsContext}) { -        return apiTextParseMecab(text, optionsContext); +    async _onApiTextParseMecab({text, optionsContext}) { +        const options = await this.getOptions(optionsContext); +        const results = {}; +        const rawResults = await this.mecab.parseText(text); +        for (const mecabName in rawResults) { +            const result = []; +            for (const parsedLine of rawResults[mecabName]) { +                for (const {expression, reading, source} of parsedLine) { +                    const term = []; +                    if (expression !== null && reading !== null) { +                        for (const {text, furigana} of jpDistributeFuriganaInflected( +                            expression, +                            jpKatakanaToHiragana(reading), +                            source +                        )) { +                            const reading = jpConvertReading(text, furigana, options.parsing.readingMode); +                            term.push({text, reading}); +                        } +                    } else { +                        const reading = jpConvertReading(source, null, options.parsing.readingMode); +                        term.push({text: source, reading}); +                    } +                    result.push(term); +                } +                result.push([{text: '\n'}]); +            } +            results[mecabName] = result; +        } +        return results;      }      _onApiDefinitionAdd({definition, mode, context, optionsContext}) { |