Used by widgets to get completion suggestions. Note: When implementing custom suggesters, this method does not need to be overridden. Args: requester: The message target that requested a suggestion. value: The current value to complet
(self, requester: DOMNode, value: str)
| 49 | self.case_sensitive = case_sensitive |
| 50 | |
| 51 | async def _get_suggestion(self, requester: DOMNode, value: str) -> None: |
| 52 | """Used by widgets to get completion suggestions. |
| 53 | |
| 54 | Note: |
| 55 | When implementing custom suggesters, this method does not need to be |
| 56 | overridden. |
| 57 | |
| 58 | Args: |
| 59 | requester: The message target that requested a suggestion. |
| 60 | value: The current value to complete. |
| 61 | """ |
| 62 | |
| 63 | normalized_value = value if self.case_sensitive else value.casefold() |
| 64 | if self.cache is None or normalized_value not in self.cache: |
| 65 | suggestion = await self.get_suggestion(normalized_value) |
| 66 | if self.cache is not None: |
| 67 | self.cache[normalized_value] = suggestion |
| 68 | else: |
| 69 | suggestion = self.cache[normalized_value] |
| 70 | |
| 71 | if suggestion is None: |
| 72 | return |
| 73 | requester.post_message(SuggestionReady(value, suggestion)) |
| 74 | |
| 75 | @abstractmethod |
| 76 | async def get_suggestion(self, value: str) -> str | None: |