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.
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/PKG-INFO +1 -1
- robotcode_language_server-2.3.0/src/robotcode/language_server/__version__.py +1 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/folding_range.py +1 -1
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/formatting.py +10 -1
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py +34 -27
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robocop_helper.py +5 -2
- robotcode_language_server-2.1.0/src/robotcode/language_server/__version__.py +0 -1
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/.gitignore +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/README.md +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/pyproject.toml +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/__init__.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/cli.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/__init__.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/decorators.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/__init__.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/code_action.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/code_lens.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/commands.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/completion.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/declaration.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/definition.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/diagnostics.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/document_highlight.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/document_symbols.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/documents.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/folding_range.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/formatting.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/hover.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/implementation.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/inlay_hint.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/inline_value.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/linked_editing_ranges.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/protocol_part.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/references.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/rename.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/selection_range.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/semantic_tokens.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/signature_help.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/window.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/workspace.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/parts/workspace_symbols.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/protocol.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/common/server.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/hooks.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/py.typed +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/__init__.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/configuration.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/__init__.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_documentation.py +0 -0
- {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
- {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
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_action_refactor.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/code_lens.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/completion.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/debugging_utils.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/diagnostics.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/document_highlight.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/document_symbols.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/documents_cache.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/goto.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/hover.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/http_server.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/inlay_hint.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/inline_value.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/keywords_treeview.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/project_info.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/protocol_part.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/references.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/rename.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/robot_workspace.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/selection_range.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/semantic_tokens.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/signature_help.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/parts/workspace_symbols.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/protocol.py +0 -0
- {robotcode_language_server-2.1.0 → robotcode_language_server-2.3.0}/src/robotcode/language_server/robotframework/server.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "2.3.0"
|
|
@@ -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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
|
255
|
-
|
|
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=
|
|
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
|
-
|
|
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"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|