diff --git a/Src/LexText/ParserCore/FwXmlTraceManager.cs b/Src/LexText/ParserCore/FwXmlTraceManager.cs index ef3466f07c..a0ebf5478c 100644 --- a/Src/LexText/ParserCore/FwXmlTraceManager.cs +++ b/Src/LexText/ParserCore/FwXmlTraceManager.cs @@ -407,11 +407,12 @@ private static XElement CreateWordElement(string name, Word word, bool analysis, private static string ToBracketedString(IEnumerable nodes, CharacterDefinitionTable table) { + // This should be in defined as Shape.ToBracketedString in HermitCrab. StringBuilder stringBuilder = new StringBuilder(); foreach (ShapeNode node in nodes) { string text = table.GetMatchingStrReps(node).FirstOrDefault(); - if (text != null) + if (text != null && !IsDeleted(node)) { if (text.Length > 1) text = "(" + text + ")"; @@ -422,6 +423,18 @@ private static string ToBracketedString(IEnumerable nodes, CharacterD return stringBuilder.ToString(); } + private static bool IsDeleted(ShapeNode node) + { + // ShapeNode.IsDeleted is copied here since it is inaccessible from FieldWorks. + Annotation ann = node.Annotation; + if (ann.FeatureStruct.TryGetValue(HCFeatureSystem.Deletion, out var value)) + { + return (FeatureSymbol)value == HCFeatureSystem.Deleted; + } + + return false; + } + private XElement CreateMorphemeElement(Morpheme morpheme) { var msaID = (int?) morpheme.Properties[HCParser.MsaID] ?? 0;