public async Task <CompletionResult> GetCompletionData(int position, char?triggerChar, bool useSignatureHelp) { IList <ICompletionDataEx> completionData = null; IOverloadProvider overloadProvider = null; bool?isCompletion = null; if (useSignatureHelp || triggerChar != null) { var signatureHelpProvider = _roslynHost.GetService <ISignatureHelpProvider>(); var isSignatureHelp = useSignatureHelp || signatureHelpProvider.IsTriggerCharacter(triggerChar.Value); if (isSignatureHelp) { var signatureHelp = await signatureHelpProvider.GetItemsAsync( _roslynHost.CurrentDocument, position, new SignatureHelpTriggerInfo( useSignatureHelp ? SignatureHelpTriggerReason.InvokeSignatureHelpCommand : SignatureHelpTriggerReason.TypeCharCommand, triggerChar)) .ConfigureAwait(false); if (signatureHelp != null) { overloadProvider = new RoslynOverloadProvider(signatureHelp); } } else { isCompletion = await CompletionService.IsCompletionTriggerCharacterAsync(_roslynHost.CurrentDocument, position - 1).ConfigureAwait(false); } } if (overloadProvider == null && isCompletion != false) { var data = await CompletionService.GetCompletionListAsync( _roslynHost.CurrentDocument, position, triggerChar != null ?CompletionTriggerInfo.CreateTypeCharTriggerInfo(triggerChar.Value) : CompletionTriggerInfo.CreateInvokeCompletionTriggerInfo() ).ConfigureAwait(false); completionData = data?.Items.Select(item => new RoslynCompletionData(item)).ToArray <ICompletionDataEx>() ?? (IList <ICompletionDataEx>) new List <ICompletionDataEx>(); } return(new CompletionResult(completionData, overloadProvider)); }
/// <summary> /// Changes the selected index. /// </summary> /// <param name="relativeIndexChange">The relative index change - usual values are +1 or -1.</param> public void ChangeIndex(int relativeIndexChange) { IOverloadProvider p = this.Provider; if (p != null) { int newIndex = p.SelectedIndex + relativeIndexChange; if (newIndex < 0) { newIndex = p.Count - 1; } if (newIndex >= p.Count) { newIndex = 0; } p.SelectedIndex = newIndex; } }
public async Task <CompletionResult> GetCompletionData(int position, char?triggerChar) { IList <ICompletionDataEx> completionData = null; IOverloadProvider overloadProvider = null; bool?isCompletion = null; if (triggerChar != null) { var isSignatureHelp = await _interactiveManager.IsSignatureHelpTriggerCharacter(position - 1).ConfigureAwait(false); if (isSignatureHelp) { var signatureHelp = await _interactiveManager.GetSignatureHelp( new SignatureHelpTriggerInfo(SignatureHelpTriggerReason.TypeCharCommand, triggerChar.Value), position) .ConfigureAwait(false); if (signatureHelp != null) { overloadProvider = new RoslynOverloadProvider(signatureHelp); } } else { isCompletion = await _interactiveManager.IsCompletionTriggerCharacter(position - 1).ConfigureAwait(false); } } if (overloadProvider == null && isCompletion != false) { var items = await _interactiveManager.GetCompletion( triggerChar != null ?CompletionTriggerInfo.CreateTypeCharTriggerInfo(triggerChar.Value) : CompletionTriggerInfo.CreateInvokeCompletionTriggerInfo(), position).ConfigureAwait(false); completionData = items.Select(item => new AvalonEditCompletionData(item)).ToArray <ICompletionDataEx>(); } return(new CompletionResult(completionData, overloadProvider)); }
public async Task <CompletionResult> GetCompletionData(int position, char?triggerChar) { IList <ISelectedCompletionData> completionData = null; IOverloadProvider overloadProvider = null; bool?isCompletion = null; if (triggerChar != null) { var isSignatureHelp = await IsSignatureHelpTriggerCharacter(position - 1).ConfigureAwait(false); if (isSignatureHelp) { var signatureHelp = await GetSignatureHelp( new SignatureHelpTriggerInfo(SignatureHelpTriggerReason.TypeCharCommand, triggerChar.Value), position) .ConfigureAwait(false); if (signatureHelp != null) { overloadProvider = new OverloadProvider(signatureHelp); } } else { isCompletion = await IsCompletionTriggerCharacter(position - 1).ConfigureAwait(false); } } if (overloadProvider == null && isCompletion != false) { var items = GetCompletion( triggerChar != null ? CompletionTriggerInfo.CreateTypeCharTriggerInfo(triggerChar.Value) : CompletionTriggerInfo.CreateInvokeCompletionTriggerInfo(), position); completionData = items.ToList(); } return(new CompletionResult(completionData, overloadProvider)); }
public CompletionResult(IList <ICompletionDataEx> completionData, IOverloadProvider overloadProvider) { CompletionData = completionData; OverloadProvider = overloadProvider; }
public CompletionResult(IList<ICompletionDataEx> completionData, IOverloadProvider overloadProvider) { CompletionData = completionData; OverloadProvider = overloadProvider; }
public CompletionResult(IList <ISelectedCompletionData> completionData, IOverloadProvider overloadProvider) { this._completionData = completionData; this._overloadProvider = overloadProvider; }