private void RegisterEntityBoundaries()
        {
            // Register the entity boundaries for the line separators
            XDocument xDocument = GetDocument();

            if (xDocument == null)
            {
                return;
            }
            xDocument.Entities = _sourceWalker.EntityList;
            foreach (var entity in _sourceWalker.EntityList)
            {
                var line = entity.Range.StartLine;
                if (entity.StartOfXmlComments > 0 && !string.IsNullOrEmpty(entity.XmlComments))
                {
                    line = entity.StartOfXmlComments;
                }
                if (entity.SingleLine)
                {
                    lineState.SetFlags(line, LineFlags.SingleLineEntity);
                }
                else
                {
                    lineState.SetFlags(line, LineFlags.EntityStart);
                }
            }
            lineState.Snapshot = this.Snapshot;
            LineStateChanged?.Invoke(this, new EventArgs());
        }
        private void Client_LineStateChanged(string id, LineStateChanged e)
        {
            if (e.Index >= Lines.Count)
            {
                return;
            }

            Line line = Lines[e.Index];

            line.State = e.State;

            if (e.State == LineState.Empty)
            {
                line.Caller = null;
                if (Role == Role.Screener)
                {
                    Screener.Line = null;
                }
            }

            elements[line].Update();
        }