Comment by zamalek

14 hours ago

workspace/symbol will do it (and the output may need some massaging), but it's optional.

I thought workspace/symbol returns an unstructured payload wrapped w/ some metadata.

Since the format is unspecified I imagine many language servers would just return a string representation of the type, which in Python is a PITA to parse because not every type has a closed-form representation (overloaded callable types, for example, have to be declared as a protocol).