Example #1
0
        public static string FindMemberExpression(
            AmbientParser.IUnoCodeReader codeReader,
            out int rangeStart,
            out int rangeLength,
            CodeCompleter.CodeCompleter cc)
        {
            rangeStart  = codeReader.Offset;
            rangeLength = codeReader.Offset;

            // Skip to end of identifier;
            while (true)
            {
                var cs = codeReader.PeekText(1);
                if (string.IsNullOrEmpty(cs))
                {
                    return(null);
                }
                var c = cs[0];
                if (char.IsLetterOrDigit(c) || c == '_')
                {
                    codeReader.ReadText(1);
                }
                else
                {
                    break;
                }
            }
            int rangeEnd = codeReader.Offset;

            if (cc.Context.NodePath == null)
            {
                return(null);
            }

            TokenType tt;
            var       memberExp = cc.FindMemberExpression(out tt, false, false);

            rangeStart  = rangeEnd - memberExp.Length;
            rangeLength = memberExp.Length;

            return(memberExp);
        }