提交 4a79e90e 编写于 作者: C CyrusNajmabadi

Merge pull request #11870 from CyrusNajmabadi/removeUnnecessary3

Remove unnecessary field.
......@@ -15,20 +15,11 @@ namespace Microsoft.CodeAnalysis.Editor
{
internal class CompletionHelper
{
private readonly CompletionRules _rules;
private readonly string _language;
public CompletionService CompletionService { get; }
protected CompletionHelper(CompletionService completionService)
protected CompletionHelper()
{
CompletionService = completionService;
_language = CompletionService.Language;
_rules = CompletionService.GetRules();
}
public static CompletionHelper GetHelper(
Workspace workspace, string language, CompletionService completionService)
public static CompletionHelper GetHelper(Workspace workspace, string language)
{
var ls = workspace.Services.GetLanguageServices(language);
if (ls != null)
......@@ -36,21 +27,18 @@ protected CompletionHelper(CompletionService completionService)
var factory = ls.GetService<CompletionHelperFactory>();
if (factory != null)
{
return factory.CreateCompletionHelper(completionService);
return factory.CreateCompletionHelper();
}
if (completionService != null)
{
return new CompletionHelper(completionService);
}
return new CompletionHelper();
}
return null;
}
public static CompletionHelper GetHelper(Document document, CompletionService service)
public static CompletionHelper GetHelper(Document document)
{
return GetHelper(document.Project.Solution.Workspace, document.Project.Language, service);
return GetHelper(document.Project.Solution.Workspace, document.Project.Language);
}
public IReadOnlyList<TextSpan> GetHighlightedSpans(CompletionItem completionItem, string filterText)
......
......@@ -8,6 +8,6 @@ namespace Microsoft.CodeAnalysis.Editor
{
internal abstract class CompletionHelperFactory : ILanguageService
{
public abstract CompletionHelper CreateCompletionHelper(CompletionService completionService);
public abstract CompletionHelper CreateCompletionHelper();
}
}
\ No newline at end of file
......@@ -27,9 +27,12 @@ void ICommandHandler<TabKeyCommandArgs>.ExecuteCommand(TabKeyCommandArgs args, A
{
// The user may be trying to invoke snippets in VB
var helper = GetCompletionHelper();
var completionService = GetCompletionService();
if (helper != null &&
completionService != null &&
helper.QuestionTabInvokesSnippetCompletion &&
TryInvokeSnippetCompletion(args, helper.CompletionService))
TryInvokeSnippetCompletion(args, completionService))
{
// We've taken care of the tab. Don't send it to the buffer.
return;
......
......@@ -272,8 +272,7 @@ private CompletionHelper GetCompletionHelper()
var document = this.SubjectBuffer.CurrentSnapshot.GetOpenDocumentInCurrentContextWithChanges();
if (document != null)
{
return CompletionHelper.GetHelper(
document, document.GetLanguageService<CompletionService>());
return CompletionHelper.GetHelper(document);
}
return null;
......
......@@ -62,8 +62,7 @@ private CompletionHelper GetCompletionHelper()
var document = GetDocument();
if (document != null)
{
_completionHelper = CompletionHelper.GetHelper(document,
document.Project.LanguageServices.GetService<CompletionService>());
_completionHelper = CompletionHelper.GetHelper(document);
}
}
......
......@@ -58,9 +58,9 @@ internal CompletionServiceWithProviders GetCompletionService(Workspace workspace
internal abstract CompletionServiceWithProviders CreateCompletionService(
Workspace workspace, ImmutableArray<CompletionProvider> exclusiveProviders);
internal static CompletionHelper GetCompletionHelper(Document document, CompletionService service)
internal static CompletionHelper GetCompletionHelper(Document document)
{
return CompletionHelper.GetHelper(document, service);
return CompletionHelper.GetHelper(document);
}
internal static async Task<CompletionContext> GetCompletionListContextAsync(
......@@ -310,7 +310,7 @@ private async Task VerifyCustomCommitProviderCheckResultsAsync(Document document
var customCommitCompletionProvider = service.ExclusiveProviders?[0] as ICustomCommitCompletionProvider;
if (customCommitCompletionProvider != null)
{
var completionRules = GetCompletionHelper(document, service);
var completionRules = GetCompletionHelper(document);
var textView = (await WorkspaceFixture.GetWorkspaceAsync()).Documents.Single().GetTextView();
VerifyCustomCommitWorker(service, customCommitCompletionProvider, firstItem, completionRules, textView, textBuffer, codeBeforeCommit, expectedCodeAfterCommit, commitChar);
}
......@@ -416,7 +416,7 @@ private async Task VerifyCustomCommitProviderCheckResultsAsync(Document document
var items = (await GetCompletionListAsync(service, document, position, CompletionTrigger.Default)).Items;
var firstItem = items.First(i => CompareItems(i.DisplayText, itemToCommit));
var completionRules = GetCompletionHelper(document, service);
var completionRules = GetCompletionHelper(document);
var commitChar = commitCharOpt ?? '\t';
var text = await document.GetTextAsync();
......
......@@ -48,8 +48,7 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense
Private Sub TestMatches(v As String, wordsToMatch() As String)
Using New CultureContext("tr-TR")
Dim workspace = New TestWorkspace
Dim helper = CompletionHelper.GetHelper(workspace, LanguageNames.CSharp,
workspace.Services.GetLanguageServices(LanguageNames.CSharp).GetService(Of CompletionService))
Dim helper = CompletionHelper.GetHelper(workspace, LanguageNames.CSharp)
For Each word In wordsToMatch
Dim item = CompletionItem.Create(word)
Assert.True(helper.MatchesFilterText(item, v, CompletionTrigger.Default, CompletionFilterReason.TypeChar), $"Expected item {word} does not match {v}")
......@@ -60,8 +59,7 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense
Private Sub TestNotMatches(v As String, wordsToNotMatch() As String)
Using New CultureContext("tr-TR")
Dim workspace = New TestWorkspace
Dim helper = CompletionHelper.GetHelper(workspace, LanguageNames.CSharp,
workspace.Services.GetLanguageServices(LanguageNames.CSharp).GetService(Of CompletionService))
Dim helper = CompletionHelper.GetHelper(workspace, LanguageNames.CSharp)
For Each word In wordsToNotMatch
Dim item = CompletionItem.Create(word)
Assert.False(helper.MatchesFilterText(item, v, CompletionTrigger.Default, CompletionFilterReason.TypeChar), $"Unexpected item {word} matches {v}")
......
......@@ -22,8 +22,8 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.Completion
Public Sub New()
End Sub
Public Overrides Function CreateCompletionHelper(service As CompletionService) As CompletionHelper
Return New VisualBasicCompletionHelper(service)
Public Overrides Function CreateCompletionHelper() As CompletionHelper
Return New VisualBasicCompletionHelper()
End Function
End Class
End Class
......@@ -31,10 +31,6 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.Completion
Friend Class VisualBasicCompletionHelper
Inherits CompletionHelper
Public Sub New(completionService As CompletionService)
MyBase.New(completionService)
End Sub
Public Overrides ReadOnly Property QuestionTabInvokesSnippetCompletion As Boolean
Get
Return True
......
......@@ -142,7 +142,7 @@ Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Completion.Complet
Dim completionList = Await GetCompletionListAsync(service, document, position, CompletionTrigger.Default)
Dim item = completionList.Items.First()
Dim helper = CompletionHelper.GetHelper(document, service)
Dim helper = CompletionHelper.GetHelper(document)
For Each ch In chars
Assert.True(Controller.IsCommitCharacter(service.GetRules(), item, ch, textTypedSoFar), $"Expected '{ch}' to be a commit character")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册