robotcode-language-server 0.104.0__tar.gz → 0.105.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/PKG-INFO +5 -5
  2. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/pyproject.toml +4 -4
  3. robotcode_language_server-0.105.0/src/robotcode/language_server/__version__.py +1 -0
  4. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/hover.py +27 -12
  5. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +16 -16
  6. robotcode_language_server-0.104.0/src/robotcode/language_server/__version__.py +0 -1
  7. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/.gitignore +0 -0
  8. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/LICENSE.txt +0 -0
  9. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/README.md +0 -0
  10. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/__init__.py +0 -0
  11. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/cli.py +0 -0
  12. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/__init__.py +0 -0
  13. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/decorators.py +0 -0
  14. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/__init__.py +0 -0
  15. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/code_action.py +0 -0
  16. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/code_lens.py +0 -0
  17. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/commands.py +0 -0
  18. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/completion.py +0 -0
  19. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/declaration.py +0 -0
  20. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/definition.py +0 -0
  21. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/diagnostics.py +0 -0
  22. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/document_highlight.py +0 -0
  23. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/document_symbols.py +0 -0
  24. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/documents.py +0 -0
  25. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/folding_range.py +0 -0
  26. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/formatting.py +0 -0
  27. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/hover.py +0 -0
  28. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/implementation.py +0 -0
  29. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/inlay_hint.py +0 -0
  30. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/inline_value.py +0 -0
  31. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/linked_editing_ranges.py +0 -0
  32. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/protocol_part.py +0 -0
  33. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/references.py +0 -0
  34. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/rename.py +0 -0
  35. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/selection_range.py +0 -0
  36. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/semantic_tokens.py +0 -0
  37. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/signature_help.py +0 -0
  38. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/window.py +0 -0
  39. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/parts/workspace.py +0 -0
  40. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/protocol.py +0 -0
  41. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/common/server.py +0 -0
  42. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/hooks.py +0 -0
  43. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/py.typed +0 -0
  44. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/__init__.py +0 -0
  45. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/configuration.py +0 -0
  46. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/__init__.py +0 -0
  47. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +0 -0
  48. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/code_action_helper_mixin.py +0 -0
  49. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/code_action_quick_fixes.py +0 -0
  50. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/code_action_refactor.py +0 -0
  51. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/code_lens.py +0 -0
  52. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/completion.py +0 -0
  53. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/debugging_utils.py +0 -0
  54. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/diagnostics.py +0 -0
  55. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/document_highlight.py +0 -0
  56. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/document_symbols.py +0 -0
  57. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/documents_cache.py +0 -0
  58. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/folding_range.py +0 -0
  59. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/formatting.py +0 -0
  60. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/goto.py +0 -0
  61. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/http_server.py +0 -0
  62. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/inlay_hint.py +0 -0
  63. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/inline_value.py +0 -0
  64. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/keywords_treeview.py +0 -0
  65. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/project_info.py +0 -0
  66. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/protocol_part.py +0 -0
  67. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/references.py +0 -0
  68. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/rename.py +0 -0
  69. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py +0 -0
  70. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/robot_workspace.py +0 -0
  71. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/selection_range.py +0 -0
  72. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/parts/signature_help.py +0 -0
  73. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/protocol.py +0 -0
  74. {robotcode_language_server-0.104.0 → robotcode_language_server-0.105.0}/src/robotcode/language_server/robotframework/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotcode-language-server
3
- Version: 0.104.0
3
+ Version: 0.105.0
4
4
  Summary: RobotCode Language Server for Robot Framework
5
5
  Project-URL: Homepage, https://robotcode.io
6
6
  Project-URL: Donate, https://opencollective.com/robotcode
@@ -25,10 +25,10 @@ Classifier: Programming Language :: Python :: Implementation :: PyPy
25
25
  Classifier: Topic :: Utilities
26
26
  Classifier: Typing :: Typed
27
27
  Requires-Python: >=3.8
28
- Requires-Dist: robotcode-analyze==0.104.0
29
- Requires-Dist: robotcode-jsonrpc2==0.104.0
30
- Requires-Dist: robotcode-robot==0.104.0
31
- Requires-Dist: robotcode==0.104.0
28
+ Requires-Dist: robotcode-analyze==0.105.0
29
+ Requires-Dist: robotcode-jsonrpc2==0.105.0
30
+ Requires-Dist: robotcode-robot==0.105.0
31
+ Requires-Dist: robotcode==0.105.0
32
32
  Requires-Dist: robotframework>=4.1.0
33
33
  Description-Content-Type: text/markdown
34
34
 
@@ -27,10 +27,10 @@ classifiers = [
27
27
  ]
28
28
  dependencies = [
29
29
  "robotframework>=4.1.0",
30
- "robotcode-jsonrpc2==0.104.0",
31
- "robotcode-robot==0.104.0",
32
- "robotcode-analyze==0.104.0",
33
- "robotcode==0.104.0",
30
+ "robotcode-jsonrpc2==0.105.0",
31
+ "robotcode-robot==0.105.0",
32
+ "robotcode-analyze==0.105.0",
33
+ "robotcode==0.105.0",
34
34
  ]
35
35
  dynamic = ["version"]
36
36
 
