pappasam / jedi-language-server

A Python language server exclusively for Jedi. If Jedi supports it well, this language server should too.
MIT License
574 stars 44 forks source link

signature helper does not work for variadic functions #271

Closed matu3ba closed 1 year ago

matu3ba commented 1 year ago

I dont mind having no hints, but errors are very unpleasant: lsperror

Logs and instructions are also here https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/issues/36.

# minimal.py, jedi-language-server version: 0.40.0
print("test"
#                     ^ cursor position
# adding , and subsequent space leads to below error:
# 1. 
# print("test",
# 2.
# print("test", 

Log

[START][2023-06-06 19:02:03] LSP logging initiated
[ERROR][2023-06-06 19:02:03] .../vim/lsp/rpc.lua:734    "rpc"   "/home/user/.local/share/nvim/mason/bin/jedi-language-server"   "stderr"    "ERROR:pygls.protocol:Unable to deserialize message\n  + Exception Group Traceback (most recent call last):\n  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/pygls/protocol.py\", line 401, in _deserialize_message\n  |     return self._converter.structure(data, request_type)\n  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 309, in structure\n  |     return self._structure_func.dispatch(cl)(obj, cl)\n  |   File \"<cattrs generated structure lsprotocol.types.TextDocumentSignatureHelpRequest>\", line 26, in structure_TextDocumentSignatureHelpRequest\n  |     if errors: raise __c_cve('While structuring ' + 'TextDocumentSignatureHelpRequest', errors, __cl)\n  | cattrs.errors.ClassValidationError: While structuring TextDocumentSignatureHelpRequest (1 sub-exception)\n  +-+---------------- 1 ----------------\n    | Exception Group Traceback (most recent call last):\n    |   File \"<cattrs generated structure lsprotocol.types.TextDocumentSignatureHelpRequest>\", line 10, in structure_TextDocumentSignatureHelpRequest\n    |     res['params'] = __c_structure_params(o['params'], __c_type_params)\n    |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpParams>\", line 26, in structure_SignatureHelpParams\n    |     if errors: raise __c_cve('While structuring ' + 'SignatureHelpParams', errors, __cl)\n    | cattrs.errors.ClassValidationError: While structuring SignatureHelpParams (1 sub-exception)\n    | Structuring class TextDocumentSignatureHelpRequest @ attribute params\n    +-+---------------- 1 ----------------\n      | Exception Group Traceback (most recent call last):\n      |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpParams>\", line 16, in structure_SignatureHelpParams\n      |     res['context'] = __c_structure_context(o['context'], __c_type_context)\n      |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n      |     return self._structure_func.dispatch(other)(obj, other)\n      |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpContext>\", line 26, in structure_SignatureHelpContext\n      |     if errors: raise __c_cve('While structuring ' + 'SignatureHelpContext', errors, __cl)\n      | cattrs.errors.ClassValidationError: While structuring SignatureHelpContext (1 sub-exception)\n      | Structuring class SignatureHelpParams @ attribute context\n      +-+---------------- 1 ----------------\n        | Exception Group Traceback (most recent call last):\n        |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpContext>\", line 22, in structure_SignatureHelpContext\n        |     res['active_signature_help'] = __c_structure_active_signature_help(o['activeSignatureHelp'], __c_type_active_signature_help)\n        |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n        |     return self._structure_func.dispatch(other)(obj, other)\n        |   File \"<cattrs generated structure lsprotocol.types.SignatureHelp>\", line 21, in structure_SignatureHelp\n        |     if errors: raise __c_cve('While structuring ' + 'SignatureHelp', errors, __cl)\n        | cattrs.errors.ClassValidationError: While structuring SignatureHelp (1 sub-exception)\n        | Structuring class SignatureHelpContext @ attribute active_signature_help\n        +-+---------------- 1 ----------------\n          | Exception Group Traceback (most recent call last):\n          |   File \"<cattrs generated structure lsprotocol.types.SignatureHelp>\", line 5, in structure_SignatureHelp\n          |     res['signatures'] = __c_structure_signatures(o['signatures'], __c_type_signatures)\n          |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 510, in _structure_list\n          |     raise IterableValidationError(\n          | cattrs.errors.IterableValidationError: While structuring typing.List[lsprotocol.types.SignatureInformation] (1 sub-exception)\n          | Structuring class SignatureHelp @ attribute signatures\n          +-+---------------- 1 ----------------\n            | Exception Group Traceback (most recent call last):\n            |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n            |     res.append(handler(e, elem_type))\n            |   File \"<cattrs generated structure lsprotocol.types.SignatureInformation>\", line 27, in structure_SignatureInformation\n            |     if errors: raise __c_cve('While structuring ' + 'SignatureInformation', errors, __cl)\n            | cattrs.errors.ClassValidationError: While structuring SignatureInformation (1 sub-exception)\n            | Structuring typing.List[lsprotocol.types.SignatureInformation] @ index 0\n            +-+---------------- 1 ----------------\n              | Exception Group Traceback (most recent call last):\n              |   File \"<cattrs generated structure lsprotocol.types.SignatureInformation>\", line 17, in structure_SignatureInformation\n              |     res['parameters'] = __c_structure_parameters(o['parameters'], __c_type_parameters)\n              |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n              |     return self._structure_func.dispatch(other)(obj, other)\n              |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 510, in _structure_list\n              |     raise IterableValidationError(\n              | cattrs.errors.IterableValidationError: While structuring typing.List[lsprotocol.types.ParameterInformation] (5 sub-exceptions)\n              | Structuring class SignatureInformation @ attribute parameters\n              +-+---------------- 1 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 0\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 2 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 1\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 3 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 2\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 4 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 3\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 5 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 4\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n\n"
[ERROR][2023-06-06 19:02:03] .../vim/lsp/rpc.lua:734    "rpc"   "/home/user/.local/share/nvim/mason/bin/jedi-language-server"   "stderr"    "ERROR:pygls.protocol:Error receiving data\n  + Exception Group Traceback (most recent call last):\n  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/pygls/protocol.py\", line 401, in _deserialize_message\n  |     return self._converter.structure(data, request_type)\n  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 309, in structure\n  |     return self._structure_func.dispatch(cl)(obj, cl)\n  |   File \"<cattrs generated structure lsprotocol.types.TextDocumentSignatureHelpRequest>\", line 26, in structure_TextDocumentSignatureHelpRequest\n  |     if errors: raise __c_cve('While structuring ' + 'TextDocumentSignatureHelpRequest', errors, __cl)\n  | cattrs.errors.ClassValidationError: While structuring TextDocumentSignatureHelpRequest (1 sub-exception)\n  +-+---------------- 1 ----------------\n    | Exception Group Traceback (most recent call last):\n    |   File \"<cattrs generated structure lsprotocol.types.TextDocumentSignatureHelpRequest>\", line 10, in structure_TextDocumentSignatureHelpRequest\n    |     res['params'] = __c_structure_params(o['params'], __c_type_params)\n    |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpParams>\", line 26, in structure_SignatureHelpParams\n    |     if errors: raise __c_cve('While structuring ' + 'SignatureHelpParams', errors, __cl)\n    | cattrs.errors.ClassValidationError: While structuring SignatureHelpParams (1 sub-exception)\n    | Structuring class TextDocumentSignatureHelpRequest @ attribute params\n    +-+---------------- 1 ----------------\n      | Exception Group Traceback (most recent call last):\n      |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpParams>\", line 16, in structure_SignatureHelpParams\n      |     res['context'] = __c_structure_context(o['context'], __c_type_context)\n      |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n      |     return self._structure_func.dispatch(other)(obj, other)\n      |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpContext>\", line 26, in structure_SignatureHelpContext\n      |     if errors: raise __c_cve('While structuring ' + 'SignatureHelpContext', errors, __cl)\n      | cattrs.errors.ClassValidationError: While structuring SignatureHelpContext (1 sub-exception)\n      | Structuring class SignatureHelpParams @ attribute context\n      +-+---------------- 1 ----------------\n        | Exception Group Traceback (most recent call last):\n        |   File \"<cattrs generated structure lsprotocol.types.SignatureHelpContext>\", line 22, in structure_SignatureHelpContext\n        |     res['active_signature_help'] = __c_structure_active_signature_help(o['activeSignatureHelp'], __c_type_active_signature_help)\n        |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n        |     return self._structure_func.dispatch(other)(obj, other)\n        |   File \"<cattrs generated structure lsprotocol.types.SignatureHelp>\", line 21, in structure_SignatureHelp\n        |     if errors: raise __c_cve('While structuring ' + 'SignatureHelp', errors, __cl)\n        | cattrs.errors.ClassValidationError: While structuring SignatureHelp (1 sub-exception)\n        | Structuring class SignatureHelpContext @ attribute active_signature_help\n        +-+---------------- 1 ----------------\n          | Exception Group Traceback (most recent call last):\n          |   File \"<cattrs generated structure lsprotocol.types.SignatureHelp>\", line 5, in structure_SignatureHelp\n          |     res['signatures'] = __c_structure_signatures(o['signatures'], __c_type_signatures)\n          |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 510, in _structure_list\n          |     raise IterableValidationError(\n          | cattrs.errors.IterableValidationError: While structuring typing.List[lsprotocol.types.SignatureInformation] (1 sub-exception)\n          | Structuring class SignatureHelp @ attribute signatures\n          +-+---------------- 1 ----------------\n            | Exception Group Traceback (most recent call last):\n            |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n            |     res.append(handler(e, elem_type))\n            |   File \"<cattrs generated structure lsprotocol.types.SignatureInformation>\", line 27, in structure_SignatureInformation\n            |     if errors: raise __c_cve('While structuring ' + 'SignatureInformation', errors, __cl)\n            | cattrs.errors.ClassValidationError: While structuring SignatureInformation (1 sub-exception)\n            | Structuring typing.List[lsprotocol.types.SignatureInformation] @ index 0\n            +-+---------------- 1 ----------------\n              | Exception Group Traceback (most recent call last):\n              |   File \"<cattrs generated structure lsprotocol.types.SignatureInformation>\", line 17, in structure_SignatureInformation\n              |     res['parameters'] = __c_structure_parameters(o['parameters'], __c_type_parameters)\n              |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 574, in _structure_optional\n              |     return self._structure_func.dispatch(other)(obj, other)\n              |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 510, in _structure_list\n              |     raise IterableValidationError(\n              | cattrs.errors.IterableValidationError: While structuring typing.List[lsprotocol.types.ParameterInformation] (5 sub-exceptions)\n              | Structuring class SignatureInformation @ attribute parameters\n              +-+---------------- 1 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 0\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 2 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 1\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 3 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 2\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 4 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 3\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n                +---------------- 5 ----------------\n                | Exception Group Traceback (most recent call last):\n                |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 502, in _structure_list\n                |     res.append(handler(e, elem_type))\n                |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 15, in structure_ParameterInformation\n                |     if errors: raise __c_cve('While structuring ' + 'ParameterInformation', errors, __cl)\n                | cattrs.errors.ClassValidationError: While structuring ParameterInformation (1 sub-exception)\n                | Structuring typing.List[lsprotocol.types.ParameterInformation] @ index 4\n                +-+---------------- 1 ----------------\n                  | Traceback (most recent call last):\n                  |   File \"<cattrs generated structure lsprotocol.types.ParameterInformation>\", line 5, in structure_ParameterInformation\n                  |     res['label'] = __c_structure_label(o['label'], __c_type_label)\n                  |   File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/cattrs/converters.py\", line 377, in _structure_error\n                  |     raise StructureHandlerNotFoundError(msg, type_=cl)\n                  | cattrs.errors.StructureHandlerNotFoundError: Unsupported type: typing.Union[str, typing.Tuple[int, int]]. Register a structure hook for it.\n                  | Structuring class ParameterInformation @ attribute label\n                  +------------------------------------\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n  File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/pygls/protocol.py\", line 507, in data_received\n    self._data_received(data)\n  File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/pygls/protocol.py\", line 539, in _data_received\n    json.loads(body.decode(self.CHARSET),\n  File \"/usr/lib/python3.8/json/__init__.py\", line 370, in loads\n    return cls(**kw).decode(s)\n  File \"/usr/lib/python3.8/json/decoder.py\", line 337, in decode\n    obj, end = self.raw_decode(s, idx=_w(s, 0).end())\n  File \"/usr/lib/python3.8/json/decoder.py\", line 353, in raw_decode\n    obj, end = self.scan_once(s, idx)\n  File \"/home/user/.local/share/nvim/mason/packages/jedi-language-server/venv/lib/python3.8/site-packages/pygls/protocol.py\", line 415, in _deserialize_message\n    raise JsonRpcInvalidParams() from exc\npygls.exceptions.JsonRpcInvalidParams: Invalid Params\n"

Let me know, what further logs or instructions you need to reproduce the problem.

dimbleby commented 1 year ago

You'll need to take it to https://github.com/microsoft/lsprotocol, that's what's reponsible for (de)serialization

r3m0t commented 1 year ago

I think you need to pip install -U lsprotocol

matu3ba commented 1 year ago
pip3 install -U --user lsprotocol
Requirement already satisfied: lsprotocol in /home/user/.local/lib/python3.8/site-packages (2023.0.0a1)
Requirement already satisfied: attrs in /home/user/.local/lib/python3.8/site-packages (from lsprotocol) (23.1.0)
Requirement already satisfied: cattrs in /home/user/.local/lib/python3.8/site-packages (from lsprotocol) (23.1.2)
Requirement already satisfied: exceptiongroup in /home/user/.local/lib/python3.8/site-packages (from cattrs->lsprotocol
) (1.1.1)
Requirement already satisfied: typing_extensions>=4.1.0 in /home/user/.local/lib/python3.8/site-packages (from cattrs->
lsprotocol) (4.6.3)

I think its a general problem with generics, as they are hard to resolve. For example, in C++ clangd is also unable to show the context in (simple) overloaded functions and gives up after the first argument.

However, clangd does not show annoying errors.

dimbleby commented 1 year ago

This has nothing to do with generics and even less to do with clangd. It is a deserialisation problem and you should report it to https://github.com/microsoft/lsprotocol

matu3ba commented 1 year ago

Mhm, I can not reproduce with pipx installed version:

package jedi-language-server 0.40.0, installed using Python 3.11.3
    - jedi-language-server

Closing as known workaround and unclear cause.