From f7eea3bd9d15f8a4c52abcfa7967aae7e3f5b77b Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Wed, 10 Sep 2025 08:37:02 -0700 Subject: [PATCH 1/4] Fix LT-22280: Yellow box when parsing a text --- .../XAmplePropertiesXAmpleDataFilesAugmenter.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs index 22061bec81..a10d3c62f5 100644 --- a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs +++ b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs @@ -186,12 +186,14 @@ private static void BuildAllomorphPropertyMapper( foreach (ICmObject obj in refObjs) { var sHvo = obj.Hvo.ToString(); - if (!allomorphHvoPropertyMapper.ContainsKey(sHvo)) + var hvoMatch = " {" + sHvo + "}"; + var replaceWith = hvoMatch + " " + prop.Name.AnalysisDefaultWritingSystem.Text; + if (!allomorphHvoPropertyMapper.ContainsKey(hvoMatch)) { - var hvoMatch = " {" + sHvo + "}"; - var replaceWith = - hvoMatch + " " + prop.Name.AnalysisDefaultWritingSystem.Text; allomorphHvoPropertyMapper.Add(hvoMatch, replaceWith); + } else if (allomorphHvoPropertyMapper[hvoMatch] != replaceWith) + { + throw new ArgumentException("Conflicting allomorph properties for " + obj.Guid.ToString() + ": " + replaceWith + " and " + allomorphHvoPropertyMapper[hvoMatch]); } } } From b1a1723c9925f16f7aa92f0416e3ed9586bf8237 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Wed, 10 Sep 2025 09:31:24 -0700 Subject: [PATCH 2/4] Improve error message --- .../XAmplePropertiesXAmpleDataFilesAugmenter.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs index a10d3c62f5..646daf1e65 100644 --- a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs +++ b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs @@ -149,7 +149,7 @@ private void AddXAmplePropertiesToLexiconFile() list.Name.BestAnalysisAlternative.Text == customListName ); - BuildAllomorphPropertyMapper(allomorphHvoPropertyMapper, customList); + BuildAllomorphPropertyMapper(allomorphHvoPropertyMapper, customList, customListName); BuildMorphemePropertyMapper(morphemePropertyMapper, customList); // Add allomorph properties var lexWithAlloProps = allomorphHvoPropertyMapper.Aggregate( @@ -178,7 +178,7 @@ private void CreateXAmpleTempFileAndCopyBack(string xAmpleFile, string tempExten private static void BuildAllomorphPropertyMapper( Dictionary allomorphHvoPropertyMapper, - ICmPossibilityList customList) + ICmPossibilityList customList, string customListName) { foreach (var prop in customList.PossibilitiesOS) { @@ -193,12 +193,21 @@ private static void BuildAllomorphPropertyMapper( allomorphHvoPropertyMapper.Add(hvoMatch, replaceWith); } else if (allomorphHvoPropertyMapper[hvoMatch] != replaceWith) { - throw new ArgumentException("Conflicting allomorph properties for " + obj.Guid.ToString() + ": " + replaceWith + " and " + allomorphHvoPropertyMapper[hvoMatch]); + throw new ArgumentException("Conflicting " + customListName + " for " + LexEntryName(obj) + " (" + obj.Guid.ToString() + "): " + replaceWith + " and " + allomorphHvoPropertyMapper[hvoMatch]); } } } } + private static string LexEntryName(ICmObject obj) + { + if (obj.ClassName == "MoAffixAllomorph") + { + return ((IMoAffixAllomorph)obj).LongName; + } + return "***"; + } + private static void BuildMorphemePropertyMapper( Dictionary morphemePropertyMapper, ICmPossibilityList customList From fad47c7829bc30001745c0c76159397fd197e8bd Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Wed, 10 Sep 2025 10:06:14 -0700 Subject: [PATCH 3/4] Clear task report message when finished --- Src/LexText/ParserUI/ParserConnection.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Src/LexText/ParserUI/ParserConnection.cs b/Src/LexText/ParserUI/ParserConnection.cs index a4ad18cee0..7733c3304b 100644 --- a/Src/LexText/ParserUI/ParserConnection.cs +++ b/Src/LexText/ParserUI/ParserConnection.cs @@ -153,6 +153,8 @@ public void ParserUpdateHandlerForPolling(object sender, ParserUpdateEventArgs a { //store this for clients which just want to poll us, instead of wiring up to the event m_activity = args.Task.Description; + if (args.Task.Phase == TaskReport.TaskPhase.Finished) + m_activity = ""; //keeps us from getting the notification at the end of the task. if (args.Task.NotificationMessage != null && args.Task.Phase != TaskReport.TaskPhase.Finished) m_notificationMessage = args.Task.NotificationMessage; From f52d9eced57ecc37e03d1b662c6ded315135d6ea Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Fri, 12 Sep 2025 08:20:08 -0700 Subject: [PATCH 4/4] Append additional properties --- .../ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs index 646daf1e65..d7d0e1b0b9 100644 --- a/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs +++ b/Src/LexText/ParserCore/XAmplePropertiesXAmpleDataFilesAugmenter.cs @@ -187,13 +187,14 @@ private static void BuildAllomorphPropertyMapper( { var sHvo = obj.Hvo.ToString(); var hvoMatch = " {" + sHvo + "}"; - var replaceWith = hvoMatch + " " + prop.Name.AnalysisDefaultWritingSystem.Text; if (!allomorphHvoPropertyMapper.ContainsKey(hvoMatch)) { + var replaceWith = hvoMatch + " " + prop.Name.AnalysisDefaultWritingSystem.Text; allomorphHvoPropertyMapper.Add(hvoMatch, replaceWith); - } else if (allomorphHvoPropertyMapper[hvoMatch] != replaceWith) + } else { - throw new ArgumentException("Conflicting " + customListName + " for " + LexEntryName(obj) + " (" + obj.Guid.ToString() + "): " + replaceWith + " and " + allomorphHvoPropertyMapper[hvoMatch]); + // Append the new value to the existing value. + allomorphHvoPropertyMapper[hvoMatch] += " " + prop.Name.AnalysisDefaultWritingSystem.Text; } } }