Skip to content

Commit 2809f9b

Browse files
committed
add new RF 5.0 Keywords to completion
1 parent 0806823 commit 2809f9b

File tree

1 file changed

+30
-13
lines changed

1 file changed

+30
-13
lines changed

robotcode/language_server/robotframework/parts/completion.py

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
cast,
2121
)
2222

23+
from ..utils.version import get_robot_version
24+
2325
from ....utils.async_itertools import async_chain, async_chain_iterator
2426
from ....utils.async_tools import threaded
2527
from ....utils.logging import LoggingDescriptor
@@ -167,18 +169,33 @@ async def resolve(self, sender: Any, completion_item: CompletionItem) -> Complet
167169
"IF": [r"IF \${${1}}", "$0", "END", ""],
168170
}
169171

170-
RESERVERD_KEYWORDS = [
171-
"FOR",
172-
# "WHILE",
173-
# "BREAK",
174-
# "CONTINUE",
175-
"END",
176-
"IF",
177-
"ELSE",
178-
"ELIF",
179-
"ELSE IF",
180-
# "RETURN",
181-
]
172+
__reserved_keywords: Optional[List[str]] = None
173+
174+
175+
def get_reserved_keywords() -> List[str]:
176+
global __reserved_keywords
177+
178+
if __reserved_keywords is None:
179+
__reserved_keywords = [
180+
"FOR",
181+
"END",
182+
"IF",
183+
"ELSE",
184+
"ELIF",
185+
"ELSE IF",
186+
]
187+
if get_robot_version() >= (5, 0):
188+
__reserved_keywords += [
189+
"TRY",
190+
"EXCEPT",
191+
"WHILE",
192+
"BREAK",
193+
"CONTINUE",
194+
"RETURN",
195+
]
196+
197+
__reserved_keywords = sorted(__reserved_keywords)
198+
return __reserved_keywords
182199

183200

184201
class CompletionCollector(ModelHelperMixin):
@@ -563,7 +580,7 @@ def enumerate_indexes(s: str, c: str) -> Iterator[int]:
563580
result.append(c)
564581

565582
if add_reserverd:
566-
for k in RESERVERD_KEYWORDS:
583+
for k in get_reserved_keywords():
567584
c = CompletionItem(
568585
label=k,
569586
kind=CompletionItemKind.KEYWORD,

0 commit comments

Comments
 (0)