Skip to content

Commit 91ed1e7

Browse files
israelsgalaxyneiljp
authored andcommitted
refactor: boxes: Change OrderedDict to Dict for autocomplete mapping.
autocomplete_map is initialized as an OrderedDict to preserve the insertion order of autocomplete prefixes when used in generic_autocomplete to perform autocompletion in a WriteBox. Since Dict also preserves insertion order from python3.7, we can safely initialize autocomplete_map as a Dict without any change in behavior.
1 parent bee9546 commit 91ed1e7

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

zulipterminal/ui_tools/boxes.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import re
66
import unicodedata
7-
from collections import Counter, OrderedDict
7+
from collections import Counter
88
from datetime import datetime, timedelta
99
from time import sleep
1010
from typing import Any, Callable, Dict, List, NamedTuple, Optional, Tuple
@@ -467,18 +467,16 @@ def _stream_box_autocomplete(
467467
return self._process_typeaheads(matched_streams[0], state, matched_streams[1])
468468

469469
def generic_autocomplete(self, text: str, state: Optional[int]) -> Optional[str]:
470-
autocomplete_map = OrderedDict(
471-
[
472-
("@_", self.autocomplete_users),
473-
("@_**", self.autocomplete_users),
474-
("@", self.autocomplete_mentions),
475-
("@*", self.autocomplete_groups),
476-
("@**", self.autocomplete_users),
477-
("#", self.autocomplete_streams),
478-
("#**", self.autocomplete_streams),
479-
(":", self.autocomplete_emojis),
480-
]
481-
)
470+
autocomplete_map = {
471+
"@_": self.autocomplete_users,
472+
"@_**": self.autocomplete_users,
473+
"@": self.autocomplete_mentions,
474+
"@*": self.autocomplete_groups,
475+
"@**": self.autocomplete_users,
476+
"#": self.autocomplete_streams,
477+
"#**": self.autocomplete_streams,
478+
":": self.autocomplete_emojis,
479+
}
482480

483481
# Look in a reverse order to find the last autocomplete prefix used in
484482
# the text. For instance, if text='@#example', use '#' as the prefix.
@@ -673,7 +671,7 @@ def autocomplete_stream_and_topic(
673671
def validate_and_patch_autocomplete_stream_and_topic(
674672
self,
675673
text: str,
676-
autocomplete_map: "OrderedDict[str, Callable[..., Any]]",
674+
autocomplete_map: Dict[str, Callable[..., Any]],
677675
prefix_indices: Dict[str, int],
678676
) -> str:
679677
"""

0 commit comments

Comments
 (0)