diff options
Diffstat (limited to 'ext/fg/js/source.js')
| -rw-r--r-- | ext/fg/js/source.js | 19 | 
1 files changed, 17 insertions, 2 deletions
| diff --git a/ext/fg/js/source.js b/ext/fg/js/source.js index 664dbec7..cd8f63fd 100644 --- a/ext/fg/js/source.js +++ b/ext/fg/js/source.js @@ -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) { |