protected sealed override SignatureHelpItems GetModel( SemanticModel semanticModel, TNode node, SourceLocation position) { var functionSymbols = GetFunctionSymbols(semanticModel, node, position).ToList(); // try to bind to the actual method var symbolInfo = semanticModel.GetSymbolInfo(node); var selectedItem = symbolInfo.Symbol is FunctionSymbol fs ? functionSymbols.IndexOf(fs) : (int?)null; var signatureHelpItems = functionSymbols .Select(ConvertFunctionSymbol).ToList(); var sourceRange = SignatureHelpUtilities.GetSignatureHelpSpan(node.ArgumentListSyntax); var textSpan = semanticModel.SyntaxTree.GetSourceFileSpan(sourceRange); var currentState = SignatureHelpUtilities.GetSignatureHelpState(node.ArgumentListSyntax, position); return(CreateSignatureHelpItems( signatureHelpItems, textSpan, currentState, selectedItem)); }
protected sealed override SignatureHelpItems GetModel( SemanticModel semanticModel, TNode node, SourceLocation position) { var functionSymbols = GetFunctionSymbols(semanticModel, node, position); var signatureHelpItems = functionSymbols .Select(ConvertFunctionSymbol).ToList(); var sourceRange = SignatureHelpUtilities.GetSignatureHelpSpan(node.ArgumentListSyntax); var textSpan = semanticModel.SyntaxTree.GetSourceFileSpan(sourceRange); var currentState = SignatureHelpUtilities.GetSignatureHelpState(node.ArgumentListSyntax, position); return(CreateSignatureHelpItems( signatureHelpItems, textSpan, currentState)); }