未验证 提交 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 ...@@ -329,8 +329,8 @@ private static bool IsAfterDot(ITextSnapshot snapshot, ITrackingSpan applicableT
return new FilteredCompletionModel( return new FilteredCompletionModel(
highlightedList, index, filters, highlightedList, index, filters,
hardSelect ? UpdateSelectionHint.Selected : UpdateSelectionHint.SoftSelected, hardSelect ? UpdateSelectionHint.Selected : UpdateSelectionHint.SoftSelected,
centerSelection: true, centerSelection: true,
uniqueItem: matchCount == 1 ? bestFilterResult.Value.VSCompletionItem : default); uniqueItem: matchCount == 1 ? bestFilterResult.GetValueOrDefault().VSCompletionItem : default);
} }
private FilteredCompletionModel HandleAllItemsFilteredOut( private FilteredCompletionModel HandleAllItemsFilteredOut(
......
...@@ -61,6 +61,40 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense ...@@ -61,6 +61,40 @@ Namespace Microsoft.CodeAnalysis.Editor.UnitTests.IntelliSense
End Using End Using
End Function 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))> <MemberData(NameOf(AllCompletionImplementations))>
<WpfTheory, Trait(Traits.Feature, Traits.Features.Completion)> <WpfTheory, Trait(Traits.Feature, Traits.Features.Completion)>
Public Async Function TestNotAtStartOfExistingWord(completionImplementation As CompletionImplementation) As Task 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.
先完成此消息的编辑!
想要评论请 注册