Skip to content

Commit 4703068

Browse files
Several improvements and PRs from @chelslava (#3039)
* Feature/issue 2672 searching indicator (#164) * Add visible searching indicator to Find Usages dialog Closes #2672 The 'searching...' indicator is now shown as the first row in the results table, making it more visible to users who focus on the table rather than the dialog title. * Make visible spaces and newlines in Text Editor. (#3026) * Add options to make visible spaces and newlines in Text Editor. * Fix 'General' settings not available after upgrade (blocks startup) (#3013) - Add migration from settings version 8 to 9 that ensures General section exists with all required keys - Add safe access to General settings in application.py, mainframe.py, treeplugin.py, and dialog.py - Use .get() with fallback values instead of direct dictionary access - This prevents KeyError when user settings file is missing or corrupted Closes #3000 * Enable visible spaces and newlines in External/Code Editor. --------- Co-authored-by: ChelSlava <chelslava@gmail.com> * Restore wrongly deleted test fixture * Add ChelSlova PR to improve visibility off Search in Find Usages --------- Co-authored-by: ChelSlava <chelslava@gmail.com> * Increase version of Requests. Fix invoke devel * Increase version of Requests in pyproject.toml * Improve Russian translation quality Fixed critical translation errors: - "PAUSED" was translated as "ПАРОЛЬ" (password) instead of "ПАУЗА" (pause) - "ride log" was translated as "журнала такси" (taxi log) instead of "журнала RIDE" - "Delete Cells" was translated as "Удалить Гены" (delete genes) instead of "Удалить ячейки" - "Teardown" was translated as "Разбираем" (dismantling) instead of "Завершение" - "suite" was translated as "апартамента" (apartment) instead of "набор" Added missing translations: - Debug -> Отладка - Autosave -> Автосохранение - Insert Rows -> Вставить строки - Font Size -> Размер шрифта - Font Face -> Гарнитура шрифта - Default column size -> Размер колонки по умолчанию - Auto size columns -> Автоматический размер колонок - <all keywords> -> <все ключевые слова> - Keyword -> Ключевое слово - Rename -> Переименовать Fixed formatting issues: - Added missing tab characters in keyboard shortcuts - Fixed "Test Suites" translation (Сьюты -> Наборы тестов) - Fixed elapsed time format string * Add Russian translator to TRANSLATORS.adoc * Fix/issue 2521 case insensitive sort v2 (#166) * Add case insensitive sort option for keywords Closes #2521 * Feature/issue 2672 searching indicator (#164) * Add visible searching indicator to Find Usages dialog Closes #2672 The 'searching...' indicator is now shown as the first row in the results table, making it more visible to users who focus on the table rather than the dialog title. * Make visible spaces and newlines in Text Editor. (#3026) * Add options to make visible spaces and newlines in Text Editor. * Fix 'General' settings not available after upgrade (blocks startup) (#3013) - Add migration from settings version 8 to 9 that ensures General section exists with all required keys - Add safe access to General settings in application.py, mainframe.py, treeplugin.py, and dialog.py - Use .get() with fallback values instead of direct dictionary access - This prevents KeyError when user settings file is missing or corrupted Closes #3000 * Enable visible spaces and newlines in External/Code Editor. --------- Co-authored-by: ChelSlava <chelslava@gmail.com> * Restore wrongly deleted test fixture * Add ChelSlova PR to improve visibility off Search in Find Usages --------- Co-authored-by: ChelSlava <chelslava@gmail.com> * Increase version of Requests. Fix invoke devel * Increase version of Requests in pyproject.toml * Improve Russian translation quality Fixed critical translation errors: - "PAUSED" was translated as "ПАРОЛЬ" (password) instead of "ПАУЗА" (pause) - "ride log" was translated as "журнала такси" (taxi log) instead of "журнала RIDE" - "Delete Cells" was translated as "Удалить Гены" (delete genes) instead of "Удалить ячейки" - "Teardown" was translated as "Разбираем" (dismantling) instead of "Завершение" - "suite" was translated as "апартамента" (apartment) instead of "набор" Added missing translations: - Debug -> Отладка - Autosave -> Автосохранение - Insert Rows -> Вставить строки - Font Size -> Размер шрифта - Font Face -> Гарнитура шрифта - Default column size -> Размер колонки по умолчанию - Auto size columns -> Автоматический размер колонок - <all keywords> -> <все ключевые слова> - Keyword -> Ключевое слово - Rename -> Переименовать Fixed formatting issues: - Added missing tab characters in keyboard shortcuts - Fixed "Test Suites" translation (Сьюты -> Наборы тестов) - Fixed elapsed time format string * Add Russian translator to TRANSLATORS.adoc * Add unit tests for sort keywords, minor fixes. * Update translations. PT, PT_BR --------- Co-authored-by: ChelSlava <chelslava@gmail.com> --------- Co-authored-by: ChelSlava <chelslava@gmail.com>
1 parent 0d0bda6 commit 4703068

71 files changed

Lines changed: 7553 additions & 5356 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioni
99
== https://github.com/robotframework/RIDE[Unreleased]
1010

1111
=== Added
12+
- Added option on Tree (Project Explorer) context menu, to *Sort Keywords (Case Insensitive)*.
1213
- Added on Text Editor, (Preferences->Text Editor) option to *Enable visible spaces* configurable with ``enable visible spaces`` in settings.cfg, with default ``True``.
1314
- Added on Text Editor, (Preferences->Text Editor) option to *Enable visible newlines* configurable with ``enable visible newlines`` in settings.cfg, with default ``False``.
1415
- Added on External/Code Editor, both enabled, ``visible spaces`` and ``visible newlines``.
@@ -17,6 +18,7 @@ and this project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioni
1718
- Fixed exception seen in console when selecting Tools->Library Finder... on a clean install.
1819

1920
=== Changed
21+
- Improved visibility of the Search action in *Find Usages* by adding ``Search...`` on the first row of the results table.
2022
- Changed isbinary to be internal library, instead of being dependency.
2123

2224

README.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Likewise, the current version of wxPython, is 4.2.5, but RIDE is known to work w
4646

4747
`pip install -U robotframework-ride`
4848

49-
(3.9 &lt;= python &lt;= 3.14) Install current development version (**2.2.3dev4**) with:
49+
(3.9 &lt;= python &lt;= 3.14) Install current development version (**2.2.3dev6**) with:
5050

5151
`pip install -U https://github.com/robotframework/RIDE/archive/develop.zip`
5252

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ dependencies = [
5454
"robotframework",
5555
"psutil",
5656
"packaging",
57-
"requests>=2.32.4",
57+
"requests>=2.33.0",
5858
]
5959

6060
[project.urls]

requirements-dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ mockito
44
invoke
55
urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability
66
zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
7-
requests>=2.32.4
7+
requests>=2.33.0
88
github3.py
99
memory-profiler
1010
pylint

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ Pypubsub
77
psutil
88
packaging
99
chardet
10-
requests>=2.32.4
10+
requests>=2.33.0

src/robotide/application/CHANGELOG.html

Lines changed: 57 additions & 45 deletions
Large diffs are not rendered by default.

src/robotide/application/releasenotes.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def set_content(self, html_win, content):
159159
<li>🐞 - When upgrading RIDE and activate Restart, some errors are visible about missing /language file, and behaviour
160160
is not normal. Better to close RIDE and start a new instance.</li>
161161
<li>🐞 - Problems with COPY/PASTE in Text Editor have been reported when using wxPython 4.2.0, but not with
162-
version 4.2.1, 4.2.2, 4.2.3 and 4.2.4, which we now <em>recommend</em>.</li>
162+
version 4.2.1, 4.2.2, 4.2.3, 4.2.4 and 4.2.5 which we now <em>recommend</em>.</li>
163163
-->
164164
<li>🐞 - Rename Keywords, Find Usages/Find where used are not finding all occurrences. Please, double-check findings
165165
and changes.</li>
@@ -179,6 +179,9 @@ def set_content(self, html_win, content):
179179
</ul>
180180
<p><strong>New Features and Fixes Highlights</strong></p>
181181
<ul class="simple">
182+
<li>Added option on Tree (Project Explorer) context menu, to <b>Sort Keywords (Case Insensitive)</b>.</li>
183+
<li>Improved visibility of the Search action in <b>Find Usages</b> by adding <b>Search...</b> on the first row of the
184+
results table.</li>
182185
<li>Added on Text Editor, (Preferences->Text Editor) options to <b>Enable visible spaces</b> and
183186
<b>Enable visible newlines</b>.</li>
184187
<li>Added on External/Code Editor, both enabled, <b>visible spaces<b> and <b>visible newlines<b>.</li>
@@ -247,7 +250,7 @@ def set_content(self, html_win, content):
247250
<pre class="literal-block">python -m robotide.postinstall -install</pre>
248251
<p>or</p>
249252
<pre class="literal-block">ride_postinstall.py -install</pre>
250-
<p>RIDE {VERSION} was released on 29/March/2026.</p>
253+
<p>RIDE {VERSION} was released on 11/April/2026.</p>
251254
<br/>
252255
<!--
253256
<h3>Celebrate the bank holiday, 1st December, Restoration of the Independence of Portugal (from Spain in 1640)!!</h3>

src/robotide/controller/ctrlcommands.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -460,9 +460,12 @@ def _get_undo_command(self):
460460
class SortKeywords(_ReversibleCommand):
461461
index_difference = None
462462

463+
def __init__(self, case_insensitive=False):
464+
self._case_insensitive = case_insensitive
465+
463466
def _execute(self, context):
464-
index_difference = context.sort_keywords()
465-
self._undo_command = RestoreKeywordOrder(index_difference)
467+
index_difference = context.sort_keywords(case_insensitive=self._case_insensitive)
468+
self._undo_command = RestoreKeywordOrder(index_difference, self._case_insensitive)
466469

467470
def _get_undo_command(self):
468471
return self._undo_command
@@ -493,14 +496,15 @@ def _get_undo_command(self):
493496

494497
class RestoreKeywordOrder(_ReversibleCommand):
495498

496-
def __init__(self, index_difference):
499+
def __init__(self, index_difference, case_insensitive=False):
500+
self._case_insensitive = case_insensitive
497501
self._index_difference = index_difference
498502

499503
def _execute(self, context):
500504
context.restore_keyword_order(self._index_difference)
501505

502506
def _get_undo_command(self):
503-
return SortKeywords()
507+
return SortKeywords(self._case_insensitive)
504508

505509

506510
class RestoreVariableOrder(_ReversibleCommand):

src/robotide/controller/filecontrollers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,9 +315,9 @@ def sort_tests(self):
315315
return index_difference
316316
return None
317317

318-
def sort_keywords(self):
318+
def sort_keywords(self, case_insensitive=False):
319319
if self.keywords:
320-
index_difference = self.keywords.sort()
320+
index_difference = self.keywords.sort(case_insensitive=case_insensitive)
321321
self.mark_dirty()
322322
RideDataFileSet(item=self).publish()
323323
return index_difference

src/robotide/controller/tablecontrollers.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -374,9 +374,18 @@ def _configure_controller(self, ctrl, config):
374374
if config:
375375
ctrl.arguments.set_value(config)
376376

377-
def sort(self):
378-
"""Sorts the keywords of the controller by name"""
379-
keywords_sorted = sorted(self._table.keywords, key=lambda userkeyword: userkeyword.name)
377+
def sort(self, case_insensitive=False):
378+
"""Sorts the keywords of the controller by name
379+
380+
Args:
381+
case_insensitive: If True, sort without regard to case
382+
"""
383+
if case_insensitive:
384+
keywords_sorted = sorted(self._table.keywords,
385+
key=lambda userkeyword: userkeyword.name.lower())
386+
else:
387+
keywords_sorted = sorted(self._table.keywords,
388+
key=lambda userkeyword: userkeyword.name)
380389
index_difference = self._index_difference(self._table.keywords, keywords_sorted)
381390
self._table.keywords = keywords_sorted
382391
return index_difference

0 commit comments

Comments
 (0)