protected override void BuildCompletionDataInternal(IEditorData Editor, char enteredChar) { ed = Editor; ctxt = ResolutionContext.Create(Editor, false); AbstractType t = null; CodeCompletion.DoTimeoutableCompletionTask(CompletionDataGenerator, ctxt, () => { ctxt.Push(Editor); if (AccessExpression is IExpression) { t = ExpressionTypeEvaluation.EvaluateType(AccessExpression as IExpression, ctxt); } else if (AccessExpression is ITypeDeclaration) { t = TypeDeclarationResolver.ResolveSingle(AccessExpression as ITypeDeclaration, ctxt); } }); if (t == null) //TODO: Add after-space list creation when an unbound . (Dot) was entered which means to access the global scope { return; } t.Accept(this); }
/// <summary> /// Evaluates the identifier/template instance as usual. /// If the id points to a variable, the initializer/dynamic value will be evaluated using its initializer. /// /// If ImplicitlyExecute is false but value evaluation is switched on, an InternalOverloadValue-object will be returned /// that keeps all overloads passed via 'overloads' /// </summary> ISymbolValue TryDoCTFEOrGetValueRefs(AbstractType r, IExpression idOrTemplateInstance, bool ImplicitlyExecute = true, ISymbolValue[] executionArguments = null) { return(r != null?r.Accept(new CTFEOrValueRefsVisitor(ValueProvider, idOrTemplateInstance, ImplicitlyExecute, executionArguments)) : null); }