Skip to content

Commit cea2b7a

Browse files
Add SignatureHelp support
1 parent c09e6d0 commit cea2b7a

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

src/Components/ParameterHints.fs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module ParameterHints =
1515
let provider = createEmpty<SignatureHelpProvider> ()
1616

1717
let mapResult o =
18-
let res = createEmpty<SignatureHelp> ()
18+
let res = SignatureHelp.Create ()
1919
let sigs = o.Data.Overloads |> Array.map (fun c ->
2020
try
2121
let tip = c.Tip.[0].[0]
@@ -31,7 +31,12 @@ module ParameterHints =
3131
Globals.console.error e
3232
None) |> Array.choose id
3333
res.activeParameter <- float (o.Data.CurrentParameter)
34-
res.activeSignature <- 0.
34+
res.activeSignature <-
35+
sigs
36+
|> Array.sortBy (fun n -> n.parameters.Length)
37+
|> Array.findIndex (fun s -> s.parameters.Length >= o.Data.CurrentParameter )
38+
|> (+) 1
39+
|> float
3540
res.signatures <- sigs
3641
Globals.console.log res
3742
res

src/Core/Bindings.fs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,8 @@ module Bindings =
3838

3939
[<FunScript.JSEmitInline "(vscode.window.visibleTextEditors)">]
4040
static member visibleTextEditors with get () : TextEditor[] = failwith "JS"
41+
42+
type SignatureHelp with
43+
[<FunScript.JSEmitInline "(new vscode.SignatureHelp())">]
44+
static member Create() : SignatureHelp = failwith "JS"
4145

0 commit comments

Comments
 (0)