未验证 提交 b0b5351e 编写于 作者: I Ivan Basov 提交者: GitHub

async completion: fixing 'Nullable object must have a value' when deleting the whole word (#32143)

上级 51e8b026
......@@ -329,8 +329,8 @@ private static bool IsAfterDot(ITextSnapshot snapshot, ITrackingSpan applicableT
return new FilteredCompletionModel(
highlightedList, index, filters,
hardSelect ? UpdateSelectionHint.Selected : UpdateSelectionHint.SoftSelected,
centerSelection: true,
uniqueItem: matchCount == 1 ? bestFilterResult.Value.VSCompletionItem : default);
centerSelection: true,
uniqueItem: matchCount == 1 ? bestFilterResult.GetValueOrDefault().VSCompletionItem : default);
}
private FilteredCompletionModel HandleAllItemsFilteredOut(
......
......@@ -61,6 +61,40 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense
End Using
End Function
<MemberData(NameOf(AllCompletionImplementations))>
<WpfTheory, Trait(Traits.Feature, Traits.Features.Completion)>
Public Async Function TestDeletingWholeWordResetCompletionToTheDefaultItem(completionImplementation As CompletionImplementation) As Task
Using state = TestStateFactory.CreateCSharpTestState(completionImplementation,
<Document>
using System;
class C
{
void M()
{
var replyUri = new Uri("");
$$
}
}
</Document>)
state.Workspace.Options = state.Workspace.Options.WithChangedOption(
CompletionOptions.TriggerOnDeletion, LanguageNames.CSharp, True)
state.SendTypeChars("repl")
state.SendTab()
For i = 1 To 7
state.SendBackspace()
Await state.WaitForAsynchronousOperationsAsync()
Next
Await state.AssertCompletionSession()
state.SendBackspace()
Await state.AssertSelectedCompletionItem("AccessViolationException")
End Using
End Function
<MemberData(NameOf(AllCompletionImplementations))>
<WpfTheory, Trait(Traits.Feature, Traits.Features.Completion)>
Public Async Function TestNotAtStartOfExistingWord(completionImplementation As CompletionImplementation) As Task
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册