@@ -166,3 +166,37 @@ def test_snippets_completion(config):
166
166
completions = pyls_jedi_completions (config , doc , com_position )
167
167
out = 'defaultdict(${1:default_factory}, ${2:iterable}, ${3:kwargs})$0'
168
168
assert completions [0 ]['insertText' ] == out
169
+
170
+
171
+ def test_multiline_snippets (config ):
172
+ document = 'from datetime import\\ \n date,\\ \n datetime \n a=date'
173
+ doc = Document (DOC_URI , document )
174
+ config .capabilities ['textDocument' ] = {
175
+ 'completion' : {'completionItem' : {'snippetSupport' : True }}}
176
+ config .update ({'plugins' : {'jedi_completion' : {'include_params' : True }}})
177
+
178
+ position = {'line' : 1 , 'character' : 5 }
179
+ completions = pyls_jedi_completions (config , doc , position )
180
+ assert completions [0 ]['insertText' ] == 'date'
181
+
182
+ position = {'line' : 2 , 'character' : 9 }
183
+ completions = pyls_jedi_completions (config , doc , position )
184
+ assert completions [0 ]['insertText' ] == 'datetime'
185
+
186
+
187
+ def test_multistatement_snippet (config ):
188
+ config .capabilities ['textDocument' ] = {
189
+ 'completion' : {'completionItem' : {'snippetSupport' : True }}}
190
+ config .update ({'plugins' : {'jedi_completion' : {'include_params' : True }}})
191
+
192
+ document = 'a = 1; from datetime import date'
193
+ doc = Document (DOC_URI , document )
194
+ position = {'line' : 0 , 'character' : len (document )}
195
+ completions = pyls_jedi_completions (config , doc , position )
196
+ assert completions [0 ]['insertText' ] == 'date'
197
+
198
+ document = 'from datetime import date; a = date'
199
+ doc = Document (DOC_URI , document )
200
+ position = {'line' : 0 , 'character' : len (document )}
201
+ completions = pyls_jedi_completions (config , doc , position )
202
+ assert completions [0 ]['insertText' ] == 'date(${1:year}, ${2:month}, ${3:day})$0'
0 commit comments