robotcode-language-server 0.89.0__tar.gz → 0.90.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.89.0 → robotcode_language_server-0.90.0}/PKG-INFO +4 -4
  2. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/pyproject.toml +3 -3
  3. robotcode_language_server-0.90.0/src/robotcode/language_server/__version__.py +1 -0
  4. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/completion.py +28 -7
  5. robotcode_language_server-0.90.0/src/robotcode/language_server/robotframework/parts/project_info.py +54 -0
  6. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/protocol.py +2 -0
  7. robotcode_language_server-0.89.0/src/robotcode/language_server/__version__.py +0 -1
  8. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/.gitignore +0 -0
  9. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/LICENSE.txt +0 -0
  10. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/README.md +0 -0
  11. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/__init__.py +0 -0
  12. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/cli.py +0 -0
  13. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/__init__.py +0 -0
  14. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/decorators.py +0 -0
  15. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/__init__.py +0 -0
  16. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/code_action.py +0 -0
  17. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/code_lens.py +0 -0
  18. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/commands.py +0 -0
  19. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/completion.py +0 -0
  20. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/declaration.py +0 -0
  21. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/definition.py +0 -0
  22. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/diagnostics.py +0 -0
  23. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/document_highlight.py +0 -0
  24. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/document_symbols.py +0 -0
  25. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/documents.py +0 -0
  26. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/folding_range.py +0 -0
  27. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/formatting.py +0 -0
  28. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/hover.py +0 -0
  29. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/implementation.py +0 -0
  30. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/inlay_hint.py +0 -0
  31. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/inline_value.py +0 -0
  32. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/linked_editing_ranges.py +0 -0
  33. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/protocol_part.py +0 -0
  34. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/references.py +0 -0
  35. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/rename.py +0 -0
  36. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/selection_range.py +0 -0
  37. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/semantic_tokens.py +0 -0
  38. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/signature_help.py +0 -0
  39. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/window.py +0 -0
  40. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/parts/workspace.py +0 -0
  41. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/protocol.py +0 -0
  42. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/common/server.py +0 -0
  43. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/hooks.py +0 -0
  44. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/py.typed +0 -0
  45. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/__init__.py +0 -0
  46. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/configuration.py +0 -0
  47. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/__init__.py +0 -0
  48. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +0 -0
  49. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/code_action_helper_mixin.py +0 -0
  50. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/code_action_quick_fixes.py +0 -0
  51. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/code_action_refactor.py +0 -0
  52. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/code_lens.py +0 -0
  53. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/debugging_utils.py +0 -0
  54. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/diagnostics.py +0 -0
  55. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/document_highlight.py +0 -0
  56. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/document_symbols.py +0 -0
  57. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/documents_cache.py +0 -0
  58. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/folding_range.py +0 -0
  59. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/formatting.py +0 -0
  60. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/goto.py +0 -0
  61. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/hover.py +0 -0
  62. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/http_server.py +0 -0
  63. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/inlay_hint.py +0 -0
  64. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/inline_value.py +0 -0
  65. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/keywords_treeview.py +0 -0
  66. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/protocol_part.py +0 -0
  67. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/references.py +0 -0
  68. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/rename.py +0 -0
  69. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py +0 -0
  70. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/robot_workspace.py +0 -0
  71. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/selection_range.py +0 -0
  72. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +0 -0
  73. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/parts/signature_help.py +0 -0
  74. {robotcode_language_server-0.89.0 → robotcode_language_server-0.90.0}/src/robotcode/language_server/robotframework/server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: robotcode-language-server
3
- Version: 0.89.0
3
+ Version: 0.90.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,9 +25,9 @@ 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-jsonrpc2==0.89.0
29
- Requires-Dist: robotcode-robot==0.89.0
30
- Requires-Dist: robotcode==0.89.0
28
+ Requires-Dist: robotcode-jsonrpc2==0.90.0
29
+ Requires-Dist: robotcode-robot==0.90.0
30
+ Requires-Dist: robotcode==0.90.0
31
31
  Requires-Dist: robotframework>=4.1.0
32
32
  Description-Content-Type: text/markdown
33
33
 
@@ -27,9 +27,9 @@ classifiers = [
27
27
  ]
28
28
  dependencies = [
29
29
  "robotframework>=4.1.0",
30
- "robotcode-jsonrpc2==0.89.0",
31
- "robotcode-robot==0.89.0",
32
- "robotcode==0.89.0",
30
+ "robotcode-jsonrpc2==0.90.0",
31
+ "robotcode-robot==0.90.0",
32
+ "robotcode==0.90.0",
33
33
  ]
34
34
  dynamic = ["version"]
35
35
 
@@ -101,6 +101,23 @@ else:
101
101
  from robot.variables.search import VariableMatches
102
102
 
103
103
 
104
+ if get_robot_version() < (5, 0):
105
+ ALLOWED_VARIABLE_TOKENS = [
106
+ Token.NAME,
107
+ Token.ARGUMENT,
108
+ Token.KEYWORD,
109
+ Token.ASSIGN,
110
+ ]
111
+ else:
112
+ ALLOWED_VARIABLE_TOKENS = [
113
+ Token.NAME,
114
+ Token.ARGUMENT,
115
+ Token.KEYWORD,
116
+ Token.ASSIGN,
117
+ Token.OPTION,
118
+ ]
119
+
120
+
104
121
  DEFAULT_HEADER_STYLE = "*** {name}s ***"
