private ITokenNode GetTokenNode(CodeCompletionContext context)
        {
            if (!(context.File is ICSharpFile))
            {
                return(null);
            }

            if (!context.SelectedTreeRange.IsValid() || context.SelectedTreeRange.Length > 0)
            {
                return(null);
            }

            if (AutomaticCodeCompletionStrategyEx.MatchTokenType(null, context.File, context.TextControl,
                                                                 token => token == CSharpTokenType.END_OF_LINE_COMMENT && token.IsComment))
            {
                var tokenNode = context.File.FindTokenAt(context.Document, context.TextControl.Caret.Offset() - 1) as ITokenNode;
                if (tokenNode is IDocCommentNode)
                {
                    return(null);
                }
                return(tokenNode);
            }

            return(null);
        }
        protected override bool IsAvailable(ContextInDocComment context)
        {
            if (AutomaticCodeCompletionStrategyEx.MatchTokenType(null, context.BasicContext.File,
                                                                 context.BasicContext.TextControl,
                                                                 token => token == CSharpTokenType.END_OF_LINE_COMMENT))
            {
                return(true);
            }

            return(base.IsAvailable(context));
        }