From bc2a17bb27a62a611e87dfa1a3bb3f2d1eed135c Mon Sep 17 00:00:00 2001
From: Ruben Bimberg <ruben.bimberg@mni.thm.de>
Date: Wed, 4 Aug 2021 11:21:07 +0200
Subject: [PATCH] Fix incorrect error display for ascii emojis

[Merge Request: !120]
---
 src/app/utils/create-comment-keywords.ts | 4 +++-
 src/app/utils/grammar-checker.ts         | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/app/utils/create-comment-keywords.ts b/src/app/utils/create-comment-keywords.ts
index 27f6c888e..ab65318b4 100644
--- a/src/app/utils/create-comment-keywords.ts
+++ b/src/app/utils/create-comment-keywords.ts
@@ -24,15 +24,17 @@ export class CreateCommentKeywords {
     );
   }
 
-  static cleaningFunction(text: string): string {
+  static cleaningFunction(text: string, removeAsciiNamedEmojis = false): string {
     // eslint-disable-next-line max-len
     const regexEmoji = new RegExp('\uD918\uDD28|\ufe0f|\u200D|\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]', 'g');
     const regexKatex = new RegExp('\\$[^$\\n ]+\\$|\\$\\$[^$\\n ]+\\$\\$', 'g');
     const regexMarkdown = new RegExp('(?:__|[*#])|\\[(.+?)]\\((.+?)\\)', 'g');
     const regexBlank = new RegExp('[\\s]{2,}', 'gu');
+    const regexAsciiNamedEmojis = new RegExp(':([a-z0-9_]+):', 'g');
     text = text.replace(regexKatex, '');
     text = text.replace(regexEmoji, '');
     text = text.replace(regexMarkdown, '');
+    text = text.replace(regexAsciiNamedEmojis, removeAsciiNamedEmojis ? '' : '$1');
     text = text.replace(regexBlank, ' ');
     return text;
   }
diff --git a/src/app/utils/grammar-checker.ts b/src/app/utils/grammar-checker.ts
index 9e40714c8..598d18357 100644
--- a/src/app/utils/grammar-checker.ts
+++ b/src/app/utils/grammar-checker.ts
@@ -56,7 +56,7 @@ export class GrammarChecker {
     this.isSpellchecking = true;
     this.hasSpellcheckConfidence = true;
     const unfilteredText = commentBody.innerText;
-    const text = CreateCommentKeywords.cleaningFunction(commentBody.innerText);
+    const text = CreateCommentKeywords.cleaningFunction(commentBody.innerText, true);
     this.checkSpellings(text).subscribe((wordsCheck) => {
       if (!this.checkLanguageConfidence(wordsCheck)) {
         this.hasSpellcheckConfidence = false;
-- 
GitLab