File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed
src/Features/Core/Portable Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -34,10 +34,19 @@ public static async Task<TSyntaxNode> TryGetSelectedNodeAsync<TSyntaxNode>(
3434 var root = await document . GetSyntaxRootAsync ( cancellationToken ) . ConfigureAwait ( false ) ;
3535 var selectionStripped = await GetStrippedTextSpan ( document , selection , cancellationToken ) . ConfigureAwait ( false ) ;
3636
37- if ( root . FindNode ( selectionStripped ) is TSyntaxNode node )
37+ var node = root . FindNode ( selectionStripped , getInnermostNodeForTie : true ) ;
38+ SyntaxNode prevNode ;
39+ do
3840 {
39- return node ;
40- }
41+ if ( node is TSyntaxNode )
42+ {
43+ return ( TSyntaxNode ) node ;
44+ }
45+
46+ prevNode = node ;
47+ node = node . Parent ;
48+
49+ } while ( node != null && prevNode . FullWidth ( ) == node . FullWidth ( ) ) ;
4150
4251 // only consider what is direct selection touching when selection is empty
4352 // prevents `[|C|] methodName(){}` from registering as relevant for method Node
You can’t perform that action at this time.
0 commit comments