Esempio n. 1
0
        private static CompletionAnalysis TrySpecialCompletions(ReverseExpressionParser parser, Span loc)
        {
            if (parser.Tokens.Count > 0)
            {
                // Check for context-sensitive intellisense
                var lastClass = parser.Tokens[parser.Tokens.Count - 1];

                if (lastClass.ClassificationType == parser.Classifier.Provider.Comment)
                {
                    // No completions in comments
                    return(CompletionAnalysis.EmptyCompletionContext);
                }
                else if (lastClass.ClassificationType == parser.Classifier.Provider.StringLiteral)
                {
                    // String completion
                    return(new StringLiteralCompletionList(lastClass.Span.GetText(), loc.Start, parser.Span, parser.Buffer));
                }

                // Import completions
                var first = parser.Tokens[0];
                if (CompletionAnalysis.IsKeyword(first, "import"))
                {
                    return(ImportCompletionAnalysis.Make(first, lastClass, loc, parser.Snapshot, parser.Span, parser.Buffer, IsSpaceCompletion(parser, loc)));
                }
                else if (CompletionAnalysis.IsKeyword(first, "from"))
                {
                    return(FromImportCompletionAnalysis.Make(parser.Tokens, first, loc, parser.Snapshot, parser.Span, parser.Buffer, IsSpaceCompletion(parser, loc)));
                }
                return(null);
            }

            return(CompletionAnalysis.EmptyCompletionContext);
        }
Esempio n. 2
0
 private static IEnumerable<string> GetCompletionNames(CompletionAnalysis analysis) {
     return GetCompletionNames(analysis.GetCompletions(new MockGlyphService()));
 }