#!/usr/bin/env python3 # ollie:parallel read # description: Get type/documentation info for symbol at position. # Args: import os import sys sys.path.insert(0, os.path.join(os.environ['OLLIE'], 's', os.environ['OLLIE_SESSION_ID'], 't')) from _lib.lsp.client import request if len(sys.argv) < 4: print("usage: lsp_hover ") sys.exit(1) filepath = os.path.abspath(sys.argv[1]) line = int(sys.argv[2]) - 1 col = int(sys.argv[3]) - 1 result = request("hover", file=filepath, line=line, col=col) if not result: print("(no hover info)") sys.exit(0) contents = result.get("contents", "") if isinstance(contents, dict): # MarkedString or MarkupContent print(contents.get("value", str(contents))) elif isinstance(contents, list): for item in contents: if isinstance(item, dict): print(item.get("value", str(item))) else: print(item) else: print(contents)