4444_HoverMethod = Callable [[ast .AST , List [ast .AST ], TextDocument , Position ], Optional [Hover ]]
4545
4646
47+ class MyRepr (reprlib .Repr ):
48+ def __init__ (self ) -> None :
49+ super ().__init__ ()
50+ self .maxstring = 50
51+ self .indent = 4
52+
53+
54+ _my_repr = MyRepr ()
55+
56+
4757class RobotHoverProtocolPart (RobotLanguageServerProtocolPart , ModelHelper ):
4858 _logger = LoggingDescriptor ()
4959
@@ -115,6 +125,7 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
115125 )
116126 )
117127 value = None
128+ real_value = None
118129 if found_range is not None :
119130 highlight_range = found_range
120131 if variable .has_value or variable .resolvable :
@@ -132,13 +143,14 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
132143 value = "[]"
133144 else :
134145 try :
135- value = reprlib .repr (
136- namespace .imports_manager .resolve_variable (
137- variable .name ,
138- str (document .uri .to_path ().parent ),
139- namespace .get_resolvable_variables (nodes , position ),
140- )
146+ real_value = namespace .imports_manager .resolve_variable (
147+ variable .name ,
148+ str (document .uri .to_path ().parent ),
149+ namespace .get_resolvable_variables (nodes , position ),
141150 )
151+
152+ value = _my_repr .repr (real_value )
153+
142154 except (
143155 asyncio .CancelledError ,
144156 SystemExit ,
@@ -150,15 +162,18 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
150162 value = ""
151163 else :
152164 value = ""
153- if text is None :
154- text = ""
155- if text :
156- text += "\n "
157165
158- text += f"| ({ variable .type .value } ) | { variable .name } | { f' `{ value } `' if value else '' } |"
166+ text = f"### { variable .type .value .title ()} `{ variable .name } `\n \n "
167+
168+ if value :
159169
170+ text += "```python\n "
171+ text += f"value: { type (real_value ).__name__ } = { value } \n "
172+ text += "```\n "
173+
174+ text += "\n "
160175 if text :
161- text = "| | | | \n |:--|:--|:--| \n " + text
176+
162177 return Hover (
163178 contents = MarkupContent (kind = MarkupKind .MARKDOWN , value = text ),
164179 range = highlight_range ,
0 commit comments