Skip to content

Commit

Permalink
Merge pull request #26361 from dpoeschl/DebuggerIntellisenseInsertion…
Browse files Browse the repository at this point in the history
…Text

Use completion item InsertionText in the debugger, even before any non-debugger completion sessions have run
  • Loading branch information
dpoeschl authored May 10, 2018
2 parents f22b6ab + 7ede59e commit a1c5beb
Showing 1 changed file with 9 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public abstract class CompletionServiceWithProviders : CompletionService, IEqual
private readonly Dictionary<string, CompletionProvider> _nameToProvider = new Dictionary<string, CompletionProvider>();
private readonly Dictionary<ImmutableHashSet<string>, ImmutableArray<CompletionProvider>> _rolesToProviders;
private readonly Func<ImmutableHashSet<string>, ImmutableArray<CompletionProvider>> _createRoleProviders;
private readonly Func<string, CompletionProvider> _getProviderByName;

private readonly Workspace _workspace;

Expand All @@ -52,6 +53,7 @@ internal CompletionServiceWithProviders(
ExclusiveProviders = exclusiveProviders;
_rolesToProviders = new Dictionary<ImmutableHashSet<string>, ImmutableArray<CompletionProvider>>(this);
_createRoleProviders = CreateRoleProviders;
_getProviderByName = GetProviderByName;
}

public override CompletionRules GetRules()
Expand Down Expand Up @@ -194,13 +196,19 @@ internal protected CompletionProvider GetProvider(CompletionItem item)
{
lock (_gate)
{
_nameToProvider.TryGetValue(name, out provider);
provider = _nameToProvider.GetOrAdd(name, _getProviderByName);
}
}

return provider;
}

private CompletionProvider GetProviderByName(string providerName)
{
var providers = GetAllProviders(roles: ImmutableHashSet<string>.Empty);
return providers.FirstOrDefault(p => p.Name == providerName);
}

public override async Task<CompletionList> GetCompletionsAsync(
Document document,
int caretPosition,
Expand Down

0 comments on commit a1c5beb

Please sign in to comment.