Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intellisense for cast, indexers and operators #47511

Merged
331 commits merged into from
Mar 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
331 commits
Select commit Hold shift + click to select a range
eb11333
Rename ConversionComplitionProvider to ConversionCompletionProvider
MaStr11 Sep 28, 2020
698f0b0
Split test classes
MaStr11 Sep 28, 2020
5de82d5
Add #nullable enable
MaStr11 Sep 28, 2020
518acf5
Move GetChange logic into derived classes.
MaStr11 Sep 28, 2020
903fabd
Remove "Handler" property from CompletionItem
MaStr11 Sep 28, 2020
3989e4c
Move more methods to base class
MaStr11 Sep 28, 2020
8ac3618
Fix OperatorPosition for ++ and --
MaStr11 Sep 28, 2020
cc1ca46
Test duplicate operators (e.g. +a and a+b)
MaStr11 Sep 28, 2020
9780c30
Use displaySuffix and displayPrefix and add support for "SortGrouping…
MaStr11 Sep 28, 2020
ea63f9b
Fix tests
MaStr11 Sep 28, 2020
b5681fd
sort and remove usings;
MaStr11 Sep 28, 2020
4c118ca
Remove and doc overridden ItemPartiallyWritten
MaStr11 Sep 28, 2020
308fa92
Return ImmutableArray from GetCompletionItemsForTypeSymbol
MaStr11 Sep 28, 2020
2a99581
Code review.
MaStr11 Sep 28, 2020
9e9302e
Fix failure to dispose of workspace fixtures
sharwell Sep 22, 2020
5d80754
Fixes after cherry-pick of #47994
MaStr11 Sep 28, 2020
e6f79f8
Revert changes of #47994
MaStr11 Sep 29, 2020
a9c827a
Return identifier/keyword to remove as token.
MaStr11 Sep 29, 2020
fcb66d7
Add support for lifted conversion operators.
MaStr11 Sep 29, 2020
9ab8b29
Operators are sorted and grouped per topic (comparison, mathematical,…
MaStr11 Sep 29, 2020
192d663
Fix "duplicate" operator test
MaStr11 Sep 29, 2020
92c196a
Fix test for operators of built-in types
MaStr11 Sep 29, 2020
4db6b71
Add support for built-in numeric conversions
MaStr11 Sep 29, 2020
3009adc
Fix test ExplicitUserDefinedConversionFromOtherTypeToTargetIsNotSugge…
MaStr11 Sep 29, 2020
0725852
Add comment with source for built-in conversions
MaStr11 Sep 29, 2020
ea4ee07
Add support for conditional access conversions and struct nullability.
MaStr11 Sep 30, 2020
6b8ad86
Add comment with link to gist
MaStr11 Sep 30, 2020
3b4e1aa
Remove misleading comments from copy paste
MaStr11 Sep 30, 2020
b34e808
Don't offer completion if user typed "1.$$"
MaStr11 Sep 30, 2020
88589d4
Code comment ExplicitConversionOfConditionalAccessFromClassOrStructTo…
MaStr11 Sep 30, 2020
da2260c
Add support for built-in enum conversions.
MaStr11 Sep 30, 2020
1fe004d
Fix code comment referring to a renamed variable
MaStr11 Sep 30, 2020
b6d54f4
nullable enable in OperatorSymbolExtensions
MaStr11 Sep 30, 2020
981a936
Re-factor switch expressions in OperatorSymbolExtensions
MaStr11 Oct 1, 2020
fee4adb
Remove test cases for special types (we don't want to exclude certain…
MaStr11 Oct 1, 2020
9a6b5c9
Add support to remove the conditionalAccess question mark token durin…
MaStr11 Oct 1, 2020
51bf27b
Add operator tests for different expression (including conditional ac…
MaStr11 Oct 1, 2020
f36861b
Add tests for operator lifting
MaStr11 Oct 1, 2020
0d758cd
Add support for lifted operators
MaStr11 Oct 1, 2020
0d09b87
Simplify is expression in GetReplacementStart
MaStr11 Oct 1, 2020
8484c87
Exclude built-in types for operators (and document why)
MaStr11 Oct 1, 2020
9d94034
Add test for item order: methods/properties/extensions, indexer, conv…
MaStr11 Oct 2, 2020
908169d
Change glyph to operator for built-in conversions
MaStr11 Oct 2, 2020
b93012a
Fix code comments
MaStr11 Oct 2, 2020
45a9f25
Re-factor ConverionCompletionProvider
MaStr11 Oct 2, 2020
aa988ec
Extract GetOptionalNullableQuestionMark
MaStr11 Oct 2, 2020
6afd47d
WIP: Add test for completion item description.
MaStr11 Oct 2, 2020
cbc643a
WIP: Use CodeGenerationMethodSymbol to fake a built-in conversion met…
MaStr11 Oct 5, 2020
0e6ae3a
WIP: Provide descriptions for built-in conversions.
MaStr11 Oct 5, 2020
fca6945
Add test for enum suggestion (don't infer with enum member suggestions)
MaStr11 Oct 5, 2020
8f36e3d
Do not offer conversions for EnumType.$$
MaStr11 Oct 5, 2020
aab0eba
Improve code comments.
MaStr11 Oct 6, 2020
8c16058
Use pooled ArrayBuilder
MaStr11 Oct 6, 2020
e8de85d
Add more description tests.
MaStr11 Oct 6, 2020
766f003
Add tests for descriptions of user defined explicit conversions.
MaStr11 Oct 6, 2020
3e6ac9c
Remove unused method.
MaStr11 Oct 6, 2020
eb145b0
Fix typo in IndexerCompletionProviderTests
MaStr11 Oct 6, 2020
817891f
Change indexer test to test for description instead of existence of s…
MaStr11 Oct 6, 2020
a29ef39
Format document IndexerCompletionProviderTests
MaStr11 Oct 6, 2020
1cef386
Fix BC42105: Change ConversionsOperatorsAndIndexerAreShownBelowMethod…
MaStr11 Oct 6, 2020
e9e91a4
Add support and test for inherited conversions.
MaStr11 Oct 6, 2020
230b349
Pass ArrayBuilder<CompletionItem> around to build the completion list
MaStr11 Oct 6, 2020
29c814c
Add links to inheritance conversion lookup in the spec.
MaStr11 Oct 6, 2020
bd108fa
Add support and test for indexer inheritance.
MaStr11 Oct 6, 2020
8713fe3
Indexer: Take member visibility into account.
MaStr11 Oct 6, 2020
2cc2efc
Re-factor AddUserDefinedConversionsOfType and use GetBaseTypesAndThis…
MaStr11 Oct 6, 2020
5abf9dd
Add test for operator inheritance and add some links to the spec for …
MaStr11 Oct 6, 2020
28790ba
Fix failing accessibility test (script environment only).
MaStr11 Oct 6, 2020
42a43fd
Format test data
MaStr11 Oct 6, 2020
bfd6c80
Apply suggestions from code review
MaStr11 Oct 7, 2020
f22ca92
Fix build error after code review merge
MaStr11 Oct 7, 2020
9d1e367
Change signature of GetCompletionItemsForTypeSymbol
MaStr11 Oct 7, 2020
d8baedc
Formatting: Line break for GetCompletionItemsForTypeSymbol
MaStr11 Oct 7, 2020
bc71fd9
Make enum built in conversion targets array static
MaStr11 Oct 7, 2020
71352dc
Pass immutable array for special type conversion targets.
MaStr11 Oct 7, 2020
76a7b4a
Improve readability of allExplicitConversions calculation
MaStr11 Oct 7, 2020
8296548
Simplify containingTypeAtCursorPosition calculation in IndexerComplet…
MaStr11 Oct 7, 2020
53ad16f
Add tests for static access for conversion, indexer and operator.
MaStr11 Oct 7, 2020
7370df6
Bail out on static access.
MaStr11 Oct 7, 2020
3d34489
Add tests for nameof context
MaStr11 Oct 7, 2020
3429c57
Bail out in nameof context
MaStr11 Oct 7, 2020
8e83b86
Simplify calculation if built-in enum conversion should be added
MaStr11 Oct 7, 2020
a3347cc
Remove expression and cancelationToken from GetCompletionItemsForType…
MaStr11 Oct 7, 2020
10a4545
Re-introduce cancellationToken in GetCompletionItemsForTypeSymbol
MaStr11 Oct 7, 2020
80384d9
WIP: Try to create description for built in operators based on a cust…
MaStr11 Oct 8, 2020
15e9b90
Add test for records (should show ==)
MaStr11 Oct 9, 2020
d24c24f
Formatting
MaStr11 Oct 10, 2020
278f7aa
Fix wrong MethodKind and simplify BuiltinOperatorParameterSymbol ctor.
MaStr11 Oct 10, 2020
d85dce5
Fix cref resolution (global:: is not supported)
MaStr11 Oct 10, 2020
a7ac084
Simplify GetDocumentationCommentXml and fix other tests.
MaStr11 Oct 10, 2020
93113fd
Add comment describing the usage of the BuiltinOperatorMethodSymbol
MaStr11 Oct 10, 2020
7f368cd
Use SymbolCompletionItem.GetDescriptionAsync logic instead of CommonC…
MaStr11 Oct 10, 2020
a2b1a72
Add glyph support (all tests green now)
MaStr11 Oct 10, 2020
7721d00
Remove unused ContainerTypeNamePropertyName
MaStr11 Oct 10, 2020
8e72b63
Unify CreateSymbolCompletionItem for user-defined conversions and bui…
MaStr11 Oct 10, 2020
16a4fd6
Test and fix namespace handling in cref.
MaStr11 Oct 10, 2020
773fa70
Add MaybeNull annotation to "ISymbol.Accept"
MaStr11 Oct 10, 2020
a4bf890
Inline GetOptionalNullableQuestionMark
MaStr11 Oct 10, 2020
8fee5ac
Fix "public static void Main()" to make test code copyable to console…
MaStr11 Oct 10, 2020
97b55dc
Define res resource for "Explicit conversion" text.
MaStr11 Oct 11, 2020
2800a95
Integrate CSharpFeaturesResources.Explicit_conversion_of_see_cref_T_0…
MaStr11 Oct 11, 2020
dcc03e7
Localize tests
MaStr11 Oct 11, 2020
8193fa4
Formatting: Whitespace warnings.
MaStr11 Oct 11, 2020
4bd5606
Add tests for matching filters (in completion popup menu)
MaStr11 Oct 12, 2020
3e8b473
Add OperatorFilter to FilterSet
MaStr11 Oct 12, 2020
9b4cbe2
Add "Operators" to FeatureResources and use it.
MaStr11 Oct 12, 2020
b092778
Add filter verification tests for built-in converters and others.
MaStr11 Oct 13, 2020
0f29687
Use in CombinatorialData in ExplicitConversionOfConditionalAccessFrom…
MaStr11 Oct 13, 2020
9356db3
Add test for type alias.
MaStr11 Oct 13, 2020
1455039
Remove SymbolCompletionItem.CreateWithSymbolId overload (introduced e…
MaStr11 Nov 2, 2020
305b723
Add support for displayTextPrefix in tests
MaStr11 Nov 2, 2020
4db1c97
Fix swapped arguments.
MaStr11 Nov 2, 2020
3452c47
Fix conversion tests by adding displayTextPrefix: "("
MaStr11 Nov 2, 2020
e6657b9
Convert switch statement to switch expression with Or pattern
MaStr11 Nov 2, 2020
793f1ef
Throw in ReplaceDotAndTokenAfterWithTextAsync if token is not a DotTo…
MaStr11 Nov 3, 2020
b894788
Remove fallback to base.GetChangeAsync (ReplaceDotAndTokenAfterWithTe…
MaStr11 Nov 3, 2020
fb964e6
OperatorCompletionProvider.GetChangeAsync throws in unexpected code p…
MaStr11 Nov 3, 2020
fcbc5c2
Formatting OperatorCompletionProvider
MaStr11 Nov 3, 2020
8c31f7f
Indexer are listed between other methods/properties, instead of the e…
MaStr11 Nov 3, 2020
1acc7e7
Formatting OperatorIndexerCompletionProviderBase
MaStr11 Nov 3, 2020
088d712
Format ConversionCompletionProvider
MaStr11 Nov 3, 2020
d08538d
Presort built-in enum conversions array.
MaStr11 Nov 3, 2020
1675a47
Sort built-in numeric conversions
MaStr11 Nov 3, 2020
ca7c102
Add code comment
MaStr11 Nov 3, 2020
ae531c2
Add inlineDescription SymbolCompletionItem.CreateWithSymbolId
MaStr11 Nov 4, 2020
517f59f
Add inlineDescription to operators and fix tests.
MaStr11 Nov 4, 2020
45d5de3
Merge remote-tracking branch 'upstream/master' into intellisenseExpli…
CyrusNajmabadi Nov 5, 2020
29fb42c
Remove
CyrusNajmabadi Nov 6, 2020
a3b3449
Merge remote-tracking branch 'upstream/master' into intellisenseExpli…
CyrusNajmabadi Nov 9, 2020
092caf1
Remove nrt, update loc string'
CyrusNajmabadi Nov 9, 2020
8c86799
Pull out tag from loc string
CyrusNajmabadi Nov 9, 2020
7598002
Pull out tag from loc string
CyrusNajmabadi Nov 9, 2020
569e82b
Make type nested.'
CyrusNajmabadi Nov 9, 2020
51d7935
unwind
CyrusNajmabadi Nov 9, 2020
40419aa
Simplify
CyrusNajmabadi Nov 9, 2020
d8f12bb
Merge code
CyrusNajmabadi Nov 9, 2020
8f12343
Simplify
CyrusNajmabadi Nov 9, 2020
067aa74
Simplify
CyrusNajmabadi Nov 9, 2020
083f2fc
Simplify
CyrusNajmabadi Nov 9, 2020
acb5946
Simplify
CyrusNajmabadi Nov 9, 2020
149f1e5
Simplify
CyrusNajmabadi Nov 9, 2020
9c3aba1
Merge remote-tracking branch 'upstream/master' into intellisenseExpli…
CyrusNajmabadi Jan 21, 2021
990a04b
Merge
CyrusNajmabadi Jan 21, 2021
7c815ba
Fixup tests
CyrusNajmabadi Jan 21, 2021
a5e3467
Symboldisplay work
CyrusNajmabadi Jan 21, 2021
09f6a34
Merge remote-tracking branch 'upstream/master' into intellisenseExpli…
CyrusNajmabadi Jan 22, 2021
a78c3d8
Delete unnecessary types
CyrusNajmabadi Jan 22, 2021
2116f45
Nullable enable
CyrusNajmabadi Jan 22, 2021
3e14092
Expose what cointainer we're dotting off of.
CyrusNajmabadi Jan 22, 2021
152de58
Merge remote-tracking branch 'upstream/main' into intellisenseExplici…
CyrusNajmabadi Mar 11, 2021
643f8a2
Add unnamed symbols
CyrusNajmabadi Mar 11, 2021
789a1d6
Simplify
CyrusNajmabadi Mar 11, 2021
1a9f0d6
simplify
CyrusNajmabadi Mar 11, 2021
8d00209
Merge branch 'simplifyCompletion' into intellisenseExplicitCast
CyrusNajmabadi Mar 12, 2021
8dc4c81
Merge code in
CyrusNajmabadi Mar 12, 2021
aac0ad7
Merge remote-tracking branch 'sharwell/cancel-work' into intellisense…
CyrusNajmabadi Mar 12, 2021
1ef9442
Merge remote-tracking branch 'upstream/main' into intellisenseExplici…
CyrusNajmabadi Mar 12, 2021
960bebb
nrt'
CyrusNajmabadi Mar 12, 2021
db8c84e
revert'
CyrusNajmabadi Mar 12, 2021
5de1dd0
Port logic
CyrusNajmabadi Mar 12, 2021
bcd1dab
Compiling
CyrusNajmabadi Mar 12, 2021
f1c7aa3
Merge remote-tracking branch 'upstream/main' into intellisenseExplici…
CyrusNajmabadi Mar 12, 2021
a8f4a14
Compile
CyrusNajmabadi Mar 12, 2021
78eb064
NOt in nameof
CyrusNajmabadi Mar 12, 2021
b8a257d
ONly when isntance members allowed
CyrusNajmabadi Mar 12, 2021
9b1476e
Add conversion
CyrusNajmabadi Mar 12, 2021
ea57c06
not after a number
CyrusNajmabadi Mar 12, 2021
a4a1074
look through all members
CyrusNajmabadi Mar 12, 2021
560b61f
some amount of lifting
CyrusNajmabadi Mar 12, 2021
be2b75f
MOre conversions work
CyrusNajmabadi Mar 12, 2021
c8e4862
Operator change
CyrusNajmabadi Mar 12, 2021
c45d786
Fix test
CyrusNajmabadi Mar 12, 2021
39a98a3
docs
CyrusNajmabadi Mar 12, 2021
64b52d3
double id
CyrusNajmabadi Mar 12, 2021
7925ff7
Test pass
CyrusNajmabadi Mar 13, 2021
3bb653c
Simplify
CyrusNajmabadi Mar 13, 2021
cce82d4
No nullable for summary
CyrusNajmabadi Mar 13, 2021
9cbd489
update tests
CyrusNajmabadi Mar 13, 2021
995b585
update tests
CyrusNajmabadi Mar 13, 2021
ea3d109
index range
CyrusNajmabadi Mar 13, 2021
16e0e2b
doc comments
CyrusNajmabadi Mar 13, 2021
76b15ba
Fix tests'
CyrusNajmabadi Mar 13, 2021
bb51a1d
Fix tests'
CyrusNajmabadi Mar 13, 2021
0b5b66f
Fix tests'
CyrusNajmabadi Mar 13, 2021
11f87c5
Fix'
CyrusNajmabadi Mar 13, 2021
70b3fba
UPdate test
CyrusNajmabadi Mar 13, 2021
f962097
Fix questions
CyrusNajmabadi Mar 13, 2021
1504aea
fix test
CyrusNajmabadi Mar 13, 2021
93b76c2
rename
CyrusNajmabadi Mar 13, 2021
ecc3288
always include the op
CyrusNajmabadi Mar 13, 2021
d2c587a
Fixes
CyrusNajmabadi Mar 13, 2021
28d97d0
fix tests
CyrusNajmabadi Mar 13, 2021
dd85f1e
Fix ordering
CyrusNajmabadi Mar 13, 2021
d6c1db9
Remove'
CyrusNajmabadi Mar 13, 2021
00d48a3
Get building
CyrusNajmabadi Mar 13, 2021
a0c09bd
Fix dotdot case
CyrusNajmabadi Mar 13, 2021
f2a81d4
Fix tests
CyrusNajmabadi Mar 13, 2021
0719ea7
don't make nullable reference types
CyrusNajmabadi Mar 13, 2021
65e4868
Fix tests
CyrusNajmabadi Mar 13, 2021
1ad4499
add test'
CyrusNajmabadi Mar 13, 2021
fae2b4e
Add test
CyrusNajmabadi Mar 13, 2021
b1f8758
Add tests
CyrusNajmabadi Mar 13, 2021
673166a
add test'
CyrusNajmabadi Mar 13, 2021
18f6ad1
NO need to lift operators'
CyrusNajmabadi Mar 13, 2021
fb41fec
simplify
CyrusNajmabadi Mar 13, 2021
027c0c5
Use x and y
CyrusNajmabadi Mar 13, 2021
b425171
Handle operator overloads
CyrusNajmabadi Mar 13, 2021
1abb87e
Simplify
CyrusNajmabadi Mar 13, 2021
4988260
Simplify operators
CyrusNajmabadi Mar 13, 2021
c1546b1
restore
CyrusNajmabadi Mar 13, 2021
16650a7
revert
CyrusNajmabadi Mar 13, 2021
2068af2
comments
CyrusNajmabadi Mar 13, 2021
5fe0a95
Cleanup
CyrusNajmabadi Mar 13, 2021
668e3ad
simplify
CyrusNajmabadi Mar 13, 2021
88548d3
Fixes
CyrusNajmabadi Mar 13, 2021
9bbc99e
Fix
CyrusNajmabadi Mar 13, 2021
1f2df0a
test fixes'
CyrusNajmabadi Mar 13, 2021
f09f182
test fixes'
CyrusNajmabadi Mar 13, 2021
0c933d5
simplify
CyrusNajmabadi Mar 13, 2021
5e7e061
simplify
CyrusNajmabadi Mar 13, 2021
1dc3af7
simplify
CyrusNajmabadi Mar 13, 2021
44a08a6
Filter unnamed symbols as well
CyrusNajmabadi Mar 13, 2021
f679674
simplify
CyrusNajmabadi Mar 13, 2021
acdb61f
simplify
CyrusNajmabadi Mar 13, 2021
4888740
simplify
CyrusNajmabadi Mar 13, 2021
1104c57
simplify
CyrusNajmabadi Mar 13, 2021
139af1c
simplify
CyrusNajmabadi Mar 13, 2021
a7f1f6d
reorder
CyrusNajmabadi Mar 13, 2021
c32939b
Simplify
CyrusNajmabadi Mar 13, 2021
85c85fe
Simplify
CyrusNajmabadi Mar 13, 2021
78b9472
Tighten logic
CyrusNajmabadi Mar 14, 2021
825a017
simplify
CyrusNajmabadi Mar 14, 2021
38714d3
simplify
CyrusNajmabadi Mar 14, 2021
0748faa
docs'
CyrusNajmabadi Mar 14, 2021
38ec737
doc comment
CyrusNajmabadi Mar 14, 2021
f1b2866
Simplify
CyrusNajmabadi Mar 14, 2021
463ee55
simplify
CyrusNajmabadi Mar 14, 2021
30b76f5
Merge remote-tracking branch 'upstream/main' into intellisenseExplici…
CyrusNajmabadi Mar 18, 2021
3819516
Add docs
CyrusNajmabadi Mar 18, 2021
8265eaa
Whitespace
CyrusNajmabadi Mar 18, 2021
4b79520
Update src/Features/CSharp/Portable/Completion/CompletionProviders/Op…
CyrusNajmabadi Mar 18, 2021
ffcd9f4
Update src/Features/CSharp/Portable/Completion/CompletionProviders/Op…
CyrusNajmabadi Mar 18, 2021
621b4b1
rename
CyrusNajmabadi Mar 18, 2021
bd6ee53
Merge branch 'intellisenseExplicitCast' of https://github.com/MaStr11…
CyrusNajmabadi Mar 18, 2021
704dcff
Update src/Workspaces/CSharp/Portable/Recommendations/CSharpRecommend…
CyrusNajmabadi Mar 18, 2021
9c08521
Tests for EditorBrowsable for indexers
MaStr11 Mar 18, 2021
f7627d1
Test indexer is suggested on strings
MaStr11 Mar 18, 2021
84ee17d
FIx editor browsable
CyrusNajmabadi Mar 18, 2021
f29e223
Add test for EditorBrowsable on operators
MaStr11 Mar 18, 2021
01bc741
Add tests for EditorBrowsable on conversions
MaStr11 Mar 18, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,34 +38,35 @@ private protected override Task BaseVerifyWorkerAsync(
string expectedItemOrNull, string expectedDescriptionOrNull,
SourceCodeKind sourceCodeKind, bool usePreviousCharAsTrigger, bool checkForAbsence,
int? glyph, int? matchPriority, bool? hasSuggestionItem, string displayTextSuffix,
string inlineDescription = null, List<CompletionFilter> matchingFilters = null, CompletionItemFlags? flags = null)
string displayTextPrefix, string inlineDescription = null,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added displayTextPrefix, and flowed in along.

List<CompletionFilter> matchingFilters = null, CompletionItemFlags? flags = null)
{
return base.VerifyWorkerAsync(
code, position, expectedItemOrNull, expectedDescriptionOrNull,
sourceCodeKind, usePreviousCharAsTrigger, checkForAbsence,
glyph, matchPriority, hasSuggestionItem, displayTextSuffix,
inlineDescription, matchingFilters, flags);
displayTextPrefix, inlineDescription, matchingFilters, flags);
}

private protected override async Task VerifyWorkerAsync(
string code, int position,
string expectedItemOrNull, string expectedDescriptionOrNull,
SourceCodeKind sourceCodeKind, bool usePreviousCharAsTrigger,
bool checkForAbsence, int? glyph, int? matchPriority,
bool? hasSuggestionItem, string displayTextSuffix, string inlineDescription = null,
bool? hasSuggestionItem, string displayTextSuffix, string displayTextPrefix, string inlineDescription = null,
List<CompletionFilter> matchingFilters = null, CompletionItemFlags? flags = null)
{
await VerifyAtPositionAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyInFrontOfCommentAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyAtEndOfFileAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyAtPositionAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);
await VerifyInFrontOfCommentAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);
await VerifyAtEndOfFileAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);

// Items cannot be partially written if we're checking for their absence,
// or if we're verifying that the list will show up (without specifying an actual item)
if (!checkForAbsence && expectedItemOrNull != null)
{
await VerifyAtPosition_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyInFrontOfComment_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyAtEndOfFile_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription, matchingFilters);
await VerifyAtPosition_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);
await VerifyInFrontOfComment_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);
await VerifyAtEndOfFile_ItemPartiallyWrittenAsync(code, position, usePreviousCharAsTrigger, expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind, checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix, inlineDescription, matchingFilters);
}
}

