קישורים: חיפוש בתוכן דרך מונה המפרשים, בלי השוואת מחרוזת ידנית - #1170
קישורים: חיפוש בתוכן דרך מונה המפרשים, בלי השוואת מחרוזת ידנית#1170yakov100 wants to merge 2 commits into
Conversation
…tzaria#1114) הסינון השווה contains על הטקסט הגולמי, ולכן החמיץ כל תוכן מנוקד — המסלול היחיד באפליקציה שלא הסיר ניקוד לפני התאמה. ההדגשה באותו רכיב כבר עברה במנוע, כך שקישור שכן נמצא הודגש נכון; רק הסינון פסל אותו קודם. partialWordHighlight מסונכרן עם partialWordMatch של הסינון, אחרת קישור נכנס לרשימה בלי שההתאמה שהכניסה אותו מודגשת בו (הלקח מ-issue Otzaria#1055). normalizeSelectedLinkText נמחקת — הסינון היה השימוש היחיד בה. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e42262c9b8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| final matches = countCommentarySearchMatches( | ||
| content: content, |
There was a problem hiding this comment.
נרמל את ה־HTML לפני ספירת ההתאמות
כאשר תוכן קישור מכיל ישות HTML בין מילים, למשל ודר שאל, חיפוש הביטוי הגלוי ודר שאל מפסיק למצוא אותו: כעת מועבר למונה התוכן הגולמי, ואילו countCommentarySearchMatches מסיר רק ניקוד ופיסוק ואינו מפענח ישויות או מסיר תגיות. המסלול הקודם הפעיל stripHtmlIfNeeded והמיר לרווח, ואף הייתה לכך בדיקה ייעודית שנמחקה בשינוי; יש לנרמל את התוכן לפני הקריאה למונה כדי לא לאבד חיפושים בתוכן HTML.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
תודה — בדקתי את שני המקרים בטסט, ואחד מהם אכן נשבר.
בין מילים — צדקת. countCommentarySearchMatches מסיר ניקוד ופיסוק בלבד, ותוכן ודר שאל הפסיק להיענות לשאילתה ודר שאל. רגרסיה אמיתית מול המסלול הקודם.
תגית inline — לא נשבר. אמר <b>רבי</b> יוסי מול השאילתה אמר רבי נמצא גם בלי הסרת תגיות.
תוקן ב-3a41d85: stripHtmlIfNeeded לפני הקריאה למונה — הוא גם מפענח ישויות וגם מסיר תגיות. נוספו שני טסטים שמכסים את שני המקרים; הראשון היה אדום לפני התיקון. 660 טסטים באזור עוברים.
`countCommentarySearchMatches` מסיר ניקוד ופיסוק בלבד, ולכן ` ` בין שתי מילים חסם ביטוי שהמשתמש רואה כרווח רגיל. `stripHtmlIfNeeded` מפענח ישויות ומסיר תגיות, ומחזיר את ההתנהגות שהייתה לפני המעבר למונה. טסטים: ישות בין מילים, ותגית inline בתוך ביטוי. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
מה השינוי?
חיפוש בתוכן הקישורים החמיץ כל תוכן מנוקד — פסוקים, משניות, ציטוטים. מקלידים
אלהים, בתוכן כתובאֱלֹהִים, והתשובה היא "לא נמצאו קישורים התואמים לחיפוש". בטקסט לא מנוקד (גמרא, ראשונים, הלכה) החיפוש עבד, ולכן הבאג לא בלט.השורש:
_filterLinksAsyncהשוותהcleanContent.contains(query)על הטקסט הגולמי, כש-normalizeSelectedLinkTextרק מכווצת רווחים. זה היה המסלול היחיד באפליקציה שלא הסיר ניקוד לפני התאמה — 20 קבצים אחרים קוראים ל-removeVolwels, כולל חיפוש בתוך ספר, חיפוש ב-PDF וחיפוש בתוכן המפרשים.באותו רכיב עצמו ההדגשה כבר עברה דרך המנוע, כך שקישור שכן נמצא הודגש נכון — רק הסינון פסל אותו קודם.
התיקון: החלפת ההשוואה הידנית בקריאה ל-
countCommentarySearchMatches, אותה פונקציה שחיפוש המפרשים כבר משתמש בה היום על אותם אובייקטיLink. עם זה נפתרים גם פיסוק, מעברי שורה וגמישות ההתאמה, שנבעו מאותו שורש.partialWordHighlightסונכרן עםpartialWordMatchשל הסינון, אחרת קישור נכנס לרשימה בלי שההתאמה שהכניסה אותו מודגשת בו (הלקח מ-issue #1055).normalizeSelectedLinkTextנמחקה — הסינון היה השימוש היחיד בה. נטו פחות קוד בקבצי המקור: +31/−46.בדיקות: טסט חדש
links_content_search_nikud_test.dartעם שני מקרים שנבדלים בניקוד בלבד. לפני התיקון הבקרה עברה והמנוקד נכשל; אחרי — שניהם עוברים. בנוסף הורצוtest/text_book/,test/pdf_book/,test/widgets/— 2,243 טסטים עוברים.הערה למתחזקים: לא ידוע אם הניקוד הוא מה שהמדווח ב-#1114 נתקל בו — הוא כתב רק "טקסט שודאי מופיע". הפגם עצמו הוכח ותוקן; אם הבעיה שלו נמשכת, כדאי לשאול אותו איזה טקסט ובאיזה ספר חיפש.
קישור לבעיה
Fixes #1114
הצהרות התורם
flutter analyzeעל הקוד ואין שגיאותצילומי מסך
אין שינוי חזותי — הפריסה, הצבעים והרכיבים זהים. השינוי הוא בלוגיקת ההתאמה בלבד: אותו חיפוש שהחזיר "לא נמצאו קישורים" מחזיר עכשיו את הקישורים שבתוכנם המילה מופיעה. ההבדל מודגם ב-
links_content_search_nikud_test.dart, שם שני המקרים נבדלים בניקוד בלבד.🤖 Generated with Claude Code