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); }
private static IEnumerable<string> GetCompletionNames(CompletionAnalysis analysis) { return GetCompletionNames(analysis.GetCompletions(new MockGlyphService())); }