public static IEnumerable <BaseInfo> GetCompletionInfos( MSBuildResolveResult rr, TriggerState trigger, MSBuildValueKind kind, ExpressionNode triggerExpression, int triggerLength, MSBuildRootDocument doc) { switch (trigger) { case TriggerState.Value: return(MSBuildCompletionExtensions.GetValueCompletions(kind, doc, rr)); case TriggerState.Item: return(doc.GetItems()); case TriggerState.Metadata: return(doc.GetMetadata(null, true)); case TriggerState.Property: return(doc.GetProperties(true)); case TriggerState.MetadataOrItem: return(((IEnumerable <BaseInfo>)doc.GetItems()).Concat(doc.GetMetadata(null, true))); case TriggerState.DirectorySeparator: return(MSBuildCompletionExtensions.GetFilenameCompletions(kind, doc, triggerExpression, triggerLength));; case TriggerState.MethodName: return(FunctionCompletion.GetMethodNameCompletions(triggerExpression)); } throw new InvalidOperationException(); }
public static IEnumerable <ISymbol> GetCompletionInfos( MSBuildResolveResult rr, TriggerState trigger, MSBuildValueKind kind, ExpressionNode triggerExpression, int triggerLength, MSBuildRootDocument doc, IFunctionTypeProvider functionTypeProvider) { switch (trigger) { case TriggerState.Value: return(MSBuildCompletionExtensions.GetValueCompletions(kind, doc, rr, triggerExpression)); case TriggerState.ItemName: return(doc.GetItems()); case TriggerState.MetadataName: return(doc.GetMetadata(null, true)); case TriggerState.PropertyName: return(doc.GetProperties(true)); case TriggerState.MetadataOrItemName: return(((IEnumerable <ISymbol>)doc.GetItems()).Concat(doc.GetMetadata(null, true))); case TriggerState.DirectorySeparator: return(MSBuildCompletionExtensions.GetFilenameCompletions(kind, doc, triggerExpression, triggerLength, rr)); case TriggerState.PropertyFunctionName: return(functionTypeProvider.GetPropertyFunctionNameCompletions(triggerExpression)); case TriggerState.ItemFunctionName: return(functionTypeProvider.GetItemFunctionNameCompletions()); case TriggerState.PropertyFunctionClassName: return(functionTypeProvider.GetClassNameCompletions()); case TriggerState.None: break; case TriggerState.BareFunctionArgumentValue: //FIXME: enum completion etc return(MSBuildValueKind.Bool.GetSimpleValues(true)); case TriggerState.ConditionFunctionName: return(Builtins.ConditionFunctions.Values); } throw new InvalidOperationException($"Unhandled trigger type {trigger}"); }