@@ -24,6 +24,7 @@ defmodule NextLS do
24
24
alias GenLSP.Requests.TextDocumentFormatting
25
25
alias GenLSP.Requests.TextDocumentHover
26
26
alias GenLSP.Requests.TextDocumentReferences
27
+ alias GenLSP.Requests.TextDocumentSignatureHelp
27
28
alias GenLSP.Requests.WorkspaceApplyEdit
28
29
alias GenLSP.Requests.WorkspaceSymbol
29
30
alias GenLSP.Structures.ApplyWorkspaceEditParams
@@ -41,6 +42,8 @@ defmodule NextLS do
41
42
alias GenLSP.Structures.Range
42
43
alias GenLSP.Structures.SaveOptions
43
44
alias GenLSP.Structures.ServerCapabilities
45
+ alias GenLSP.Structures.SignatureHelp
46
+ alias GenLSP.Structures.SignatureHelpParams
44
47
alias GenLSP.Structures.SymbolInformation
45
48
alias GenLSP.Structures.TextDocumentIdentifier
46
49
alias GenLSP.Structures.TextDocumentItem
@@ -53,6 +56,7 @@ defmodule NextLS do
53
56
alias NextLS.DiagnosticCache
54
57
alias NextLS.Progress
55
58
alias NextLS.Runtime
59
+ alias NextLS.SignatureHelp
56
60
57
61
def start_link ( args ) do
58
62
{ args , opts } =
@@ -146,6 +150,9 @@ defmodule NextLS do
146
150
"from-pipe"
147
151
]
148
152
} ,
153
+ signature_help_provider: % GenLSP.Structures.SignatureHelpOptions {
154
+ trigger_characters: [ "(" , "," ]
155
+ } ,
149
156
hover_provider: true ,
150
157
workspace_symbol_provider: true ,
151
158
document_symbol_provider: true ,
@@ -699,6 +706,20 @@ defmodule NextLS do
699
706
{ :reply , nil , lsp }
700
707
end
701
708
709
+ def handle_request (
710
+ % TextDocumentSignatureHelp { params: % SignatureHelpParams { text_document: % { uri: uri } , position: position } } ,
711
+ lsp
712
+ ) do
713
+ result =
714
+ dispatch ( lsp . assigns . registry , :databases , fn entries ->
715
+ for { pid , _ } <- entries do
716
+ SignatureHelp . fetch ( URI . parse ( uri ) . path , { position . line + 1 , position . character + 1 } , pid )
717
+ end
718
+ end )
719
+
720
+ { :reply , List . first ( result ) , lsp }
721
+ end
722
+
702
723
def handle_request ( % Shutdown { } , lsp ) do
703
724
{ :reply , nil , assign ( lsp , exit_code: 0 ) }
704
725
end
0 commit comments