Skip to content

Commit

Permalink
Fix CR feedback and use completion item's InsertionText if available
Browse files Browse the repository at this point in the history
  • Loading branch information
DustinCampbell committed May 18, 2017
1 parent 1661ba4 commit 62b361e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,17 @@ namespace OmniSharp.Roslyn.CSharp.Services.Intellisense
{
internal static class CompletionItemExtensions
{
private const string GetSymbolsAsync = "GetSymbolsAsync";
private const string GetSymbolsAsync = nameof(GetSymbolsAsync);
private const string InsertionText = nameof(InsertionText);
private const string NamedParameterCompletionProvider = "Microsoft.CodeAnalysis.CSharp.Completion.Providers.NamedParameterCompletionProvider";
private const string OverrideCompletionProvider = "Microsoft.CodeAnalysis.CSharp.Completion.Providers.OverrideCompletionProvider";
private const string ParitalMethodCompletionProvider = "Microsoft.CodeAnalysis.CSharp.Completion.Providers.PartialMethodCompletionProvider";
private const string Provider = "Provider";
private const string Provider = nameof(Provider);
private const string SymbolCompletionItem = "Microsoft.CodeAnalysis.Completion.Providers.SymbolCompletionItem";
private const string SymbolCompletionProvider = "Microsoft.CodeAnalysis.CSharp.Completion.Providers.SymbolCompletionProvider";
private const string SymbolKind = "SymbolKind";
private const string SymbolName = "SymbolName";
private const string Symbols = "Symbols";
private const string SymbolKind = nameof(SymbolKind);
private const string SymbolName = nameof(SymbolName);
private const string Symbols = nameof(Symbols);

private static MethodInfo _getSymbolsAsync;

Expand Down Expand Up @@ -58,7 +60,12 @@ public static async Task<IEnumerable<ISymbol>> GetCompletionSymbolsAsync(this Co
public static bool UseDisplayTextAsCompletionText(this CompletionItem completionItem)
{
return completionItem.Properties.TryGetValue(Provider, out var provider)
&& (provider == OverrideCompletionProvider || provider == ParitalMethodCompletionProvider);
&& (provider == NamedParameterCompletionProvider || provider == OverrideCompletionProvider || provider == ParitalMethodCompletionProvider);
}

public static bool TryGetInsertionText(this CompletionItem completionItem, out string insertionText)
{
return completionItem.Properties.TryGetValue(InsertionText, out insertionText);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,18 @@ public async Task<IEnumerable<AutoCompleteResponse>> Handle(AutoCompleteRequest
{
foreach (var symbol in symbols)
{
completionText = item.UseDisplayTextAsCompletionText()
? item.DisplayText
: symbol.Name;
if (item.UseDisplayTextAsCompletionText())
{
completionText = item.DisplayText;
}
else if (item.TryGetInsertionText(out var insertionText))
{
completionText = insertionText;
}
else
{
completionText = symbol.Name;
}

if (symbol != null)
{
Expand Down

0 comments on commit 62b361e

Please sign in to comment.