Expand All @@ -77,44 +78,44 @@ private Task VerifyInFrontOfCommentAsync(
string expectedItemOrNull, string expectedDescriptionOrNull,
SourceCodeKind sourceCodeKind, bool checkForAbsence, int? glyph,
int? matchPriority, bool? hasSuggestionItem, string displayTextSuffix,
string inlineDescription, List<CompletionFilter> matchingFilters)
string displayTextPrefix, string inlineDescription, List<CompletionFilter> matchingFilters)
{
code = code.Substring(0, position) + insertText + "/**/" + code.Substring(position);
position += insertText.Length;

return base.VerifyWorkerAsync(
code, position, expectedItemOrNull, expectedDescriptionOrNull,
sourceCodeKind, usePreviousCharAsTrigger, checkForAbsence, glyph,
matchPriority, hasSuggestionItem, displayTextSuffix, inlineDescription,
matchingFilters, flags: null);
matchPriority, hasSuggestionItem, displayTextSuffix, displayTextPrefix,
inlineDescription, matchingFilters, flags: null);
}

private Task VerifyInFrontOfCommentAsync(
string code, int position, bool usePreviousCharAsTrigger,
string expectedItemOrNull, string expectedDescriptionOrNull,
SourceCodeKind sourceCodeKind, bool checkForAbsence, int? glyph,
int? matchPriority, bool? hasSuggestionItem, string displayTextSuffix,
string inlineDescription, List<CompletionFilter> matchingFilters)
string displayTextPrefix, string inlineDescription, List<CompletionFilter> matchingFilters)
{
return VerifyInFrontOfCommentAsync(
code, position, string.Empty, usePreviousCharAsTrigger,
expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind,
checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix,
inlineDescription, matchingFilters);
displayTextPrefix, inlineDescription, matchingFilters);
}

