78
78
class JediLanguageServerProtocol (LanguageServerProtocol ):
79
79
"""Override some built-in functions."""
80
80
81
+ _server : "JediLanguageServer"
82
+
81
83
@lsp_method (INITIALIZE )
82
84
def lsp_initialize (self , params : InitializeParams ) -> InitializeResult :
83
85
"""Override built-in initialization.
84
86
85
87
Here, we can conditionally register functions to features based
86
88
on client capabilities and initializationOptions.
87
89
"""
88
- server : "JediLanguageServer" = self ._server
90
+ server = self ._server
89
91
try :
90
92
server .initialization_options = (
91
93
initialization_options_converter .structure (
@@ -203,7 +205,7 @@ def completion(
203
205
snippet_disable = server .initialization_options .completion .disable_snippets
204
206
resolve_eagerly = server .initialization_options .completion .resolve_eagerly
205
207
ignore_patterns = server .initialization_options .completion .ignore_patterns
206
- document = server .workspace .get_document (params .text_document .uri )
208
+ document = server .workspace .get_text_document (params .text_document .uri )
207
209
jedi_script = jedi_utils .script (server .project , document )
208
210
jedi_lines = jedi_utils .line_column (params .position )
209
211
completions_jedi_raw = jedi_script .complete (* jedi_lines )
@@ -232,7 +234,7 @@ def completion(
232
234
snippet_support and not snippet_disable and not is_import_context
233
235
)
234
236
char_before_cursor = pygls_utils .char_before_cursor (
235
- document = server .workspace .get_document (params .text_document .uri ),
237
+ document = server .workspace .get_text_document (params .text_document .uri ),
236
238
position = params .position ,
237
239
)
238
240
jedi_utils .clear_completions_cache ()
@@ -270,7 +272,7 @@ def signature_help(
270
272
handle markdown well in the signature. Will update if this changes in the
271
273
future.
272
274
"""
273
- document = server .workspace .get_document (params .text_document .uri )
275
+ document = server .workspace .get_text_document (params .text_document .uri )
274
276
jedi_script = jedi_utils .script (server .project , document )
275
277
jedi_lines = jedi_utils .line_column (params .position )
276
278
signatures_jedi = jedi_script .get_signatures (* jedi_lines )
@@ -310,7 +312,7 @@ def definition(
310
312
server : JediLanguageServer , params : TextDocumentPositionParams
311
313
) -> Optional [List [Location ]]:
312
314
"""Support Goto Definition."""
313
- document = server .workspace .get_document (params .text_document .uri )
315
+ document = server .workspace .get_text_document (params .text_document .uri )
314
316
jedi_script = jedi_utils .script (server .project , document )
315
317
jedi_lines = jedi_utils .line_column (params .position )
316
318
names = jedi_script .goto (
@@ -331,7 +333,7 @@ def type_definition(
331
333
server : JediLanguageServer , params : TextDocumentPositionParams
332
334
) -> Optional [List [Location ]]:
333
335
"""Support Goto Type Definition."""
334
- document = server .workspace .get_document (params .text_document .uri )
336
+ document = server .workspace .get_text_document (params .text_document .uri )
335
337
jedi_script = jedi_utils .script (server .project , document )
336
338
jedi_lines = jedi_utils .line_column (params .position )
337
339
names = jedi_script .infer (* jedi_lines )
@@ -358,7 +360,7 @@ def highlight(
358
360
Finally, we only return names if there are more than 1. Otherwise, we don't
359
361
want to highlight anything.
360
362
"""
361
- document = server .workspace .get_document (params .text_document .uri )
363
+ document = server .workspace .get_text_document (params .text_document .uri )
362
364
jedi_script = jedi_utils .script (server .project , document )
363
365
jedi_lines = jedi_utils .line_column (params .position )
364
366
names = jedi_script .get_references (* jedi_lines , scope = "file" )
@@ -376,7 +378,7 @@ def hover(
376
378
server : JediLanguageServer , params : TextDocumentPositionParams
377
379
) -> Optional [Hover ]:
378
380
"""Support Hover."""
379
- document = server .workspace .get_document (params .text_document .uri )
381
+ document = server .workspace .get_text_document (params .text_document .uri )
380
382
jedi_script = jedi_utils .script (server .project , document )
381
383
jedi_lines = jedi_utils .line_column (params .position )
382
384
markup_kind = _choose_markup (server )
@@ -397,7 +399,7 @@ def references(
397
399
server : JediLanguageServer , params : TextDocumentPositionParams
398
400
) -> Optional [List [Location ]]:
399
401
"""Obtain all references to text."""
400
- document = server .workspace .get_document (params .text_document .uri )
402
+ document = server .workspace .get_text_document (params .text_document .uri )
401
403
jedi_script = jedi_utils .script (server .project , document )
402
404
jedi_lines = jedi_utils .line_column (params .position )
403
405
names = jedi_script .get_references (* jedi_lines )
@@ -431,7 +433,7 @@ def document_symbol(
431
433
non-hierarchical symbols, we simply remove `param` symbols. Others are
432
434
included for completeness.
433
435
"""
434
- document = server .workspace .get_document (params .text_document .uri )
436
+ document = server .workspace .get_text_document (params .text_document .uri )
435
437
jedi_script = jedi_utils .script (server .project , document )
436
438
names = jedi_script .get_names (all_scopes = True , definitions = True )
437
439
if get_capability (
@@ -513,7 +515,7 @@ def rename(
513
515
server : JediLanguageServer , params : RenameParams
514
516
) -> Optional [WorkspaceEdit ]:
515
517
"""Rename a symbol across a workspace."""
516
- document = server .workspace .get_document (params .text_document .uri )
518
+ document = server .workspace .get_text_document (params .text_document .uri )
517
519
jedi_script = jedi_utils .script (server .project , document )
518
520
jedi_lines = jedi_utils .line_column (params .position )
519
521
try :
@@ -545,7 +547,7 @@ def code_action(
545
547
2. Extract variable
546
548
3. Extract function
547
549
"""
548
- document = server .workspace .get_document (params .text_document .uri )
550
+ document = server .workspace .get_text_document (params .text_document .uri )
549
551
jedi_script = jedi_utils .script (server .project , document )
550
552
code_actions = []
551
553
jedi_lines = jedi_utils .line_column (params .range .start )
@@ -649,7 +651,7 @@ def _publish_diagnostics(server: JediLanguageServer, uri: str) -> None:
649
651
if uri not in server .workspace .documents :
650
652
return
651
653
652
- doc = server .workspace .get_document (uri )
654
+ doc = server .workspace .get_text_document (uri )
653
655
diagnostic = jedi_utils .lsp_python_diagnostic (uri , doc .source )
654
656
diagnostics = [diagnostic ] if diagnostic else []
655
657
0 commit comments