public Config Clone()
        {
            var ret = new Config {
                SelectedParserName       = SelectedParserName,
                SelectedLexerName        = SelectedLexerName,
                ShowTextTokens           = ShowTextTokens,
                ShowErrorTokens          = ShowErrorTokens,
                ShowWhitespaceTokens     = ShowWhitespaceTokens,
                ShowTreeTextTokens       = ShowTreeTextTokens,
                ShowTreeErrorTokens      = ShowTreeErrorTokens,
                ShowTreeWhitespaceTokens = ShowTreeWhitespaceTokens,
                ShowRuleContextNodes     = ShowRuleContextNodes,
                WatchBaseExpression      = WatchBaseExpression
            };

            SelectedTokenTypes.AddRangeTo(ret.SelectedTokenTypes);
            SelectedRuleContexts.AddRangeTo(ret.SelectedRuleContexts);
            return(ret);
        }
 public bool HasTreeFilter() => !(ShowTreeErrorTokens && ShowTreeWhitespaceTokens && ShowTreeTextTokens && ShowRuleContextNodes && SelectedRuleContexts.None());