@@ -69,7 +69,7 @@ async def request_hover(
6969 if hover is None :
7070 return None
7171
72- def to_block (item : object ) -> str :
72+ def to_block (item : str | lsp_type . MarkedStringWithLanguage ) -> str :
7373 match item :
7474 case lsp_type .MarkedStringWithLanguage (
7575 language = str () as lang , value = str () as val
@@ -78,33 +78,18 @@ def to_block(item: object) -> str:
7878 case str () as s :
7979 return f"```plaintext\n { s } \n ```"
8080 case _:
81- return f"```plaintext \n { item !s } \n ```"
81+ raise ValueError ( f"Unsupported hover content type: { item !r } " )
8282
83- match contents := hover .contents :
83+ match hover .contents :
8484 case lsp_type .MarkupContent () as mc :
8585 return mc
86- case lsp_type .MarkedStringWithLanguage ():
86+ case lsp_type .MarkedStringWithLanguage () | str () as content :
8787 return lsp_type .MarkupContent (
8888 kind = lsp_type .MarkupKind .Markdown ,
89- value = to_block (contents ),
89+ value = to_block (content ),
9090 )
91- case str () :
91+ case contents :
9292 return lsp_type .MarkupContent (
9393 kind = lsp_type .MarkupKind .Markdown ,
94- value = to_block (contents ),
95- )
96- case list () as items :
97- return lsp_type .MarkupContent (
98- kind = lsp_type .MarkupKind .Markdown ,
99- value = "\n \n " .join (to_block (i ) for i in items ),
100- )
101- case tuple () as items :
102- return lsp_type .MarkupContent (
103- kind = lsp_type .MarkupKind .Markdown ,
104- value = "\n \n " .join (to_block (i ) for i in items ),
105- )
106- case _:
107- return lsp_type .MarkupContent (
108- kind = lsp_type .MarkupKind .Markdown ,
109- value = to_block (contents ),
94+ value = "\n \n " .join (to_block (content ) for content in contents ),
11095 )
0 commit comments