44
44
VariableDefinitionType ,
45
45
VariableNotFoundDefinition ,
46
46
)
47
+ from .errors import DIAGNOSTICS_SOURCE_NAME , Error
47
48
from .library_doc import KeywordDoc , KeywordMatcher , is_embedded_keyword
48
49
from .namespace import (
49
- DIAGNOSTICS_SOURCE_NAME ,
50
50
KeywordFinder ,
51
51
Namespace ,
52
52
)
@@ -225,7 +225,7 @@ async def visit(self, node: ast.AST) -> None:
225
225
message = f"Variable '{ var .name } ' not found." ,
226
226
severity = severity ,
227
227
source = DIAGNOSTICS_SOURCE_NAME ,
228
- code = "VariableNotFound" ,
228
+ code = Error . VARIABLE_NOT_FOUND ,
229
229
)
230
230
else :
231
231
if isinstance (var , EnvironmentVariableDefinition ) and var .default_value is None :
@@ -236,7 +236,7 @@ async def visit(self, node: ast.AST) -> None:
236
236
message = f"Environment variable '{ var .name } ' not found." ,
237
237
severity = severity ,
238
238
source = DIAGNOSTICS_SOURCE_NAME ,
239
- code = "EnvirommentVariableNotFound" ,
239
+ code = Error . ENVIROMMENT_VARIABLE_NOT_FOUND ,
240
240
)
241
241
242
242
if self .namespace .document is not None :
@@ -296,7 +296,7 @@ async def visit(self, node: ast.AST) -> None:
296
296
message = f"Variable '{ var .name } ' not found." ,
297
297
severity = DiagnosticSeverity .ERROR ,
298
298
source = DIAGNOSTICS_SOURCE_NAME ,
299
- code = "VariableNotFound" ,
299
+ code = Error . VARIABLE_NOT_FOUND ,
300
300
)
301
301
else :
302
302
if self .namespace .document is not None :
@@ -507,21 +507,21 @@ async def _analyze_keyword_call(
507
507
f"{ f': { result .deprecated_message } ' if result .deprecated_message else '' } ." ,
508
508
severity = DiagnosticSeverity .HINT ,
509
509
tags = [DiagnosticTag .DEPRECATED ],
510
- code = "DeprecatedKeyword" ,
510
+ code = Error . DEPRECATED_KEYWORD ,
511
511
)
512
512
if result .is_error_handler :
513
513
self .append_diagnostics (
514
514
range = kw_range ,
515
515
message = f"Keyword definition contains errors: { result .error_handler_message } " ,
516
516
severity = DiagnosticSeverity .ERROR ,
517
- code = "KeywordContainsErrors" ,
517
+ code = Error . KEYWORD_CONTAINS_ERRORS ,
518
518
)
519
519
if result .is_reserved ():
520
520
self .append_diagnostics (
521
521
range = kw_range ,
522
522
message = f"'{ result .name } ' is a reserved keyword." ,
523
523
severity = DiagnosticSeverity .ERROR ,
524
- code = "ReservedKeyword" ,
524
+ code = Error . RESERVED_KEYWORD ,
525
525
)
526
526
527
527
if get_robot_version () >= (6 , 0 ) and result .is_resource_keyword and result .is_private ():
@@ -531,7 +531,7 @@ async def _analyze_keyword_call(
531
531
message = f"Keyword '{ result .longname } ' is private and should only be called by"
532
532
f" keywords in the same file." ,
533
533
severity = DiagnosticSeverity .WARNING ,
534
- code = "PrivateKeyword" ,
534
+ code = Error . PRIVATE_KEYWORD ,
535
535
)
536
536
537
537
if not isinstance (node , (Template , TestTemplate )):
@@ -595,7 +595,7 @@ async def _analyze_keyword_call(
595
595
range = range_from_token (var_token ),
596
596
message = f"Variable '{ var .name } ' not found." ,
597
597
severity = DiagnosticSeverity .ERROR ,
598
- code = "VariableNotFound" ,
598
+ code = Error . VARIABLE_NOT_FOUND ,
599
599
)
600
600
else :
601
601
if self .namespace .document is not None :
@@ -675,7 +675,7 @@ async def _analyse_run_keyword(
675
675
range = range_from_token (t ),
676
676
message = f"Incorrect use of { t .value } ." ,
677
677
severity = DiagnosticSeverity .ERROR ,
678
- code = "IncorrectUse" ,
678
+ code = Error . INCORRECT_USE ,
679
679
)
680
680
continue
681
681
@@ -843,7 +843,7 @@ async def visit_KeywordCall(self, node: ast.AST) -> None: # noqa: N802
843
843
range = range_from_node_or_token (value , value .get_token (RobotToken .ASSIGN )),
844
844
message = "Keyword name cannot be empty." ,
845
845
severity = DiagnosticSeverity .ERROR ,
846
- code = "KeywordNameEmpty" ,
846
+ code = Error . KEYWORD_NAME_EMPTY ,
847
847
)
848
848
else :
849
849
await self ._analyze_keyword_call (
@@ -856,7 +856,7 @@ async def visit_KeywordCall(self, node: ast.AST) -> None: # noqa: N802
856
856
message = "Code is unreachable." ,
857
857
severity = DiagnosticSeverity .HINT ,
858
858
tags = [DiagnosticTag .UNNECESSARY ],
859
- code = "CodeUnreachable" ,
859
+ code = Error . CODE_UNREACHABLE ,
860
860
)
861
861
862
862
await self .generic_visit (node )
@@ -874,7 +874,7 @@ async def visit_TestCase(self, node: ast.AST) -> None: # noqa: N802
874
874
range = range_from_node_or_token (testcase , name_token ),
875
875
message = "Test case name cannot be empty." ,
876
876
severity = DiagnosticSeverity .ERROR ,
877
- code = "TestCaseNameEmpty" ,
877
+ code = Error . TESTCASE_NAME_EMPTY ,
878
878
)
879
879
880
880
self .current_testcase_or_keyword_name = testcase .name
@@ -907,15 +907,15 @@ async def visit_Keyword(self, node: ast.AST) -> None: # noqa: N802
907
907
range = range_from_node_or_token (keyword , name_token ),
908
908
message = "Keyword cannot have both normal and embedded arguments." ,
909
909
severity = DiagnosticSeverity .ERROR ,
910
- code = "KeywordNormalAndEmbbededError" ,
910
+ code = Error . KEYWORD_CONTAINS_NORMAL_AND_EMBBEDED_ARGUMENTS ,
911
911
)
912
912
else :
913
913
name_token = cast (KeywordName , keyword .header ).get_token (RobotToken .KEYWORD_NAME )
914
914
self .append_diagnostics (
915
915
range = range_from_node_or_token (keyword , name_token ),
916
916
message = "Keyword name cannot be empty." ,
917
917
severity = DiagnosticSeverity .ERROR ,
918
- code = "KeywordNameEmpty" ,
918
+ code = Error . KEYWORD_NAME_EMPTY ,
919
919
)
920
920
921
921
self .current_testcase_or_keyword_name = keyword .name
@@ -992,7 +992,7 @@ async def visit_ForceTags(self, node: ast.AST) -> None: # noqa: N802
992
992
message = "`Force Tags` is deprecated in favour of new `Test Tags` setting." ,
993
993
severity = DiagnosticSeverity .INFORMATION ,
994
994
tags = [DiagnosticTag .DEPRECATED ],
995
- code = "DeprecatedHyphenTag" ,
995
+ code = Error . DEPRECATED_HYPHEN_TAG ,
996
996
)
997
997
998
998
async def visit_DefaultTags (self , node : ast .AST ) -> None : # noqa: N802
@@ -1006,7 +1006,7 @@ async def visit_DefaultTags(self, node: ast.AST) -> None: # noqa: N802
1006
1006
message = "`Force Tags` is deprecated in favour of new `Test Tags` setting." ,
1007
1007
severity = DiagnosticSeverity .INFORMATION ,
1008
1008
tags = [DiagnosticTag .DEPRECATED ],
1009
- code = "DeprecatedHyphenTag" ,
1009
+ code = Error . DEPRECATED_HYPHEN_TAG ,
1010
1010
)
1011
1011
1012
1012
async def visit_Tags (self , node : ast .AST ) -> None : # noqa: N802
@@ -1026,7 +1026,7 @@ async def visit_Tags(self, node: ast.AST) -> None: # noqa: N802
1026
1026
f"literal value and to avoid this warning." ,
1027
1027
severity = DiagnosticSeverity .WARNING ,
1028
1028
tags = [DiagnosticTag .DEPRECATED ],
1029
- code = "DeprecatedHyphenTag" ,
1029
+ code = Error . DEPRECATED_HYPHEN_TAG ,
1030
1030
)
1031
1031
1032
1032
def _check_import_name (self , value : Optional [str ], node : ast .AST , type : str ) -> None :
@@ -1035,7 +1035,7 @@ def _check_import_name(self, value: Optional[str], node: ast.AST, type: str) ->
1035
1035
range = range_from_node (node ),
1036
1036
message = f"{ type } setting requires value." ,
1037
1037
severity = DiagnosticSeverity .ERROR ,
1038
- code = "ImportRequiresValue" ,
1038
+ code = Error . IMPORT_REQUIRES_VALUE ,
1039
1039
)
1040
1040
1041
1041
async def visit_VariablesImport (self , node : ast .AST ) -> None : # noqa: N802
0 commit comments