From 4c6e9bcfcbf0b819bcee919ecc0c440ea13a2e40 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Fri, 1 Jul 2022 18:08:33 +0200 Subject: [PATCH] Parameter info: disable for binary apps --- .../src/ParameterInfo/FSharpParameterInfo.fs | 4 ++++ .../test/data/features/parameterInfo/App - Operator 01.fs | 1 + .../data/features/parameterInfo/App - Operator 01.fs.gold | 1 + .../test/data/features/parameterInfo/App - Operator 02.fs | 1 + .../data/features/parameterInfo/App - Operator 02.fs.gold | 7 +++++++ .../test/data/features/parameterInfo/App - Operator 03.fs | 1 + .../data/features/parameterInfo/App - Operator 03.fs.gold | 7 +++++++ .../test/src/FSharp.Tests/FSharpParameterInfoTest.fs | 4 ++++ 8 files changed, 26 insertions(+) create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs.gold create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs.gold create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs create mode 100644 ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs.gold diff --git a/ReSharper.FSharp/src/FSharp.Psi.Features/src/ParameterInfo/FSharpParameterInfo.fs b/ReSharper.FSharp/src/FSharp.Psi.Features/src/ParameterInfo/FSharpParameterInfo.fs index 0316cadbab..48b57c4ef0 100644 --- a/ReSharper.FSharp/src/FSharp.Psi.Features/src/ParameterInfo/FSharpParameterInfo.fs +++ b/ReSharper.FSharp/src/FSharp.Psi.Features/src/ParameterInfo/FSharpParameterInfo.fs @@ -606,6 +606,10 @@ type FSharpParameterInfoContextFactory() = | context -> context | :? IReferenceExpr as refExpr -> + // todo: enable for non-predefined operators? + let binaryAppExpr = BinaryAppExprNavigator.GetByOperator(refExpr) + if isNotNull binaryAppExpr then null else + match PrefixAppExprNavigator.GetByArgumentExpression(refExpr.IgnoreParentParens()) with | null -> let context = createFromExpression isAutoPopup caretOffset refExpr.Reference refExpr diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs new file mode 100644 index 0000000000..0c449b45cf --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs @@ -0,0 +1 @@ +true &&{caret} true \ No newline at end of file diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs.gold b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs.gold new file mode 100644 index 0000000000..15c3753765 --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 01.fs.gold @@ -0,0 +1 @@ +No ParameterInfo is available here diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs new file mode 100644 index 0000000000..20b3249690 --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs @@ -0,0 +1 @@ +(&&) {caret} diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs.gold b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs.gold new file mode 100644 index 0000000000..99f347eb55 --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 02.fs.gold @@ -0,0 +1,7 @@ +ParameterInfo is available +--- All invocables: ---- +(e1: bool) (e2: bool) : bool +Parameter: 0 'e1: bool' + +--- Accepted invocables: --- +(e1: bool) (e2: bool) : bool diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs new file mode 100644 index 0000000000..9873ec9df6 --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs @@ -0,0 +1 @@ +(&&) true {caret} diff --git a/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs.gold b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs.gold new file mode 100644 index 0000000000..6046b065c6 --- /dev/null +++ b/ReSharper.FSharp/test/data/features/parameterInfo/App - Operator 03.fs.gold @@ -0,0 +1,7 @@ +ParameterInfo is available +--- All invocables: ---- +(e1: bool) (e2: bool) : bool +Parameter: 1 'e2: bool' + +--- Accepted invocables: --- +(e1: bool) (e2: bool) : bool diff --git a/ReSharper.FSharp/test/src/FSharp.Tests/FSharpParameterInfoTest.fs b/ReSharper.FSharp/test/src/FSharp.Tests/FSharpParameterInfoTest.fs index c3ee08ffd7..d78282818d 100644 --- a/ReSharper.FSharp/test/src/FSharp.Tests/FSharpParameterInfoTest.fs +++ b/ReSharper.FSharp/test/src/FSharp.Tests/FSharpParameterInfoTest.fs @@ -102,6 +102,10 @@ type FSharpParameterInfoTest() = [] member x.``App - Method 14 - Empty``() = x.DoNamedTest() [] member x.``App - Method 15 - Empty``() = x.DoNamedTest() + [] member x.``App - Operator 01``() = x.DoNamedTest() + [] member x.``App - Operator 02``() = x.DoNamedTest() + [] member x.``App - Operator 03``() = x.DoNamedTest() + [] member x.``Exception 01``() = x.DoNamedTest() [] member x.``Exception 02``() = x.DoNamedTest() [] member x.``Exception 03``() = x.DoNamedTest()