public PsiCodeCompletionContext(CodeCompletionContext context, TextLookupRanges completionRanges, PsiReparsedCompletionContext reparsedContext) : base(context) { ReparsedContext = reparsedContext; Ranges = completionRanges; }
public override ISpecificCodeCompletionContext GetCompletionContext(CodeCompletionContext context) { var unterminatedContext = new PsiReparsedCompletionContext(context.File, context.SelectedTreeRange, "aa"); unterminatedContext.Init(); IReference referenceToComplete = unterminatedContext.Reference; ITreeNode elementToComplete = unterminatedContext.TreeNode; if (elementToComplete == null) { return(null); } TreeTextRange referenceRange = referenceToComplete != null?referenceToComplete.GetTreeTextRange() : GetElementRange(elementToComplete); TextRange referenceDocumentRange = unterminatedContext.ToDocumentRange(referenceRange); if (!referenceDocumentRange.IsValid) { return(null); } if (!referenceDocumentRange.Contains(context.CaretDocumentRange.TextRange)) { return(null); } TextLookupRanges ranges = GetTextLookupRanges(context, referenceDocumentRange); return(new PsiCodeCompletionContext(context, ranges, unterminatedContext)); }
public override ISpecificCodeCompletionContext GetCompletionContext(CodeCompletionContext context) { var unterminatedContext = new PsiReparsedCompletionContext(context.File, context.SelectedTreeRange, "aa"); unterminatedContext.Init(); IReference referenceToComplete = unterminatedContext.Reference; ITreeNode elementToComplete = unterminatedContext.TreeNode; if (elementToComplete == null) { return null; } TreeTextRange referenceRange = referenceToComplete != null ? referenceToComplete.GetTreeTextRange() : GetElementRange(elementToComplete); TextRange referenceDocumentRange = unterminatedContext.ToDocumentRange(referenceRange); if (!referenceDocumentRange.IsValid) { return null; } if (!referenceDocumentRange.Contains(context.CaretDocumentRange.TextRange)) { return null; } TextLookupRanges ranges = GetTextLookupRanges(context, referenceDocumentRange); return new PsiCodeCompletionContext(context, ranges, unterminatedContext); }