public override string GetTextRepresentation(VSTREETEXTOPTIONS options)
        {
            FunctionScopeNode funcScope = ScopeNode as FunctionScopeNode;

            if (funcScope != null)
            {
                StringBuilder sb = new StringBuilder();
                GetFunctionDescription(funcScope.Definition, (text, kind, arg) => {
                    sb.Append(text);
                });
                return(sb.ToString());
            }

            return(Name);
        }
        public override void FillDescription(_VSOBJDESCOPTIONS flags, IVsObjectBrowserDescription3 description)
        {
            description.ClearDescriptionText();
            FunctionScopeNode funcScope = ScopeNode as FunctionScopeNode;

            if (funcScope != null)
            {
                description.AddDescriptionText3("def ", VSOBDESCRIPTIONSECTION.OBDS_MISC, null);
                var def = funcScope.Definition;
                GetFunctionDescription(def, (text, kind, arg) => {
                    description.AddDescriptionText3(text, kind, arg);
                });
                description.AddDescriptionText3(null, VSOBDESCRIPTIONSECTION.OBDS_ENDDECL, null);
                if (def.Body.Documentation != null)
                {
                    description.AddDescriptionText3("    " + def.Body.Documentation, VSOBDESCRIPTIONSECTION.OBDS_MISC, null);
                }
            }
            else
            {
                var classScope = ScopeNode as ClassScopeNode;
                if (classScope != null)
                {
                    FillClassDescription(description, classScope);
                }
                else
                {
                    var assign = ScopeNode as AssignmentScopeNode;
                    if (assign != null)
                    {
                        description.AddDescriptionText3("field ", VSOBDESCRIPTIONSECTION.OBDS_MISC, null);
                        description.AddDescriptionText3(assign.Name, VSOBDESCRIPTIONSECTION.OBDS_NAME, null);
                        description.AddDescriptionText3("\n", VSOBDESCRIPTIONSECTION.OBDS_MISC, null);
                        description.AddDescriptionText3(null, VSOBDESCRIPTIONSECTION.OBDS_ENDDECL, null);
                    }
                }
            }
        }