105
122
  DEFAULT_HEADER_STYLE_51 = "*** {name} ***"
106
123
 
@@ -1141,12 +1158,7 @@ class CompletionCollector(ModelHelper):
1141
1158
  break
1142
1159
  token_at_position = tokens_at_position[token_at_position_index]
1143
1160
 
1144
- if token_at_position.type not in [
1145
- Token.NAME,
1146
- Token.ARGUMENT,
1147
- Token.KEYWORD,
1148
- Token.ASSIGN,
1149
- ]:
1161
+ if token_at_position.type not in ALLOWED_VARIABLE_TOKENS:
1150
1162
  return None
1151
1163
 
1152
1164
  close_brace_index_before = token_at_position.value.rfind(
@@ -2115,7 +2127,16 @@ class CompletionCollector(ModelHelper):
2115
2127
  keyword_doc_and_token: Optional[Tuple[Optional[KeywordDoc], Token]] = None
2116
2128
 
2117
2129
  keyword_token = kw_node.get_token(keyword_name_token_type)
2118
- if keyword_token is None or position.character < range_from_token(keyword_token).end.character:
2130
+ if keyword_token is None or position <= range_from_token(keyword_token).end:
2131
+ return None
2132
+
2133
+ if (
2134
+ position == range_from_token(token_at_position).start
2135
+ and len(tokens_at_position) >= 3
2136
+ and tokens_at_position[-2].type == Token.ARGUMENT
2137
+ and not tokens_at_position[-2].value
2138
+ and tokens_at_position[-3].type == Token.CONTINUATION
2139
+ ):
2119
2140
  return None
2120
2141
 
2121
2142
  keyword_doc_and_token = self.get_keyworddoc_and_token_from_position(
@@ -0,0 +1,54 @@
1
+ from dataclasses import dataclass
2
+ from typing import TYPE_CHECKING, Any, Optional
3
+
4
+ from robot.version import get_version
5
+
6
+ from robotcode.core.utils.dataclasses import CamelSnakeMixin
7
+ from robotcode.core.utils.logging import LoggingDescriptor
8
+ from robotcode.jsonrpc2.protocol import rpc_method
9
+
10
+ from .formatting import robotidy_installed
11
+ from .protocol_part import RobotLanguageServerProtocolPart
12
+ from .robocop_diagnostics import robocop_installed
13
+
14
+ if TYPE_CHECKING:
15
+ from ..protocol import RobotLanguageServerProtocol
16
+
17
+
18
+ @dataclass(repr=False)
19
+ class ProjectInfo(CamelSnakeMixin):
20
+ robot_version_string: str
21
+ robocop_version_string: Optional[str]
22
+ tidy_version_string: Optional[str] = None
23
+
24
+
25
+ class ProjectInfoPart(RobotLanguageServerProtocolPart):
26
+ _logger = LoggingDescriptor()
27
+
28
+ def __init__(self, parent: "RobotLanguageServerProtocol") -> None:
29
+ super().__init__(parent)
30
+
31
+ @rpc_method(name="robot/projectInfo", threaded=True)
32
+ @_logger.call
33
+ def _get_document_imports(
34
+ self,
35
+ *args: Any,
36
+ **kwargs: Any,
37
+ ) -> ProjectInfo:
38
+ robocop_version_string = None
39
+ if robocop_installed():
40
+ from robocop.version import __version__
41
+
42
+ robocop_version_string = __version__
43
+
44
+ tidy_version_string = None
45
+ if robotidy_installed():
46
+ from robotidy.version import __version__
47
+
48
+ tidy_version_string = __version__
49
+
50
+ return ProjectInfo(
51
+ robot_version_string=get_version(),
52
+ robocop_version_string=robocop_version_string,
53
+ tidy_version_string=tidy_version_string,
54
+ )
@@ -43,6 +43,7 @@ from .parts.http_server import HttpServerProtocolPart
43
43
  from .parts.inlay_hint import RobotInlayHintProtocolPart
44
44
  from .parts.inline_value import RobotInlineValueProtocolPart
45
45
  from .parts.keywords_treeview import RobotKeywordsTreeViewPart
46
+ from .parts.project_info import ProjectInfoPart
46
47
  from .parts.references import RobotReferencesProtocolPart
47
48
  from .parts.rename import RobotRenameProtocolPart
48
49
  from .parts.robocop_diagnostics import RobotRoboCopDiagnosticsProtocolPart
@@ -116,6 +117,7 @@ class RobotLanguageServerProtocol(LanguageServerProtocol):
116
117
 
117
118
  robot_debugging_utils = ProtocolPartDescriptor(RobotDebuggingUtilsProtocolPart)
118
119
  robot_keywords_treeview = ProtocolPartDescriptor(RobotKeywordsTreeViewPart)
120
+ robot_project_info = ProtocolPartDescriptor(ProjectInfoPart)
119
121
 
120
122
  http_server = ProtocolPartDescriptor(HttpServerProtocolPart)
121
123
 
@@ -1 +0,0 @@
1
- __version__ = "0.89.0"