robotcode-language-server 2.1.0__tar.gz → 2.3.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 (76) hide show
  1. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/PKG-INFO +1 -1
  2. robotcode_language_server-2.3.0/src/robotcode/language_server/__version__.py +1 -0
  3. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/folding_range.py +1 -1
  4. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/formatting.py +10 -1
  5. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py +34 -27
  6. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robocop_helper.py +5 -2
  7. robotcode_language_server-2.1.0/src/robotcode/language_server/__version__.py +0 -1
  8. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/.gitignore +0 -0
  9. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/README.md +0 -0
  10. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/pyproject.toml +0 -0
  11. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/__init__.py +0 -0
  12. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/cli.py +0 -0
  13. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/__init__.py +0 -0
  14. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/decorators.py +0 -0
  15. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/__init__.py +0 -0
  16. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/code_action.py +0 -0
  17. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/code_lens.py +0 -0
  18. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/commands.py +0 -0
  19. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/completion.py +0 -0
  20. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/declaration.py +0 -0
  21. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/definition.py +0 -0
  22. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/diagnostics.py +0 -0
  23. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/document_highlight.py +0 -0
  24. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/document_symbols.py +0 -0
  25. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/documents.py +0 -0
  26. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/folding_range.py +0 -0
  27. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/formatting.py +0 -0
  28. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/hover.py +0 -0
  29. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/implementation.py +0 -0
  30. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/inlay_hint.py +0 -0
  31. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/inline_value.py +0 -0
  32. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/linked_editing_ranges.py +0 -0
  33. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/protocol_part.py +0 -0
  34. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/references.py +0 -0
  35. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/rename.py +0 -0
  36. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/selection_range.py +0 -0
  37. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/semantic_tokens.py +0 -0
  38. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/signature_help.py +0 -0
  39. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/window.py +0 -0
  40. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/workspace.py +0 -0
  41. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/workspace_symbols.py +0 -0
  42. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/protocol.py +0 -0
  43. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/server.py +0 -0
  44. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/hooks.py +0 -0
  45. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/py.typed +0 -0
  46. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/__init__.py +0 -0
  47. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/configuration.py +0 -0
  48. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/__init__.py +0 -0
  49. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +0 -0
  50. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_helper_mixin.py +0 -0
  51. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_quick_fixes.py +0 -0
  52. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_refactor.py +0 -0
  53. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_lens.py +0 -0
  54. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/completion.py +0 -0
  55. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/debugging_utils.py +0 -0
  56. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/diagnostics.py +0 -0
  57. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/document_highlight.py +0 -0
  58. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/document_symbols.py +0 -0
  59. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/documents_cache.py +0 -0
  60. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/goto.py +0 -0
  61. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/hover.py +0 -0
  62. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/http_server.py +0 -0
  63. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/inlay_hint.py +0 -0
  64. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/inline_value.py +0 -0
  65. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/keywords_treeview.py +0 -0
  66. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/project_info.py +0 -0
  67. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/protocol_part.py +0 -0
  68. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/references.py +0 -0
  69. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/rename.py +0 -0
  70. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robot_workspace.py +0 -0
  71. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/selection_range.py +0 -0
  72. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +0 -0
  73. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/signature_help.py +0 -0
  74. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/workspace_symbols.py +0 -0
  75. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/protocol.py +0 -0
  76. {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.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: 2.1.0
3
+ Version: 2.3.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
@@ -26,7 +26,7 @@ class _Visitor(Visitor):
26
26
  def __init__(self, parent: RobotFoldingRangeProtocolPart) -> None:
27
27
  super().__init__()
28
28
  self.parent = parent
29
- self.line_folding_only = True
29
+ self.line_folding_only = False
30
30
  if (
31
31
  self.parent.parent.client_capabilities
32
32
  and self.parent.parent.client_capabilities.text_document
@@ -83,17 +83,26 @@ class RobotFormattingProtocolPart(RobotLanguageServerProtocolPart):
83
83
 
84
84
  config_manager = self.parent.robocop_helper.get_config_manager(workspace_folder)
85
85
 
86
+ source = document.uri.to_path()
86
87
  config = config_manager.get_config_for_source_file(document.uri.to_path())
87
88
 
88
89
  if range is not None:
89
90
  config.formatter.start_line = range.start.line + 1
90
91
  config.formatter.end_line = range.end.line + 1
91
92
 
93
+ # TODO: not cached, we load all formatters everytime - but it's small cost
92
94
  runner = RobocopFormatter(config_manager)
93
95
  runner.config = config
94
96
 
95
97
  model = self.parent.documents_cache.get_model(document, False)
96
- _, _, new, _ = runner.format_until_stable(model)
98
+ if get_robot_version() >= (8, 0):
99
+ from robocop.source_file import SourceFile
100
+
101
+ # overwrite _model to stop Robocop from loading it
102
+ source_file = SourceFile(path=source, config=config, _model=model)
103
+ _, _, new, _ = runner.format_until_stable(source_file)
104
+ else:
105
+ _, _, new, _ = runner.format_until_stable(model)
97
106
 
98
107
  if new.text == document.text():
99
108
  return None
@@ -44,6 +44,15 @@ class RobotRoboCopDiagnosticsProtocolPart(RobotLanguageServerProtocolPart):
44
44
 
45
45
  return self.parent.workspace.get_configuration(RoboCopConfig, folder.uri)
46
46
 
47
+ def get_linter(self, workspace_folder: WorkspaceFolder) -> "RobocopLinter":
48
+ linter = self._robocop_linters.get(workspace_folder, None)
49
+
50
+ if linter is None:
51
+ config_manager = self.parent.robocop_helper.get_config_manager(workspace_folder)
52
+ linter = RobocopLinter(config_manager)
53
+ self._robocop_linters[workspace_folder] = linter
54
+ return linter
55
+
47
56
  @language_id("robotframework")
48
57
  @_logger.call
49
58
  def collect_diagnostics(
@@ -69,23 +78,21 @@ class RobotRoboCopDiagnosticsProtocolPart(RobotLanguageServerProtocolPart):
69
78
  @_logger.call
70
79
  def collect(self, document: TextDocument, workspace_folder: WorkspaceFolder) -> List[Diagnostic]:
71
80
  from robocop.linter.rules import RuleSeverity
72
- from robocop.linter.runner import RobocopLinter
73
-
74
- linter = self._robocop_linters.get(workspace_folder, None)
75
-
76
- if linter is None:
77
- config_manager = self.parent.robocop_helper.get_config_manager(workspace_folder)
78
81
 
79
- config = config_manager.get_config_for_source_file(document.uri.to_path())
80
-
81
- linter = RobocopLinter(config_manager)
82
- self._robocop_linters[workspace_folder] = linter
82
+ linter = self.get_linter(workspace_folder)
83
83
 
84
84
  source = document.uri.to_path()
85
-
86
85
  config = linter.config_manager.get_config_for_source_file(source)
87
86
  model = self.parent.documents_cache.get_model(document, False)
88
- diagnostics = linter.run_check(model, source, config)
87
+
88
+ if self.parent.robocop_helper.robocop_version >= (8, 0):
89
+ from robocop.source_file import SourceFile
90
+
91
+ # overwrite _model to stop Robocop from loading it
92
+ source_file = SourceFile(path=source, config=config, _model=model)
93
+ diagnostics = linter.run_check(source_file)
94
+ else:
95
+ diagnostics = linter.run_check(model, source, config)
89
96
 
90
97
  return [
91
98
  Diagnostic(
@@ -233,25 +240,25 @@ class RobotRoboCopDiagnosticsProtocolPart(RobotLanguageServerProtocolPart):
233
240
  return result
234
241
 
235
242
  def get_code_description(self, version: Version, issue: Any) -> Optional[CodeDescription]:
243
+ if hasattr(issue, "rule") and hasattr(issue.rule, "docs_url"): # since robocop 6.13
244
+ return CodeDescription(issue.rule.docs_url)
245
+
236
246
  if version < (3, 0):
237
247
  return None
238
248
 
239
249
  version_letter = "v" if version.major >= 6 else ""
240
250
 
241
- base = f"https://robocop.readthedocs.io/en/{version_letter}{version.major}.{version.minor}.{version.patch}"
242
-
243
- if version < (4, 0):
244
- return CodeDescription(href=f"{base}/rules.html#{issue.name}".lower())
245
-
246
- if version < (4, 1):
247
- return CodeDescription(href=f"{base}/rules.html#{issue.name}-{issue.severity.value}{issue.rule_id}".lower())
248
-
249
- if version < (4, 1, 1):
250
- return CodeDescription(
251
- href=f"{base}/rules_list.html#{issue.name}-{issue.severity.value}{issue.rule_id}".lower()
252
- )
251
+ base = f"https://robocop.dev/{version_letter}{version.major}.{version.minor}.{version.patch}"
253
252
 
254
- if version < (6, 0):
255
- return CodeDescription(href=f"{base}/rules_list.html#{issue.name}".lower())
253
+ if version >= (6, 0):
254
+ href = f"{base}/rules/rules_list.html#{issue.rule.rule_id}-{issue.rule.name}"
255
+ elif version >= (4, 1, 1):
256
+ href = f"{base}/rules_list.html#{issue.name}"
257
+ elif version >= (4, 1):
258
+ href = f"{base}/rules_list.html#{issue.name}-{issue.severity.value}{issue.rule_id}"
259
+ elif version >= (4, 0):
260
+ href = f"{base}/rules.html#{issue.name}-{issue.severity.value}{issue.rule_id}"
261
+ else:
262
+ href = f"{base}/rules.html#{issue.name}"
256
263
 
257
- return CodeDescription(href=f"{base}/rules/rules_list.html#{issue.rule.rule_id}-{issue.rule.name}".lower())
264
+ return CodeDescription(href=href.lower())
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
15
15
  from ..protocol import RobotLanguageServerProtocol
16
16
 
17
17
  if TYPE_CHECKING:
18
- from robocop.config import ConfigManager
18
+ from robocop.config.manager import ConfigManager
19
19
 
20
20
 
21
21
  class RobocopConfigError(Exception):
@@ -59,7 +59,10 @@ class RoboCopHelper(RobotLanguageServerProtocolPart):
59
59
  return self.parent.workspace.get_configuration(RoboCopConfig, folder.uri)
60
60
 
61
61
  def get_config_manager(self, workspace_folder: WorkspaceFolder) -> "ConfigManager":
62
- from robocop.config import ConfigManager
62
+ if self.parent.robocop_helper.robocop_version >= (8, 0):
63
+ from robocop.config.manager import ConfigManager
64
+ else:
65
+ from robocop.config import ConfigManager
63
66
 
64
67
  if workspace_folder in self._config_managers:
65
68
  return self._config_managers[workspace_folder]
@@ -1 +0,0 @@
1
- __version__ = "2.1.0"