未验证 提交 731f4b76 编写于 作者: S Sam Harwell 提交者: GitHub

Merge pull request #44640 from sharwell/completion-tests

Update completion tests for top-level statements
...@@ -31,7 +31,7 @@ class C ...@@ -31,7 +31,7 @@ class C
}"); }");
} }
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task ExternAlias() public async Task ExternAlias()
{ {
......
...@@ -7461,7 +7461,7 @@ class N ...@@ -7461,7 +7461,7 @@ class N
} }
[WorkItem(635957, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/635957")] [WorkItem(635957, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/635957")]
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task TildeOutsideClass() public async Task TildeOutsideClass()
{ {
...@@ -7473,7 +7473,8 @@ class N ...@@ -7473,7 +7473,8 @@ class N
} }
} }
~$$"; ~$$";
await VerifyNoItemsExistAsync(markup, SourceCodeKind.Regular); await VerifyItemExistsAsync(markup, "C");
await VerifyItemIsAbsentAsync(markup, "N");
} }
[WorkItem(635957, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/635957")] [WorkItem(635957, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/635957")]
......
...@@ -64,16 +64,16 @@ public async Task SendEnterThroughToEditorTest() ...@@ -64,16 +64,16 @@ public async Task SendEnterThroughToEditorTest()
await VerifySendEnterThroughToEnterAsync("class C { void M() { System.Console.$$", "Beep", sendThroughEnterOption: EnterKeyRule.Always, expected: true); await VerifySendEnterThroughToEnterAsync("class C { void M() { System.Console.$$", "Beep", sendThroughEnterOption: EnterKeyRule.Always, expected: true);
} }
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task InvalidLocation1() public async Task GlobalStatement1()
=> await VerifyItemIsAbsentAsync(@"System.Console.$$", @"Beep"); => await VerifyItemExistsAsync(@"System.Console.$$", @"Beep");
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task InvalidLocation2() public async Task GlobalStatement2()
{ {
await VerifyItemIsAbsentAsync(@"using System; await VerifyItemExistsAsync(@"using System;
Console.$$", @"Beep"); Console.$$", @"Beep");
} }
......
...@@ -460,8 +460,24 @@ public class goo ...@@ -460,8 +460,24 @@ public class goo
[WorkItem(775091, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/775091")] [WorkItem(775091, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/775091")]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
public async Task ParamRefNames() public async Task ParamRefNames()
{
// Local functions do not support documentation comments
await VerifyItemIsAbsentAsync(@"
/// <summary>
/// <paramref name=""$$""/>
/// </summary>
static void Main(string[] args)
{
}
", "args", sourceCodeKind: SourceCodeKind.Regular);
}
[WorkItem(775091, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/775091")]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
public async Task ParamRefNames_Interactive()
{ {
await VerifyItemExistsAsync(@" await VerifyItemExistsAsync(@"
/// <summary> /// <summary>
...@@ -470,19 +486,32 @@ public async Task ParamRefNames() ...@@ -470,19 +486,32 @@ public async Task ParamRefNames()
static void Main(string[] args) static void Main(string[] args)
{ {
} }
", "args"); ", "args", sourceCodeKind: SourceCodeKind.Script);
} }
[Fact(Skip = "https://github.com/dotnet/roslyn/issues/44423"), Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")] [WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task ParamNamesInEmptyAttribute() public async Task ParamNamesInEmptyAttribute()
{
// Local functions do not support documentation comments
await VerifyItemIsAbsentAsync(@"
/// <param name=""$$""/>
static void Goo(string str)
{
}
", "str", sourceCodeKind: SourceCodeKind.Regular);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
[WorkItem(44423, "https://github.com/dotnet/roslyn/issues/44423")]
public async Task ParamNamesInEmptyAttribute_Interactive()
{ {
await VerifyItemExistsAsync(@" await VerifyItemExistsAsync(@"
/// <param name=""$$""/> /// <param name=""$$""/>
static void Goo(string str) static void Goo(string str)
{ {
} }
", "str"); ", "str", sourceCodeKind: SourceCodeKind.Script);
} }
[Fact, Trait(Traits.Feature, Traits.Features.Completion)] [Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......
...@@ -54,7 +54,14 @@ public override async Task ProvideCompletionsAsync(CompletionContext context) ...@@ -54,7 +54,14 @@ public override async Task ProvideCompletionsAsync(CompletionContext context)
.FindTokenOnLeftOfPosition(position, cancellationToken) .FindTokenOnLeftOfPosition(position, cancellationToken)
.GetPreviousTokenIfTouchingWord(position); .GetPreviousTokenIfTouchingWord(position);
if (targetToken.IsKind(SyntaxKind.AliasKeyword) && targetToken.Parent.IsKind(SyntaxKind.ExternAliasDirective)) if (!targetToken.IsKind(SyntaxKind.AliasKeyword)
&& !(targetToken.IsKind(SyntaxKind.IdentifierToken) && targetToken.HasMatchingText(SyntaxKind.AliasKeyword)))
{
return;
}
if (targetToken.Parent.IsKind(SyntaxKind.ExternAliasDirective)
|| (targetToken.Parent.IsKind(SyntaxKind.IdentifierName) && targetToken.Parent.IsParentKind(SyntaxKind.IncompleteMember)))
{ {
var compilation = await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(false); var compilation = await document.Project.GetCompilationAsync(cancellationToken).ConfigureAwait(false);
var aliases = compilation.ExternalReferences.SelectMany(r => r.Properties.Aliases).ToSet(); var aliases = compilation.ExternalReferences.SelectMany(r => r.Properties.Aliases).ToSet();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册