@@ -18,6 +18,26 @@ def main(param1, param2):
18
18
main(
19
19
"""
20
20
21
+ MULTI_LINE_DOC = """import sys
22
+
23
+ def main(param1=None,
24
+ param2=None,
25
+ param3=None,
26
+ param4=None,
27
+ param5=None,
28
+ param6=None,
29
+ param7=None,
30
+ param8=None):
31
+ \" \" \" Main docstring
32
+
33
+ Args:
34
+ param1 (str): Docs for param1
35
+ \" \" \"
36
+ raise Exception()
37
+
38
+ main(
39
+ """
40
+
21
41
22
42
def test_no_signature ():
23
43
# Over blank line
@@ -44,6 +64,25 @@ def test_signature():
44
64
assert sig_info ['activeParameter' ] == 0
45
65
46
66
67
+ def test_multi_line_signature ():
68
+ # Over '( ' in main(
69
+ sig_position = {'line' : 17 , 'character' : 5 }
70
+ doc = Document (DOC_URI , MULTI_LINE_DOC )
71
+
72
+ sig_info = signature .pyls_signature_help (doc , sig_position )
73
+
74
+ sigs = sig_info ['signatures' ]
75
+ assert len (sigs ) == 1
76
+ assert sigs [0 ]['label' ] == (
77
+ 'main(param1=None, param2=None, param3=None, param4=None, '
78
+ 'param5=None, param6=None, param7=None, param8=None)'
79
+ )
80
+ assert sigs [0 ]['parameters' ][0 ]['label' ] == 'param1'
81
+ assert sigs [0 ]['parameters' ][0 ]['documentation' ] == 'Docs for param1'
82
+
83
+ assert sig_info ['activeParameter' ] == 0
84
+
85
+
47
86
@pytest .mark .parametrize ('regex,doc' , [
48
87
(signature .SPHINX , " :param test: parameter docstring" ),
49
88
(signature .EPYDOC , " @param test: parameter docstring" ),
0 commit comments