Skip to content

Commit 46125a5

Browse files
committed
feat(robocop): with code descriptions in robocop diagnostics you can jump directly to the website where the rule is explained
closes #152
1 parent 8f772ef commit 46125a5

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

packages/language_server/src/robotcode/language_server/robotframework/parts/robocop_diagnostics.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
Position,
1313
Range,
1414
)
15-
from robotcode.core.utils.version import create_version_from_str
15+
from robotcode.core.utils.version import Version, create_version_from_str
1616
from robotcode.language_server.common.decorators import language_id
1717
from robotcode.language_server.common.parts.diagnostics import DiagnosticsResult
1818
from robotcode.language_server.common.parts.workspace import WorkspaceFolder
@@ -172,11 +172,25 @@ async def run_check(self, ast_model, filename, source=None): # type: ignore
172172
else DiagnosticSeverity.HINT,
173173
source=self.source_name,
174174
code=f"{issue.name}-{issue.severity.value}{issue.rule_id}",
175-
code_description=CodeDescription(
176-
href=f"https://robocop.readthedocs.io/en/stable/rules.html#{issue.name}-{issue.severity.value}{issue.rule_id}".lower()
177-
),
175+
code_description=self.get_code_description(robocop_version, issue),
178176
)
179177

180178
result.append(d)
181179

182180
return result
181+
182+
def get_code_description(self, version: Version, issue: Any) -> Optional[CodeDescription]:
183+
if version < (3, 0):
184+
return None
185+
186+
base = f"https://robocop.readthedocs.io/en/{version.major}.{version.minor}.{version.patch}"
187+
188+
if version < (4, 0):
189+
return CodeDescription(href=f"{base}/rules.html#{issue.name}".lower())
190+
191+
if version < (4, 1):
192+
return CodeDescription(href=f"{base}/rules.html#{issue.name}-{issue.severity.value}{issue.rule_id}".lower())
193+
194+
return CodeDescription(
195+
href=f"{base}/rules_list.html#{issue.name}-{issue.severity.value}{issue.rule_id}".lower()
196+
)

0 commit comments

Comments
 (0)