未验证 提交 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
}");
}
[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")]
public async Task ExternAlias()
{
......
......@@ -7461,7 +7461,7 @@ class N
}
[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")]
public async Task TildeOutsideClass()
{
......@@ -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")]
......
......@@ -64,16 +64,16 @@ public async Task SendEnterThroughToEditorTest()
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")]
public async Task InvalidLocation1()
=> await VerifyItemIsAbsentAsync(@"System.Console.$$", @"Beep");
public async Task GlobalStatement1()
=> 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")]
public async Task InvalidLocation2()
public async Task GlobalStatement2()
{
await VerifyItemIsAbsentAsync(@"using System;
await VerifyItemExistsAsync(@"using System;
Console.$$", @"Beep");
}
......
......@@ -460,8 +460,24 @@ public class goo
[WorkItem(775091, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/775091")]
[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()
{
// 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(@"
/// <summary>
......@@ -470,19 +486,32 @@ public async Task ParamRefNames()
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")]
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(@"
/// <param name=""$$""/>
static void Goo(string str)
{
}
", "str");
", "str", sourceCodeKind: SourceCodeKind.Script);
}
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
......
......@@ -54,7 +54,14 @@ public override async Task ProvideCompletionsAsync(CompletionContext context)
.FindTokenOnLeftOfPosition(position, cancellationToken)
.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 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.
先完成此消息的编辑!
想要评论请 注册