|
26 | 26 | from ..utils import variablematcher |
27 | 27 |
|
28 | 28 |
|
| 29 | +BDD_ENGLISH = 'Given|When|Then|And|But' |
| 30 | + |
| 31 | +def obtain_bdd_prefixes(language): |
| 32 | + from robotide.lib.compat.parsing.language import Language |
| 33 | + lang = Language.from_name(language[0] if isinstance(language, list) else language) |
| 34 | + bdd_prefixes = [f"{x}|" for x in lang.bdd_prefixes] |
| 35 | + bdd_prefixes = "".join(bdd_prefixes).strip('|') |
| 36 | + return bdd_prefixes |
| 37 | + |
| 38 | + |
29 | 39 | class Occurrence(object): |
30 | 40 |
|
31 | 41 | def __init__(self, item, value): |
@@ -279,16 +289,22 @@ class NullObserver(object): |
279 | 289 |
|
280 | 290 |
|
281 | 291 | class RenameKeywordOccurrences(_ReversibleCommand): |
282 | | - _gherkin_prefix = re.compile('^(Given|When|Then|And|But) ', re.IGNORECASE) |
283 | 292 |
|
284 | | - def __init__(self, original_name, new_name, observer, keyword_info=None): |
| 293 | + def __init__(self, original_name, new_name, observer, keyword_info=None, language='En'): |
| 294 | + self._language = language[0] if isinstance(language, list) else language |
| 295 | + if self._language.lower() not in ['en', 'english']: |
| 296 | + bdd_prefix = f"{obtain_bdd_prefixes(self._language)}|{BDD_ENGLISH}" |
| 297 | + else: |
| 298 | + bdd_prefix = BDD_ENGLISH |
| 299 | + self._gherkin_prefix = re.compile(f'^({bdd_prefix}) ', re.IGNORECASE) |
285 | 300 | self._original_name, self._new_name = self._check_gherkin(new_name, original_name) |
286 | 301 | self._observer = observer |
287 | 302 | self._keyword_info = keyword_info |
288 | 303 | self._occurrences = None |
289 | 304 | # print(f"DEBUG: ctrlcommands.py RenameKeywordOccurrences INIT\n" |
290 | | - # f"{original_name=}, {new_name=}, self._original_name={self._original_name} " |
291 | | - # f"self._new_name={self._new_name} self._keyword_info={self._keyword_info} ") |
| 305 | + # f"{original_name=}, {new_name=}, self._original_name={self._original_name} " |
| 306 | + # f"self._new_name={self._new_name} self._keyword_info={self._keyword_info}" |
| 307 | + # f" self._gherkin_prefix={self._gherkin_prefix} ") |
292 | 308 |
|
293 | 309 | def _check_gherkin(self, new_name, original_name): |
294 | 310 | was_gherkin, keyword_name = self._get_gherkin(original_name) |
@@ -1339,7 +1355,7 @@ def _get_undo_command(self): |
1339 | 1355 |
|
1340 | 1356 |
|
1341 | 1357 | INDENTED_INNER = ['ELSE', 'ELSE IF', 'EXCEPT', 'FINALLY'] |
1342 | | -INDENTED_START = ['FOR', 'IF', 'WHILE', 'TRY'] + INDENTED_INNER |
| 1358 | +INDENTED_START = ['FOR', 'GROUP', 'IF', 'WHILE', 'TRY'] + INDENTED_INNER |
1343 | 1359 |
|
1344 | 1360 |
|
1345 | 1361 | def is_indent_start(cell): |
|
0 commit comments