Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
DedSec256 committed Feb 12, 2025
1 parent 0bb1bb5 commit 4b4ae9d
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -159,13 +159,18 @@ type FunctionAnnotationAction(dataProvider: FSharpContextActionDataProvider) =


[<ContextAction(Name = "AnnotatePattern", GroupType = typeof<FSharpContextActions>,
Description = "Annotate named pattern")>]
Description = "Annotate named parameter/pattern with it is type")>]
type PatternAnnotationAction(dataProvider: FSharpContextActionDataProvider) =
inherit FSharpContextActionBase(dataProvider)
override x.Text = "Add type annotation"

override x.IsAvailable _ =
let pattern = dataProvider.GetSelectedElement<IReferencePat>().IgnoreParentParens()
let pattern =
match OptionalValPatNavigator.GetByPattern(pattern) with
| null -> pattern
| x -> x

isNotNull pattern &&
isNull (TypedPatNavigator.GetByPattern(pattern)) &&
isNull (BindingNavigator.GetByHeadPattern(pattern))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let a as (b: int) = 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module Module

let a as (b: int) = 1

---------------------------------------------------------
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module Module

type R = { A: int }
let { A = (a: int) } = failwith ""
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module Module

type R = { A: int }
let { A = (a: int) } = failwith ""

---------------------------------------------------------
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ let x{off} = 1
let a, b{on} = 1, 1

let f{off} x{on} (So{off}me(y{on})) (z{off}: int) = ()

type A() =
member _.M(?x{on}, ?y{off}: int) = x + y
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ type RedundantParenPatTest() =
[<Test>] member x.``Typed 05 - Members param decl``() = x.DoNamedTest()
[<Test>] member x.``Typed 06 - Tuple``() = x.DoNamedTest()
[<Test>] member x.``Typed 07 - Match clause``() = x.DoNamedTest()
//TODO: remove parens
[<Test>] member x.``Typed 08 - As``() = x.DoNamedTest()
//TODO: remove parens
[<Test>] member x.``Typed 09 - Named field``() = x.DoNamedTest()

[<Test>] member x.``Wild - Function param 01``() = x.DoNamedTest()
[<Test>] member x.``Wild - Pattern param 01``() = x.DoNamedTest()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ type SpecifyPatternTypeActionTest() =
[<Test>] member x.``Tuple 02 - Top level``() = x.DoNamedTest()
[<Test>] member x.``Tuple 03 - As``() = x.DoNamedTest()

//TODO: remove parens
[<Test>] member x.``Record field 01``() = x.DoNamedTest()

[<Test>] member x.``Union case 01``() = x.DoNamedTest()
//TODO: remove parens
[<Test>] member x.``Union case 02 - Named``() = x.DoNamedTest()
[<Test>] member x.``Union case 03 - Parens``() = x.DoNamedTest()

Expand Down

0 comments on commit 4b4ae9d

Please sign in to comment.