Skip to content

Commit 0bd1278

Browse files
committed
ExtendSelection: accessors clause
1 parent 1053af3 commit 0bd1278

15 files changed

+152
-1
lines changed

ReSharper.FSharp/src/FSharp/FSharp.Psi.Features/src/ExtendSelection/FSharpExtendSelectionProvider.fs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,18 @@ type FSharpExtendSelectionProvider(settingsStore: ISettingsStore) =
9999
let parentExpr = node.Parent :?> IInterpolatedStringExpr
100100
if parentExpr.Literals.Count < 2 then null else
101101
FSharpInterpolatedStringExpressionSelection(fsFile, node.Parent :?> IInterpolatedStringExpr) :> _
102+
103+
| node ->
104+
105+
match node.Parent with
106+
| :? IOverridableMemberDeclaration as parent ->
107+
let withKeyword = parent.WithKeyword
108+
if isNull withKeyword then null else
109+
110+
if node.GetTreeStartOffset().Offset >= withKeyword.GetTreeStartOffset().Offset then
111+
FSharpTreeRangeSelection(fsFile, parent.WithKeyword, parent.LastChild) :> _ else
112+
113+
null
102114

103115
| _ -> null
104116

ReSharper.FSharp/src/FSharp/FSharp.Psi/src/FSharp.psi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1422,7 +1422,7 @@ memberSignature options { stubBase="FSharpProperTypeMemberDeclarationBase"; cus
14221422
accessorDecls?;
14231423

14241424
private accessorDecls:
1425-
WITH
1425+
WITH<WITH, WithKeyword>
14261426
accessorDeclaration<ACCESSOR_DECLARATION, AccessorDeclarations>
14271427
(
14281428
AND
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
type A() =
2+
member val P = 1 with get{caret}, set
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
type A() =
2+
member val P = 1 with |get|, set
3+
4+
---------------------------------------------------------
5+
type A() =
6+
member val P = 1 |with get, set|
7+
8+
---------------------------------------------------------
9+
type A() =
10+
|member val P = 1 with get, set|
11+
12+
---------------------------------------------------------
13+
|type A() =
14+
member val P = 1 with get, set|
15+
16+
---------------------------------------------------------
17+
|type A() =
18+
member val P = 1 with get, set
19+
|
20+
---------------------------------------------------------
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
type A =
2+
member x.P with get() = {caret}1 and set y = ()
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
type A =
2+
member x.P with get() = |1| and set y = ()
3+
4+
---------------------------------------------------------
5+
type A =
6+
member x.P with |get() = 1| and set y = ()
7+
8+
---------------------------------------------------------
9+
type A =
10+
member x.P |with get() = 1 and set y = ()|
11+
12+
---------------------------------------------------------
13+
type A =
14+
|member x.P with get() = 1 and set y = ()|
15+
16+
---------------------------------------------------------
17+
|type A =
18+
member x.P with get() = 1 and set y = ()|
19+
20+
---------------------------------------------------------
21+
|type A =
22+
member x.P with get() = 1 and set y = ()
23+
|
24+
---------------------------------------------------------
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
type A =
2+
member x.P with get() = 1 and{caret} set y = ()
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
type A =
2+
member x.P with get() = 1 |and| set y = ()
3+
4+
---------------------------------------------------------
5+
type A =
6+
member x.P |with get() = 1 and set y = ()|
7+
8+
---------------------------------------------------------
9+
type A =
10+
|member x.P with get() = 1 and set y = ()|
11+
12+
---------------------------------------------------------
13+
|type A =
14+
member x.P with get() = 1 and set y = ()|
15+
16+
---------------------------------------------------------
17+
|type A =
18+
member x.P with get() = 1 and set y = ()
19+
|
20+
---------------------------------------------------------
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
type A() =
2+
member val A = 1 with{caret} get, set
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
type A() =
2+
member val A = 1 |with| get, set
3+
4+
---------------------------------------------------------
5+
type A() =
6+
member val A = 1 |with get, set|
7+
8+
---------------------------------------------------------
9+
type A() =
10+
|member val A = 1 with get, set|
11+
12+
---------------------------------------------------------
13+
|type A() =
14+
member val A = 1 with get, set|
15+
16+
---------------------------------------------------------
17+
|type A() =
18+
member val A = 1 with get, set
19+
|
20+
---------------------------------------------------------

0 commit comments

Comments
 (0)