summaryrefslogtreecommitdiffstats
path: root/webapp/utils/syntax_hightlighting.jsx
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2016-05-31 10:37:59 -0400
committerHarrison Healey <harrisonmhealey@gmail.com>2016-05-31 10:37:59 -0400
commit4a326dd6ce29c7ff62e0f620e8cdca920e1f3016 (patch)
tree9a1af026012651f9a5e55c79c426115003843ede /webapp/utils/syntax_hightlighting.jsx
parent397e0a3f683e324ce2d4d16c8a7f3f9346c8566b (diff)
downloadchat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.tar.gz
chat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.tar.bz2
chat-4a326dd6ce29c7ff62e0f620e8cdca920e1f3016.zip
PLT-1626/PLT-1424/PLT-1473/PLT-1483 Improved search highlighting (#3171)
* PLT-1626 Stopped breaking up hyphenated hashtags when highlighting search terms * Made hashtag search highlighting case independent * PLT-1424 Improved search highlighting when searching for CJK characters * PLT-1473 Added search term highlighting to single-line code blocks * PLT-1473 Added search term highlighting to code blocks that don't use syntax highlighting * PLT-1483 Added proper highlighting of at mentions * Fixing formatting
Diffstat (limited to 'webapp/utils/syntax_hightlighting.jsx')
-rw-r--r--webapp/utils/syntax_hightlighting.jsx9
1 files changed, 7 insertions, 2 deletions
diff --git a/webapp/utils/syntax_hightlighting.jsx b/webapp/utils/syntax_hightlighting.jsx
index 882afe67f..33b3e2d3d 100644
--- a/webapp/utils/syntax_hightlighting.jsx
+++ b/webapp/utils/syntax_hightlighting.jsx
@@ -123,10 +123,12 @@ hlJS.registerLanguage('yaml', hljsYaml);
const HighlightedLanguages = Constants.HighlightedLanguages;
-export function formatCode(lang, data, filename) {
+export function formatCode(lang, data, filename, searchTerm) {
const language = lang.toLowerCase() || '';
+
let contents;
let header = '';
+ let className = 'post-code';
if (HighlightedLanguages[language]) {
let name = HighlightedLanguages[language].name;
@@ -147,10 +149,13 @@ export function formatCode(lang, data, filename) {
contents = TextFormatting.sanitizeHtml(data);
}
- let className = 'post-code';
if (!language) {
// wrap when no language is specified
className += ' post-code--wrap';
+
+ const tokens = new Map();
+ contents = TextFormatting.highlightSearchTerms(contents, tokens, searchTerm);
+ contents = TextFormatting.replaceTokens(contents, tokens);
}
if (filename) {