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

Snap 17.11 Preview 2 #73753

Merged
merged 1,295 commits into from
May 28, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
1295 commits
Select commit Hold shift + click to select a range
a7aa293
Remove unused usings
CyrusNajmabadi May 22, 2024
3fcb051
Merge branch 'main' into classificationWalk
CyrusNajmabadi May 22, 2024
1acba2e
Cache classification services
CyrusNajmabadi May 22, 2024
18da884
consistency
CyrusNajmabadi May 22, 2024
50aa1c7
Docs
CyrusNajmabadi May 22, 2024
5e17999
Merge remote-tracking branch 'upstream/main' into cacheServices
CyrusNajmabadi May 22, 2024
ccabbe4
Merge branch 'simpleUsing' into fileScopedNamespace
CyrusNajmabadi May 22, 2024
9783a30
Merge remote-tracking branch 'upstream/main' into simpleUsing
CyrusNajmabadi May 22, 2024
da994cf
Merge pull request #73632 from CyrusNajmabadi/simpleUsing
CyrusNajmabadi May 22, 2024
35e4223
Merge pull request #73633 from CyrusNajmabadi/removeUsings
CyrusNajmabadi May 22, 2024
25baf42
Merge remote-tracking branch 'upstream/main' into cacheServices
CyrusNajmabadi May 22, 2024
8527c3f
Switch to a record
CyrusNajmabadi May 22, 2024
9b0a4c0
Merge remote-tracking branch 'upstream/main' into classificationWalk
CyrusNajmabadi May 22, 2024
ea70ac3
Switch to AsNode extension
CyrusNajmabadi May 22, 2024
70a545b
Simplify code in ForAttributeWithMetadataName
CyrusNajmabadi May 22, 2024
6f29d8a
Merge branch 'asNode' into classificationWalk
CyrusNajmabadi May 22, 2024
4cf0ab5
Break out early
CyrusNajmabadi May 22, 2024
cf8968a
Simplify walk
CyrusNajmabadi May 22, 2024
a86ad1c
Simplify
CyrusNajmabadi May 22, 2024
d623561
Merge remote-tracking branch 'upstream/main' into fileScopedNamespace
CyrusNajmabadi May 22, 2024
b8395ee
Add object browser support for ref struct interfaces (#73621)
ToddGrun May 22, 2024
908752f
Merge pull request #73629 from CyrusNajmabadi/classificationWalk
CyrusNajmabadi May 22, 2024
fc5fd0c
Merge pull request #73645 from CyrusNajmabadi/asNode
CyrusNajmabadi May 22, 2024
8bbe4ef
Merge pull request #73646 from CyrusNajmabadi/asNode2
CyrusNajmabadi May 22, 2024
3df090b
Merge pull request #73634 from CyrusNajmabadi/fileScopedNamespace
CyrusNajmabadi May 22, 2024
a9cc67a
Ignore the commits that update us to FileScopedNamespaces
CyrusNajmabadi May 22, 2024
026fbb7
Merge pull request #73647 from CyrusNajmabadi/ignoreWhitespace
CyrusNajmabadi May 22, 2024
c221e3f
Merge pull request #73635 from CyrusNajmabadi/cacheServices
CyrusNajmabadi May 22, 2024
14eece9
Squeeze perf
CyrusNajmabadi May 22, 2024
c5a38ad
Move to tag spans
CyrusNajmabadi May 22, 2024
5862e01
no alloc
CyrusNajmabadi May 22, 2024
316f0a6
Remove suppresion
CyrusNajmabadi May 22, 2024
3a08e9e
no interface
CyrusNajmabadi May 22, 2024
79831fc
Simplify
CyrusNajmabadi May 22, 2024
f6f7d32
Add back
CyrusNajmabadi May 22, 2024
1eba0d9
prevent service fetch
CyrusNajmabadi May 22, 2024
2cd8f0b
Ignore drive casing when comparing on windows platforms (#73380)
ryzngard May 22, 2024
e65a990
Work around dotnet/wpf#122 in Document Outline
sharwell May 17, 2024
6da3b0f
Move away from LanguageService and simplify.
JoeRobich May 22, 2024
3ed16d1
Merge pull request #73564 from sharwell/avoid-crash
sharwell May 22, 2024
d89c824
Merge pull request #73648 from CyrusNajmabadi/classificationPerf
CyrusNajmabadi May 22, 2024
70438a8
Increase the line cache count
CyrusNajmabadi May 23, 2024
5b9f6f1
Merge remote-tracking branch 'upstream/main' into lineCache
CyrusNajmabadi May 23, 2024
6594ef2
Less garbage
CyrusNajmabadi May 23, 2024
4fcdb6d
Docs
CyrusNajmabadi May 23, 2024
c2d84f5
Add test for F1 on "allows ref struct" (#73654)
ToddGrun May 23, 2024
6cc4817
Rename file
CyrusNajmabadi May 23, 2024
0377096
Improve comment
CyrusNajmabadi May 23, 2024
c7420b3
Simplify
CyrusNajmabadi May 23, 2024
9675825
Use record
CyrusNajmabadi May 23, 2024
bf9ceb4
Docs
CyrusNajmabadi May 23, 2024
93558a0
Update src/EditorFeatures/Core/Classification/Syntactic/SyntacticClas…
CyrusNajmabadi May 23, 2024
195dba8
Expose XAML IDiagnosticSourceProvider names
etvorun May 23, 2024
975ba0a
Convert type to a struct
CyrusNajmabadi May 23, 2024
5fec4fb
Implement ICollection<T> on ArrayBuilder (#73659)
tmat May 23, 2024
423874f
Simpler
CyrusNajmabadi May 23, 2024
0f2acd9
Simplify
CyrusNajmabadi May 23, 2024
7fd9575
Simplify
CyrusNajmabadi May 23, 2024
e48e90b
Simplify
CyrusNajmabadi May 23, 2024
67ad43c
Merge branch 'lineCache' of https://github.com/CyrusNajmabadi/roslyn …
CyrusNajmabadi May 23, 2024
5940e8c
Use extension manager when running sig help providers
JoeRobich May 23, 2024
8d877a3
Don't reuse cache when doc-id or parse options change
CyrusNajmabadi May 23, 2024
d419f81
Pull out common logic
CyrusNajmabadi May 23, 2024
f615f51
Update src/Features/LanguageServer/Protocol/Handler/Diagnostics/Abstr…
CyrusNajmabadi May 23, 2024
6a2cc9e
Pass data through
CyrusNajmabadi May 23, 2024
b8667e0
Strengthen language version tests for Ref Struct Interfaces (#73607)
AlekseyTs May 23, 2024
ead5399
Simplify
CyrusNajmabadi May 23, 2024
244d514
Merge branch 'lineCache' of https://github.com/CyrusNajmabadi/roslyn …
CyrusNajmabadi May 23, 2024
c0972e9
Explicitness
CyrusNajmabadi May 23, 2024
137c4c0
Docs
CyrusNajmabadi May 23, 2024
4004fab
Pooling
CyrusNajmabadi May 23, 2024
6a81f8d
Formatting
CyrusNajmabadi May 23, 2024
90b48bf
Simplify
CyrusNajmabadi May 23, 2024
6180d36
Simplify
CyrusNajmabadi May 23, 2024
7b5d0a5
Move EnC workspace tests down to Features layer (#73660)
tmat May 23, 2024
02ca493
Merge pull request #73674 from etvorun/fix_diag_provider_names
dibarbet May 23, 2024
ab4acb9
remove contract
CyrusNajmabadi May 23, 2024
8fde5f4
Slow down the work navbar does, and cancel updating it when receiving…
CyrusNajmabadi May 23, 2024
458123f
Short delay
CyrusNajmabadi May 23, 2024
d1bfb49
Update src/EditorFeatures/Core/NavigationBar/NavigationBarController.cs
CyrusNajmabadi May 23, 2024
4e27543
Fix comment
CyrusNajmabadi May 23, 2024
690522a
Merge branch 'navBarCAdence' of https://github.com/CyrusNajmabadi/ros…
CyrusNajmabadi May 23, 2024
819706a
Remove default cancellationToken
JoeRobich May 23, 2024
6047f15
Avoid having to go back to the UI thread in the navbar code
CyrusNajmabadi May 23, 2024
6f711a6
Merge pull request #73680 from CyrusNajmabadi/navBarCAdence
CyrusNajmabadi May 23, 2024
8fb9b4c
Merge remote-tracking branch 'upstream/main' into lessUIHops
CyrusNajmabadi May 23, 2024
d4af7a0
Simplify
CyrusNajmabadi May 24, 2024
b394134
Simplify
CyrusNajmabadi May 24, 2024
68575ed
Simplify
CyrusNajmabadi May 24, 2024
d37015e
Simplify
CyrusNajmabadi May 24, 2024
569ecae
Include more data for debugging purposes
CyrusNajmabadi May 24, 2024
0e049af
Ensure we sync source-generator versions over
CyrusNajmabadi May 24, 2024
1f26235
Merge branch 'moreData' into fixversions
CyrusNajmabadi May 24, 2024
213d6f6
Add failing test
CyrusNajmabadi May 24, 2024
72f0d13
Filter to cone
CyrusNajmabadi May 24, 2024
ec93266
Merge pull request #73684 from CyrusNajmabadi/moreData
CyrusNajmabadi May 24, 2024
78d622b
Fix filtering
CyrusNajmabadi May 24, 2024
b9cbac7
Comments
CyrusNajmabadi May 24, 2024
5f6d7f2
remove
CyrusNajmabadi May 24, 2024
af4d9b2
Share a helper with the switch expression helper
RenderMichael May 24, 2024
cb26888
Renames
CyrusNajmabadi May 24, 2024
2f4fdee
Merge pull request #73681 from CyrusNajmabadi/lessUIHops
CyrusNajmabadi May 24, 2024
2e1435d
Merge pull request #73673 from CyrusNajmabadi/lineCache
CyrusNajmabadi May 24, 2024
a625300
In progress
CyrusNajmabadi May 24, 2024
45198ea
More ui work
CyrusNajmabadi May 24, 2024
da8522c
Comments
CyrusNajmabadi May 24, 2024
594cf95
in progres
CyrusNajmabadi May 24, 2024
5df81cf
Remove ISignatureHelpService interface
JoeRobich May 24, 2024
96813b9
IN progress
CyrusNajmabadi May 24, 2024
1dfb46e
IN progress
CyrusNajmabadi May 24, 2024
9f61479
Merge pull request #73688 from CyrusNajmabadi/inProgress
CyrusNajmabadi May 24, 2024
6b3608c
Spin
CyrusNajmabadi May 24, 2024
3ad1639
Done
CyrusNajmabadi May 24, 2024
1d544fb
Cleanup
CyrusNajmabadi May 24, 2024
4d1998a
Cleanup
CyrusNajmabadi May 24, 2024
ba6cbe9
Add docs
CyrusNajmabadi May 24, 2024
4e01406
Reverse
CyrusNajmabadi May 24, 2024
14a96f9
Final editor side changes for "allow ref struct" support (#73700)
ToddGrun May 24, 2024
3b73c80
Merge pull request #73606 from dotnet/dev/jorobich/fix-nested-signatu…
JoeRobich May 24, 2024
69060d8
Simplify
CyrusNajmabadi May 24, 2024
13b9493
Remove wrapper
CyrusNajmabadi May 24, 2024
5723ae1
Update src/EditorFeatures/Core/Classification/Semantic/AbstractSemant…
CyrusNajmabadi May 24, 2024
5ef1b2a
fix comments
CyrusNajmabadi May 24, 2024
4eed867
use correct token
CyrusNajmabadi May 24, 2024
addb628
Merge branch 'lessMainThreadSwitch' of https://github.com/CyrusNajmab…
CyrusNajmabadi May 24, 2024
2b83bd9
Add docs
CyrusNajmabadi May 24, 2024
0e6342d
Text image helper
CyrusNajmabadi May 24, 2024
e08f41f
use text images
CyrusNajmabadi May 24, 2024
900ed3d
Bring back bt
CyrusNajmabadi May 24, 2024
01115ee
Update src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Coll…
CyrusNajmabadi May 24, 2024
8ac12be
Update src/Workspaces/SharedUtilitiesAndExtensions/Compiler/Core/Coll…
CyrusNajmabadi May 24, 2024
bb87e4d
Remove
CyrusNajmabadi May 24, 2024
6e4546d
Utilize ImmutableCollectionsMarshal to get ROS for XxHash128.Hash cal…
ToddGrun May 24, 2024
6c9936c
Merge pull request #73699 from CyrusNajmabadi/lessMainThreadSwitch
CyrusNajmabadi May 25, 2024
122dc90
Merge pull request #73676 from CyrusNajmabadi/tagNode
CyrusNajmabadi May 25, 2024
0bd3644
pool collections
CyrusNajmabadi May 25, 2024
42edaf7
pool collections
CyrusNajmabadi May 25, 2024
59796c0
Reduce size of interval tree used for tagging
CyrusNajmabadi May 25, 2024
725c6c3
Merge branch 'intervalTree' into treeEfficiency
CyrusNajmabadi May 25, 2024
7cf44d1
Merge pull request #73574 from RenderMichael/switch-or
CyrusNajmabadi May 25, 2024
201ce9f
Pool objects
CyrusNajmabadi May 25, 2024
8bf177f
Share code
CyrusNajmabadi May 25, 2024
d756da3
Docs
CyrusNajmabadi May 25, 2024
856b297
less allocs
CyrusNajmabadi May 25, 2024
9d3d82d
less allocs
CyrusNajmabadi May 25, 2024
3c36645
less allocs
CyrusNajmabadi May 25, 2024
88ce977
Do not suppress the warning, which doesn't need to be suppressed
DoctorKrolic May 25, 2024
d519e98
Merge pull request #73703 from CyrusNajmabadi/intervalTree
CyrusNajmabadi May 25, 2024
ed1b5c0
Merge pull request #73711 from DoctorKrolic/do-not-suppress
CyrusNajmabadi May 25, 2024
cc6177b
Merge branch 'main' into treeEfficiency
CyrusNajmabadi May 25, 2024
aa78f76
Simplify
CyrusNajmabadi May 25, 2024
386b920
Merge pull request #73708 from CyrusNajmabadi/treeEfficiency
CyrusNajmabadi May 25, 2024
9892139
Move over to IDE using TagSpan uniformly
CyrusNajmabadi May 25, 2024
e95858a
More cases
CyrusNajmabadi May 25, 2024
a974c1a
Move interval trees over to being TextSpan based
CyrusNajmabadi May 25, 2024
acbd624
in progress
CyrusNajmabadi May 25, 2024
b20717b
More cases
CyrusNajmabadi May 25, 2024
911c8b9
More cases
CyrusNajmabadi May 25, 2024
4e4eb96
Remaining items
CyrusNajmabadi May 25, 2024
5d9e065
Remove unused parameter
CyrusNajmabadi May 25, 2024
994f6fe
Merge branch 'tagSpan' into allIntervalTreeWork
CyrusNajmabadi May 25, 2024
c4a9f59
Merge branch 'intervalTreeSpan' into allIntervalTreeWork
CyrusNajmabadi May 25, 2024
acaf0f5
Do not hold onto text buffer
CyrusNajmabadi May 25, 2024
e47a164
Simplify
CyrusNajmabadi May 25, 2024
f62585d
Simplify
CyrusNajmabadi May 25, 2024
fa9d227
Simplify
CyrusNajmabadi May 25, 2024
0d4d851
Simplify
CyrusNajmabadi May 25, 2024
1093fc7
Better pooling
CyrusNajmabadi May 25, 2024
fb52a1a
remove method
CyrusNajmabadi May 25, 2024
4df5f39
inline
CyrusNajmabadi May 25, 2024
4196af4
Simplify
CyrusNajmabadi May 25, 2024
02f27fc
Docs
CyrusNajmabadi May 25, 2024
49f23ae
less allocations
CyrusNajmabadi May 25, 2024
f3b677b
Pass along snapshot, not buffer
CyrusNajmabadi May 25, 2024
9fca484
use new helper. avoid allocs
CyrusNajmabadi May 25, 2024
6350341
Merge pull request #73714 from CyrusNajmabadi/intervalTreeSpan
CyrusNajmabadi May 25, 2024
74e6911
reuse buffer
CyrusNajmabadi May 25, 2024
6f361b9
Merge remote-tracking branch 'upstream/main' into tagSpan
CyrusNajmabadi May 25, 2024
36ff803
Merge branch 'tagSpan' into allIntervalTreeWork
CyrusNajmabadi May 25, 2024
8acf1bb
pool objects
CyrusNajmabadi May 25, 2024
f37f24b
remove method
CyrusNajmabadi May 25, 2024
488d6cf
Use existing helper
CyrusNajmabadi May 25, 2024
367c625
move helper to tests
CyrusNajmabadi May 25, 2024
0291f82
doc comment
CyrusNajmabadi May 25, 2024
3d6ae3d
inline
CyrusNajmabadi May 25, 2024
f760ff0
Merge pull request #73713 from CyrusNajmabadi/tagSpan
CyrusNajmabadi May 25, 2024
9f7f16d
Merge remote-tracking branch 'upstream/main' into allIntervalTreeWork
CyrusNajmabadi May 25, 2024
46e4d70
rename
CyrusNajmabadi May 25, 2024
4814c75
Don't push non-intersecting nodes/tokens to the classification stack
CyrusNajmabadi May 25, 2024
7316b67
rename
CyrusNajmabadi May 25, 2024
57fe454
Merge pull request #73717 from CyrusNajmabadi/classificatoinStack
CyrusNajmabadi May 25, 2024
42d410b
Merge branch 'main' into allIntervalTreeWork
CyrusNajmabadi May 25, 2024
244da42
pass by ref
CyrusNajmabadi May 26, 2024
908bdc1
Cache the getnode/gettoken classifiers retrieived from the extension …
ToddGrun May 26, 2024
7209a05
Make static
CyrusNajmabadi May 26, 2024
acb8324
Remove allocations
CyrusNajmabadi May 26, 2024
bb50d0e
pull out of loop
CyrusNajmabadi May 26, 2024
8b2386c
Move to segmented list
CyrusNajmabadi May 26, 2024
b46bc3d
empty on null root
CyrusNajmabadi May 26, 2024
f117182
Merge pull request #73715 from CyrusNajmabadi/allIntervalTreeWork
CyrusNajmabadi May 26, 2024
fa47f39
Small tweaks to the recursion walk we do when looking for strign inde…
CyrusNajmabadi May 26, 2024
7d61a64
Avoid unnecessary tree walk when hitting non-relevant directives
CyrusNajmabadi May 26, 2024
a7fc120
Don't run code in the async/await highlighter unless on one of those …
CyrusNajmabadi May 26, 2024
9527e05
Update the loop highlighter as well
CyrusNajmabadi May 26, 2024
ee4fcc7
Simplify
CyrusNajmabadi May 26, 2024
2911747
Use extension
CyrusNajmabadi May 26, 2024
81a6cb9
no trim
CyrusNajmabadi May 26, 2024
87cc785
avoid work
CyrusNajmabadi May 26, 2024
31478b3
avoid work
CyrusNajmabadi May 26, 2024
3705237
Streamline brace matcher
CyrusNajmabadi May 26, 2024
6ead246
Speed up switch highlighter
CyrusNajmabadi May 26, 2024
c7afd16
Speed up if highlighter
CyrusNajmabadi May 26, 2024
655de65
Break out when we can
CyrusNajmabadi May 26, 2024
58a6740
nrt
CyrusNajmabadi May 26, 2024
4bfd85b
Merge pull request #73720 from CyrusNajmabadi/regionMatching
CyrusNajmabadi May 26, 2024
b7594de
Fix switches
CyrusNajmabadi May 26, 2024
b5ba9e7
Merge pull request #73719 from CyrusNajmabadi/stringIndentationRecurse
CyrusNajmabadi May 26, 2024
b46b2b5
Switch to work queue for code definition window
CyrusNajmabadi May 26, 2024
f026be0
Remove usings
CyrusNajmabadi May 26, 2024
dc5d0be
Fix tests
CyrusNajmabadi May 26, 2024
836ccdc
Fix tests
CyrusNajmabadi May 26, 2024
6c8ebd8
Remove legacy api used only by vs4mac.
CyrusNajmabadi May 26, 2024
13dd08c
Merge pull request #73722 from CyrusNajmabadi/braceMatcherPerf
CyrusNajmabadi May 26, 2024
1f5f096
Merge pull request #73723 from CyrusNajmabadi/codeDefWindow
CyrusNajmabadi May 26, 2024
0a74148
Merge pull request #73721 from CyrusNajmabadi/asyncAwaitPerf
CyrusNajmabadi May 26, 2024
38f9d6f
Avoid unnecessary array alloc in common case
CyrusNajmabadi May 26, 2024
7273ebc
Merge pull request #73724 from CyrusNajmabadi/vs4macApi
CyrusNajmabadi May 26, 2024
6163db4
move to single caller
CyrusNajmabadi May 26, 2024
6fadc26
Lower allocations in tagging
CyrusNajmabadi May 26, 2024
b365517
Merge remote-tracking branch 'upstream/main' into taggerAllocs
CyrusNajmabadi May 26, 2024
ee0a71c
Cleanup
CyrusNajmabadi May 26, 2024
d082aee
Remove
CyrusNajmabadi May 26, 2024
7b559ce
Switch to oneormay
CyrusNajmabadi May 26, 2024
a7e4d63
Update src/EditorFeatures/Core/EditAndContinue/ActiveStatementTaggerP…
CyrusNajmabadi May 26, 2024
c0542ac
Avoid allocations
CyrusNajmabadi May 26, 2024
d5e2fda
Simplify
CyrusNajmabadi May 26, 2024
c54f36d
Doc
CyrusNajmabadi May 26, 2024
47ee3b9
remove linq
CyrusNajmabadi May 26, 2024
80206a4
Do all changes at once
CyrusNajmabadi May 27, 2024
8455e83
FirstOrDefault
CyrusNajmabadi May 27, 2024
9653ac5
Merge pull request #73727 from CyrusNajmabadi/arrayAlloc
CyrusNajmabadi May 27, 2024
9732adb
Align sort implementation with reference from dotnet/runtime
sharwell May 28, 2024
e67b168
Simplify
CyrusNajmabadi May 28, 2024
2b49fbd
Merge branch 'main' into merges/release/dev17.11-to-main
Cosifne May 28, 2024
f181554
Fix
CyrusNajmabadi May 28, 2024
2d11197
Optimization of (de)serialization of ProjectId.DebugNames (#73734)
ToddGrun May 28, 2024
93d3cf9
Merge pull request #73739 from sharwell/align-impl
sharwell May 28, 2024
260e44c
fix
CyrusNajmabadi May 28, 2024
04e1839
Merge pull request #73729 from CyrusNajmabadi/taggerAllocs
CyrusNajmabadi May 28, 2024
bf4554b
Merge pull request #73683 from dotnet/merges/release/dev17.11-to-main
dotnet-bot May 28, 2024
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
Prev Previous commit
Next Next commit
Don't push non-intersecting nodes/tokens to the classification stack
  • Loading branch information
CyrusNajmabadi committed May 25, 2024
commit 4814c75f6b93270c9230c32fe94db64015d89bf0
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ private readonly ref struct Worker
private readonly ClassificationOptions _options;

private static readonly ObjectPool<SegmentedList<ClassifiedSpan>> s_listPool = new(() => []);
private static readonly ObjectPool<Stack<SyntaxNodeOrToken>> s_stackPool = new(() => new(), trimOnFree: false);

private Worker(
SemanticModel semanticModel,
Expand All @@ -49,7 +50,7 @@ private Worker(

// get one from pool
_set = SharedPools.Default<SegmentedHashSet<ClassifiedSpan>>().AllocateAndClear();
_pendingNodes = SharedPools.Default<Stack<SyntaxNodeOrToken>>().AllocateAndClear();
_pendingNodes = s_stackPool.Allocate();
}

internal static void Classify(
Expand Down Expand Up @@ -77,8 +78,8 @@ public void Dispose()
// threshold simply with a single classified screen. This allows reuse of those sets without causing
// lots of garbage.
_set.Clear();
s_stackPool.ClearAndFree(_pendingNodes);
SharedPools.Default<SegmentedHashSet<ClassifiedSpan>>().Free(_set);
SharedPools.Default<Stack<SyntaxNodeOrToken>>().ClearAndFree(this._pendingNodes);
}

private void AddClassification(TextSpan textSpan, string type)
Expand All @@ -100,29 +101,23 @@ private void ProcessNodes()
{
_cancellationToken.ThrowIfCancellationRequested();

if (nodeOrToken.FullSpan.IntersectsWith(_textSpan))
{
ClassifyNodeOrToken(nodeOrToken);
ClassifyNodeOrToken(nodeOrToken);

foreach (var child in nodeOrToken.ChildNodesAndTokens())
{
foreach (var child in nodeOrToken.ChildNodesAndTokens())
{
// Only push children that intersect the span we're classifying. This way we keep the stack size small.
if (child.FullSpan.IntersectsWith(_textSpan))
_pendingNodes.Push(child);
}
}
}
}

private void ClassifyNodeOrToken(SyntaxNodeOrToken nodeOrToken)
{
var node = nodeOrToken.AsNode();
if (node != null)
{
if (nodeOrToken.AsNode(out var node))
ClassifyNode(node);
}
else
{
ClassifyToken(nodeOrToken.AsToken());
}
}

private void ClassifyNode(SyntaxNode syntax)
Expand All @@ -149,9 +144,7 @@ private void AddClassifications(SegmentedList<ClassifiedSpan> classifications)
private void AddClassification(ClassifiedSpan classification)
{
if (classification.ClassificationType != null)
{
AddClassification(classification.TextSpan, classification.ClassificationType);
}
}

private void ClassifyToken(SyntaxToken syntax)
Expand Down Expand Up @@ -179,10 +172,8 @@ private void ClassifyStructuredTrivia(SyntaxTriviaList triviaList)
{
_cancellationToken.ThrowIfCancellationRequested();

if (trivia.HasStructure)
{
if (trivia.HasStructure && trivia.FullSpan.IntersectsWith(_textSpan))
_pendingNodes.Push(trivia.GetStructure());
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ public static void ClearAndFree<T>(this ObjectPool<Stack<T>> pool, Stack<T> set)
var count = set.Count;
set.Clear();

if (count > Threshold)
if (count > Threshold && pool.TrimOnFree)
{
set.TrimExcess();
}
Expand Down