44
44
_HoverMethod = Callable [[ast .AST , List [ast .AST ], TextDocument , Position ], Optional [Hover ]]
45
45
46
46
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
+
47
57
class RobotHoverProtocolPart (RobotLanguageServerProtocolPart , ModelHelper ):
48
58
_logger = LoggingDescriptor ()
49
59
@@ -115,6 +125,7 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
115
125
)
116
126
)
117
127
value = None
128
+ real_value = None
118
129
if found_range is not None :
119
130
highlight_range = found_range
120
131
if variable .has_value or variable .resolvable :
@@ -132,13 +143,14 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
132
143
value = "[]"
133
144
else :
134
145
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 ),
141
150
)
151
+
152
+ value = _my_repr .repr (real_value )
153
+
142
154
except (
143
155
asyncio .CancelledError ,
144
156
SystemExit ,
@@ -150,15 +162,18 @@ def _hover_default(self, nodes: List[ast.AST], document: TextDocument, position:
150
162
value = ""
151
163
else :
152
164
value = ""
153
- if text is None :
154
- text = ""
155
- if text :
156
- text += "\n "
157
165
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 :
159
169
170
+ text += "```python\n "
171
+ text += f"value: { type (real_value ).__name__ } = { value } \n "
172
+ text += "```\n "
173
+
174
+ text += "\n "
160
175
if text :
161
- text = "| | | | \n |:--|:--|:--| \n " + text
176
+
162
177
return Hover (
163
178
contents = MarkupContent (kind = MarkupKind .MARKDOWN , value = text ),
164
179
range = highlight_range ,
0 commit comments