Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to http://semver.org/spec/v2.0.0.html[Semantic Versioni
== https://github.com/robotframework/RIDE[Unreleased]

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

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


Expand Down
2 changes: 1 addition & 1 deletion README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Likewise, the current version of wxPython, is 4.2.5, but RIDE is known to work w

`pip install -U robotframework-ride`

(3.9 <= python <= 3.14) Install current development version (**2.2.3dev4**) with:
(3.9 <= python <= 3.14) Install current development version (**2.2.3dev6**) with:

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

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ dependencies = [
"robotframework",
"psutil",
"packaging",
"requests>=2.32.4",
"requests>=2.33.0",
]

[project.urls]
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ mockito
invoke
urllib3>=2.5.0 # not directly required, pinned by Snyk to avoid a vulnerability
zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
requests>=2.32.4
requests>=2.33.0
github3.py
memory-profiler
pylint
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ Pypubsub
psutil
packaging
chardet
requests>=2.32.4
requests>=2.33.0
102 changes: 57 additions & 45 deletions src/robotide/application/CHANGELOG.html

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions src/robotide/application/releasenotes.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ def set_content(self, html_win, content):
<li>🐞 - When upgrading RIDE and activate Restart, some errors are visible about missing /language file, and behaviour
is not normal. Better to close RIDE and start a new instance.</li>
<li>🐞 - Problems with COPY/PASTE in Text Editor have been reported when using wxPython 4.2.0, but not with
version 4.2.1, 4.2.2, 4.2.3 and 4.2.4, which we now <em>recommend</em>.</li>
version 4.2.1, 4.2.2, 4.2.3, 4.2.4 and 4.2.5 which we now <em>recommend</em>.</li>
-->
<li>🐞 - Rename Keywords, Find Usages/Find where used are not finding all occurrences. Please, double-check findings
and changes.</li>
Expand All @@ -179,6 +179,9 @@ def set_content(self, html_win, content):
</ul>
<p><strong>New Features and Fixes Highlights</strong></p>
<ul class="simple">
<li>Added option on Tree (Project Explorer) context menu, to <b>Sort Keywords (Case Insensitive)</b>.</li>
<li>Improved visibility of the Search action in <b>Find Usages</b> by adding <b>Search...</b> on the first row of the
results table.</li>
<li>Added on Text Editor, (Preferences->Text Editor) options to <b>Enable visible spaces</b> and
<b>Enable visible newlines</b>.</li>
<li>Added on External/Code Editor, both enabled, <b>visible spaces<b> and <b>visible newlines<b>.</li>
Expand Down Expand Up @@ -247,7 +250,7 @@ def set_content(self, html_win, content):
<pre class="literal-block">python -m robotide.postinstall -install</pre>
<p>or</p>
<pre class="literal-block">ride_postinstall.py -install</pre>
<p>RIDE {VERSION} was released on 29/March/2026.</p>
<p>RIDE {VERSION} was released on 11/April/2026.</p>
<br/>
<!--
<h3>Celebrate the bank holiday, 1st December, Restoration of the Independence of Portugal (from Spain in 1640)!!</h3>
Expand Down
12 changes: 8 additions & 4 deletions src/robotide/controller/ctrlcommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -460,9 +460,12 @@ def _get_undo_command(self):
class SortKeywords(_ReversibleCommand):
index_difference = None

def __init__(self, case_insensitive=False):
self._case_insensitive = case_insensitive

def _execute(self, context):
index_difference = context.sort_keywords()
self._undo_command = RestoreKeywordOrder(index_difference)
index_difference = context.sort_keywords(case_insensitive=self._case_insensitive)
self._undo_command = RestoreKeywordOrder(index_difference, self._case_insensitive)

def _get_undo_command(self):
return self._undo_command
Expand Down Expand Up @@ -493,14 +496,15 @@ def _get_undo_command(self):

class RestoreKeywordOrder(_ReversibleCommand):

def __init__(self, index_difference):
def __init__(self, index_difference, case_insensitive=False):
self._case_insensitive = case_insensitive
self._index_difference = index_difference

def _execute(self, context):
context.restore_keyword_order(self._index_difference)

def _get_undo_command(self):
return SortKeywords()
return SortKeywords(self._case_insensitive)


class RestoreVariableOrder(_ReversibleCommand):
Expand Down
4 changes: 2 additions & 2 deletions src/robotide/controller/filecontrollers.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,9 +315,9 @@ def sort_tests(self):
return index_difference
return None

def sort_keywords(self):
def sort_keywords(self, case_insensitive=False):
if self.keywords:
index_difference = self.keywords.sort()
index_difference = self.keywords.sort(case_insensitive=case_insensitive)
self.mark_dirty()
RideDataFileSet(item=self).publish()
return index_difference
Expand Down
15 changes: 12 additions & 3 deletions src/robotide/controller/tablecontrollers.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,9 +374,18 @@ def _configure_controller(self, ctrl, config):
if config:
ctrl.arguments.set_value(config)

def sort(self):
"""Sorts the keywords of the controller by name"""
keywords_sorted = sorted(self._table.keywords, key=lambda userkeyword: userkeyword.name)
def sort(self, case_insensitive=False):
"""Sorts the keywords of the controller by name

Args:
case_insensitive: If True, sort without regard to case
"""
if case_insensitive:
keywords_sorted = sorted(self._table.keywords,
key=lambda userkeyword: userkeyword.name.lower())
else:
keywords_sorted = sorted(self._table.keywords,
key=lambda userkeyword: userkeyword.name)
index_difference = self._index_difference(self._table.keywords, keywords_sorted)
self._table.keywords = keywords_sorted
return index_difference
Expand Down
Loading
Loading