From 5848f2833ae40b73003be1e37dd379dd69c20fcc Mon Sep 17 00:00:00 2001 From: Jan Beckmann Date: Thu, 25 Apr 2019 08:11:20 +0000 Subject: Escape special characters in GFM auto complete highlighting Fixes #60552 --- app/assets/javascripts/gfm_auto_complete.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'app/assets/javascripts/gfm_auto_complete.js') diff --git a/app/assets/javascripts/gfm_auto_complete.js b/app/assets/javascripts/gfm_auto_complete.js index f1e26cdfa21..f437954881c 100644 --- a/app/assets/javascripts/gfm_auto_complete.js +++ b/app/assets/javascripts/gfm_auto_complete.js @@ -477,6 +477,16 @@ class GfmAutoComplete { } return null; }, + highlighter(li, query) { + // override default behaviour to escape dot character + // see https://github.com/ichord/At.js/pull/576 + if (!query) { + return li; + } + const escapedQuery = query.replace(/[.+]/, '\\$&'); + const regexp = new RegExp(`>\\s*([^<]*?)(${escapedQuery})([^<]*)\\s*<`, 'ig'); + return li.replace(regexp, (str, $1, $2, $3) => `> ${$1}${$2}${$3} <`); + }, }; } -- cgit v1.2.1