@@ -0,0 +1 @@
1
+ __version__ = "0.105.0"
@@ -44,6 +44,16 @@ if TYPE_CHECKING:
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 @@ class RobotHoverProtocolPart(RobotLanguageServerProtocolPart, ModelHelper):
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 @@ class RobotHoverProtocolPart(RobotLanguageServerProtocolPart, ModelHelper):
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 @@ class RobotHoverProtocolPart(RobotLanguageServerProtocolPart, ModelHelper):
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,
@@ -32,6 +32,7 @@ from robot.parsing.model.statements import (
32
32
  ResourceImport,
33
33
  Statement,
34
34
  Template,
35
+ TemplateArguments,
35
36
  TestTemplate,
36
37
  Variable,
37
38
  VariablesImport,
@@ -163,8 +164,6 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
163
164
  parent.semantic_tokens.token_modifiers += list(RobotSemTokenModifiers)
164
165
 
165
166
  parent.semantic_tokens.collect_full.add(self.collect_full)
166
- # parent.semantic_tokens.collect_range.add(self.collect_range)
167
- # parent.semantic_tokens.collect_full_delta.add(self.collect_full_delta)
168
167
 
169
168
  self.parent.on_initialized.add(self._on_initialized)
170
169
 
@@ -345,9 +344,8 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
345
344
 
346
345
  BUILTIN_MATCHER: ClassVar = KeywordMatcher("BuiltIn", is_namespace=True)
347
346
 
348
- @classmethod
349
347
  def generate_sem_sub_tokens(
350
- cls,
348
+ self,
351
349
  namespace: Namespace,
352
350
  builtin_library_doc: Optional[LibraryDoc],
353
351
  token: Token,
@@ -356,7 +354,8 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
356
354
  length: Optional[int] = None,
357
355
  yield_arguments: bool = False,
358
356
  ) -> Iterator[SemTokenInfo]:
359
- sem_info = cls.mapping().get(token.type, None) if token.type is not None else None
357
+
358
+ sem_info = self.mapping().get(token.type, None) if token.type is not None else None
360
359
  if sem_info is not None:
361
360
  sem_type, sem_mod = sem_info
362
361
 
@@ -419,7 +418,7 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
419
418
  bdd_len = 0
420
419
 
421
420
  if get_robot_version() < (6, 0):
422
- bdd_match = cls.BDD_TOKEN_REGEX.match(token.value)
421
+ bdd_match = self.BDD_TOKEN_REGEX.match(token.value)
423
422
  if bdd_match:
424
423
  bdd_len = len(bdd_match.group(1))
425
424
  else:
@@ -489,7 +488,7 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
489
488
  col_offset,
490
489
  len(kw_namespace),
491
490
  RobotSemTokenTypes.NAMESPACE,
492
- {RobotSemTokenModifiers.BUILTIN} if kw_namespace == cls.BUILTIN_MATCHER else None,
491
+ {RobotSemTokenModifiers.BUILTIN} if kw_namespace == self.BUILTIN_MATCHER else None,
493
492
  )
494
493
  yield SemTokenInfo(
495
494
  token.lineno,
@@ -499,7 +498,11 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
499
498
  )
500
499
 
501
500
  if builtin_library_doc is not None and kw in builtin_library_doc.keywords:
502
- if kw_doc is not None and kw_doc.libname == cls.BUILTIN_MATCHER and kw_doc.matcher.match_string(kw):
501
+ if (
502
+ kw_doc is not None
503
+ and kw_doc.libname == self.BUILTIN_MATCHER
504
+ and kw_doc.matcher.match_string(kw)
505
+ ):
503
506
  if not sem_mod:
504
507
  sem_mod = set()
505
508
  sem_mod.add(RobotSemTokenModifiers.BUILTIN)
@@ -534,9 +537,7 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
534
537
  ignore_errors=True,
535
538
  identifiers="$@&%",
536
539
  ):
537
- for e in cls.generate_sem_sub_tokens(
538
- namespace, builtin_library_doc, sub_token, node, yield_arguments=True
539
- ):
540
+ for e in self.generate_sem_sub_tokens(namespace, builtin_library_doc, sub_token, node):
540
541
  e.sem_modifiers = {RobotSemTokenModifiers.EMBEDDED}
541
542
  yield e
542
543
 
@@ -558,7 +559,7 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
558
559
  if col_offset is None:
559
560
  col_offset = token.col_offset
560
561
 
561
- for g in cls.ESCAPE_REGEX.finditer(token.value):
562
+ for g in self.ESCAPE_REGEX.finditer(token.value):
562
563
  yield SemTokenInfo.from_token(
563
564
  token,
564
565
  RobotSemTokenTypes.NAMESPACE if g.group("x") is None else RobotSemTokenTypes.ESCAPE,
@@ -626,6 +627,7 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
626
627
  if (
627
628
  yield_arguments
628
629
  or token.type != Token.ARGUMENT
630
+ or (token.type == Token.ARGUMENT and cached_isinstance(node, TemplateArguments))
629
631
  or (token.type != Token.NAME and cached_isinstance(node, Metadata))
630
632
  ):
631
633
  yield SemTokenInfo.from_token(token, sem_type, sem_mod, col_offset, length)
@@ -699,13 +701,11 @@ class RobotSemanticTokenProtocolPart(RobotLanguageServerProtocolPart):
699
701
  ignore_errors=True,
700
702
  identifiers="$" if token.type == Token.KEYWORD_NAME else "$@&%",
701
703
  ):
702
- for e in self.generate_sem_sub_tokens(
703
- namespace, builtin_library_doc, sub_token, node, yield_arguments=True
704
- ):
704
+ for e in self.generate_sem_sub_tokens(namespace, builtin_library_doc, sub_token, node):
705
705
  yield e
706
706
 
707
707
  else:
708
- for e in self.generate_sem_sub_tokens(namespace, builtin_library_doc, token, node, yield_arguments=True):
708
+ for e in self.generate_sem_sub_tokens(namespace, builtin_library_doc, token, node):
709
709
  yield e
710
710
 
711
711
  def generate_run_kw_tokens(
@@ -1 +0,0 @@
1
- __version__ = "0.104.0"