private protected Task VerifyInFrontOfComment_ItemPartiallyWrittenAsync(
string code, int position, bool usePreviousCharAsTrigger,
string expectedItemOrNull, string expectedDescriptionOrNull,
SourceCodeKind sourceCodeKind, bool checkForAbsence, int? glyph,
int? matchPriority, bool? hasSuggestionItem, string displayTextSuffix,
string inlineDescription, List<CompletionFilter> matchingFilters)
string displayTextPrefix, string inlineDescription, List<CompletionFilter> matchingFilters)
{
return VerifyInFrontOfCommentAsync(
code, position, ItemPartiallyWritten(expectedItemOrNull), usePreviousCharAsTrigger,
expectedItemOrNull, expectedDescriptionOrNull, sourceCodeKind,
checkForAbsence, glyph, matchPriority, hasSuggestionItem, displayTextSuffix,
inlineDescription, matchingFilters);
displayTextPrefix, inlineDescription, matchingFilters);
}

protected static string AddInsideMethod(string text)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public void TestCompletionProviderOrder()
typeof(KeywordCompletionProvider),
typeof(SpeculativeTCompletionProvider),
typeof(SymbolCompletionProvider),
typeof(UnnamedSymbolCompletionProvider),
typeof(ExplicitInterfaceMemberCompletionProvider),
typeof(ExplicitInterfaceTypeCompletionProvider),
typeof(ObjectCreationCompletionProvider),
Expand Down
Loading