parent
e23d4b9a82
commit
658e5ddff1
@ -116,7 +116,7 @@ function docSentenceExtract(source, extent) {
|
||||
const sourceLocal = source.clone();
|
||||
const position = sourceLocal.setStartOffset(extent);
|
||||
sourceLocal.setEndOffset(position + extent);
|
||||
const content = sourceLocal.text();
|
||||
const {text: content} = sourceLocal.text();
|
||||
|
||||
let quoteStack = [];
|
||||
|
||||
|
@ -311,10 +311,18 @@ class Frontend {
|
||||
async searchTerms(textSource) {
|
||||
textSource.setEndOffset(this.options.scanning.length);
|
||||
|
||||
const {definitions, length} = await apiTermsFind(textSource.text());
|
||||
const {text, strippedIndices} = textSource.text();
|
||||
let {definitions, length} = await apiTermsFind(text);
|
||||
if (definitions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
for (let index of strippedIndices) {
|
||||
if (index < length) {
|
||||
length++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
textSource.setEndOffset(length);
|
||||
|
||||
@ -338,7 +346,8 @@ class Frontend {
|
||||
async searchKanji(textSource) {
|
||||
textSource.setEndOffset(1);
|
||||
|
||||
const definitions = await apiKanjiFind(textSource.text());
|
||||
const {text} = textSource.text();
|
||||
const definitions = await apiKanjiFind(text);
|
||||
if (definitions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
@ -16,6 +16,9 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// \u200c (Zero-width non-joiner) appears on Google Docs from Chrome 76 onwards
|
||||
const IGNORE_TEXT_PATTERN = /\u200c/g;
|
||||
|
||||
|
||||
/*
|
||||
* TextSourceRange
|
||||
@ -32,7 +35,13 @@ class TextSourceRange {
|
||||
}
|
||||
|
||||
text() {
|
||||
return this.content;
|
||||
let strippedIndices = [];
|
||||
const text = this.content.replace(IGNORE_TEXT_PATTERN, (match, offset) => {
|
||||
strippedIndices.push(offset);
|
||||
return '';
|
||||
});
|
||||
|
||||
return {text, strippedIndices};
|
||||
}
|
||||
|
||||
setEndOffset(length) {
|
||||
@ -195,7 +204,13 @@ class TextSourceElement {
|
||||
}
|
||||
|
||||
text() {
|
||||
return this.content;
|
||||
let strippedIndices = [];
|
||||
const text = this.content.replace(IGNORE_TEXT_PATTERN, (match, offset) => {
|
||||
strippedIndices.push(offset);
|
||||
return '';
|
||||
});
|
||||
|
||||
return {text, strippedIndices};
|
||||
}
|
||||
|
||||
setEndOffset(length) {
|
||||
|
@ -83,7 +83,8 @@ class Display {
|
||||
const textSource = docRangeFromPoint({x: e.clientX, y: e.clientY});
|
||||
textSource.setEndOffset(this.options.scanning.length);
|
||||
|
||||
const {definitions, length} = await apiTermsFind(textSource.text());
|
||||
const {text} = textSource.text();
|
||||
const {definitions, length} = await apiTermsFind(text);
|
||||
if (definitions.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user