diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-06-21 16:07:51 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-21 16:07:51 -0400 | 
| commit | e23504613f8526b90a497512c086ed48e66cde95 (patch) | |
| tree | 98db1a607ba40659d727e0083f2e45032a53e3a9 /ext/fg/js/frontend.js | |
| parent | 4ebee3e17c2d536da7de33d16c2e44c54c4c8e51 (diff) | |
Use DOMTextScanner (#536)
* Use DOMTextScanner instead of TextSourceRange.seek*
* Move getNodesInRange to dom.js
* Move anyNodeMatchesSelector to dom.js
* Remove unused functions
* Update tests
* Add layoutAwareScan option
* Use layoutAwareScan for source and sentence scanning
* Remove unused IGNORE_TEXT_PATTERN
Diffstat (limited to 'ext/fg/js/frontend.js')
| -rw-r--r-- | ext/fg/js/frontend.js | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 70bd8a48..ab455c09 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -258,32 +258,36 @@ class Frontend {      }      async _findTerms(textSource, optionsContext) { -        const searchText = this._textScanner.getTextSourceContent(textSource, this._options.scanning.length); +        const {length: scanLength, layoutAwareScan} = this._options.scanning; +        const searchText = this._textScanner.getTextSourceContent(textSource, scanLength, layoutAwareScan);          if (searchText.length === 0) { return null; }          const {definitions, length} = await api.termsFind(searchText, {}, optionsContext);          if (definitions.length === 0) { return null; } -        textSource.setEndOffset(length); +        textSource.setEndOffset(length, layoutAwareScan);          return {definitions, type: 'terms'};      }      async _findKanji(textSource, optionsContext) { -        const searchText = this._textScanner.getTextSourceContent(textSource, 1); +        const layoutAwareScan = this._options.scanning.layoutAwareScan; +        const searchText = this._textScanner.getTextSourceContent(textSource, 1, layoutAwareScan);          if (searchText.length === 0) { return null; }          const definitions = await api.kanjiFind(searchText, optionsContext);          if (definitions.length === 0) { return null; } -        textSource.setEndOffset(1); +        textSource.setEndOffset(1, layoutAwareScan);          return {definitions, type: 'kanji'};      }      _showContent(textSource, focus, definitions, type, optionsContext) {          const {url} = optionsContext; -        const sentence = docSentenceExtract(textSource, this._options.anki.sentenceExt); +        const sentenceExtent = this._options.anki.sentenceExt; +        const layoutAwareScan = this._options.scanning.layoutAwareScan; +        const sentence = docSentenceExtract(textSource, sentenceExtent, layoutAwareScan);          this._showPopupContent(              textSource,              optionsContext, |