Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -99,6 +99,18 @@ type FSharpExtendSelectionProvider(settingsStore: ISettingsStore) =
let parentExpr = node.Parent :?> IInterpolatedStringExpr
if parentExpr.Literals.Count < 2 then null else
FSharpInterpolatedStringExpressionSelection(fsFile, node.Parent :?> IInterpolatedStringExpr) :> _

| node ->

match node.Parent with
| :? IOverridableMemberDeclaration as parent ->
let withKeyword = parent.WithKeyword
if isNull withKeyword then null else

if node.GetTreeStartOffset().Offset >= withKeyword.GetTreeStartOffset().Offset then
FSharpTreeRangeSelection(fsFile, parent.WithKeyword, parent.LastChild) :> _ else

null

| _ -> null

Expand Down
2 changes: 1 addition & 1 deletion ReSharper.FSharp/src/FSharp/FSharp.Psi/src/FSharp.psi
Original file line number Diff line number Diff line change
Expand Up @@ -1422,7 +1422,7 @@ memberSignature options { stubBase="FSharpProperTypeMemberDeclarationBase"; cus
accessorDecls?;

private accessorDecls:
WITH
WITH<WITH, WithKeyword>
accessorDeclaration<ACCESSOR_DECLARATION, AccessorDeclarations>
(
AND
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A() =
member val P = 1 with get{caret}, set
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
type A() =
member val P = 1 with |get|, set

---------------------------------------------------------
type A() =
member val P = 1 |with get, set|

---------------------------------------------------------
type A() =
|member val P = 1 with get, set|

---------------------------------------------------------
|type A() =
member val P = 1 with get, set|

---------------------------------------------------------
|type A() =
member val P = 1 with get, set
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A =
member x.P with get() = {caret}1 and set y = ()
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
type A =
member x.P with get() = |1| and set y = ()

---------------------------------------------------------
type A =
member x.P with |get() = 1| and set y = ()

---------------------------------------------------------
type A =
member x.P |with get() = 1 and set y = ()|

---------------------------------------------------------
type A =
|member x.P with get() = 1 and set y = ()|

---------------------------------------------------------
|type A =
member x.P with get() = 1 and set y = ()|

---------------------------------------------------------
|type A =
member x.P with get() = 1 and set y = ()
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A =
member x.P with get() = 1 and{caret} set y = ()
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
type A =
member x.P with get() = 1 |and| set y = ()

---------------------------------------------------------
type A =
member x.P |with get() = 1 and set y = ()|

---------------------------------------------------------
type A =
|member x.P with get() = 1 and set y = ()|

---------------------------------------------------------
|type A =
member x.P with get() = 1 and set y = ()|

---------------------------------------------------------
|type A =
member x.P with get() = 1 and set y = ()
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A() =
member val A = 1 with{caret} get, set
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
type A() =
member val A = 1 |with| get, set

---------------------------------------------------------
type A() =
member val A = 1 |with get, set|

---------------------------------------------------------
type A() =
|member val A = 1 with get, set|

---------------------------------------------------------
|type A() =
member val A = 1 with get, set|

---------------------------------------------------------
|type A() =
member val A = 1 with get, set
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A() =
member _.P = 1{caret}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
type A() =
member _.P = |1|

---------------------------------------------------------
type A() =
|member _.P = 1|

---------------------------------------------------------
|type A() =
member _.P = 1|

---------------------------------------------------------
|type A() =
member _.P = 1
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
type A =
abstract P: int with get,{caret} set
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
type A =
abstract P: int with get|,| set

---------------------------------------------------------
type A =
abstract P: int |with get, set|

---------------------------------------------------------
type A =
|abstract P: int with get, set|

---------------------------------------------------------
|type A =
abstract P: int with get, set|

---------------------------------------------------------
|type A =
abstract P: int with get, set
|
---------------------------------------------------------
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,10 @@ type FSharpExtendSelectionTest() =
[<Test>] member x.``Strings - Interpolated - Triple quoted 03 - Complex insertion``() = x.DoNamedTest()

[<Test>] member x.``Strings - Injections 01``() = x.DoNamedTest()

[<Test>] member x.``Accessors clause 01 - Implicit``() = x.DoNamedTest()
[<Test>] member x.``Accessors clause 02 - Explicit``() = x.DoNamedTest()
[<Test>] member x.``Accessors clause 03 - Between``() = x.DoNamedTest()
[<Test>] member x.``Accessors clause 04 - With``() = x.DoNamedTest()
[<Test>] member x.``Accessors clause 05 - No accessors``() = x.DoNamedTest()
[<Test>] member x.``Accessors clause 06 - Abstract``() = x.DoNamedTest()
Loading