Merge branch 'rel/vs15.5' into dev
This commit is contained in:
commit
d027697389
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue