Merge branch 'rel/vs15.5' into dev

This commit is contained in:
N. Taylor Mullen 2017-10-25 09:45:28 -07:00
commit d027697389
2 changed files with 27 additions and 1 deletions

View File

@ -147,12 +147,19 @@ namespace Microsoft.VisualStudio.Editor.Razor
return completionItems;
}
private bool AtDirectiveCompletionPoint(RazorSyntaxTree syntaxTree, CompletionContext context)
// Internal for testing
internal bool AtDirectiveCompletionPoint(RazorSyntaxTree syntaxTree, CompletionContext context)
{
if (TryGetRazorSnapshotPoint(context, out var razorSnapshotPoint))
{
var change = new SourceChange(razorSnapshotPoint.Position, 0, string.Empty);
var owner = syntaxTree.Root.LocateOwner(change);
if (owner == null)
{
return false;
}
if (owner.ChunkGenerator is ExpressionChunkGenerator &&
owner.Symbols.All(IsDirectiveCompletableSymbol) &&
// Do not provide IntelliSense for explicit expressions. Explicit expressions will usually look like:

View File

@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.ComponentModel.Composition;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@ -29,6 +30,24 @@ namespace Microsoft.VisualStudio.Editor.Razor
CSharpCodeParser.TagHelperPrefixDirectiveDescriptor,
};
[Fact]
public void AtDirectiveCompletionPoint_ReturnsFalseIfChangeHasNoOwner()
{
// Arrange
var codeDocumentProvider = CreateCodeDocumentProvider("@", Enumerable.Empty<DirectiveDescriptor>());
var completionProvider = new FailOnGetCompletionsProvider(codeDocumentProvider);
var document = CreateDocument();
codeDocumentProvider.Value.TryGetFromDocument(document, out var codeDocument);
var syntaxTree = codeDocument.GetSyntaxTree();
var completionContext = CreateContext(2, completionProvider, document);
// Act
var result = completionProvider.AtDirectiveCompletionPoint(syntaxTree, completionContext);
// Assert
Assert.False(result);
}
[Fact]
public async Task GetDescriptionAsync_AddsDirectiveDescriptionIfPropertyExists()
{