MCPcopy Create free account
hub / github.com/bpython/bpython / CumulativeCompleter

Class CumulativeCompleter

bpython/autocomplete.py:282–321  ·  view source on GitHub ↗

Returns combined matches from several completers

Source from the content-addressed store, hash-verified

280
281
282class CumulativeCompleter(BaseCompletionType):
283 """Returns combined matches from several completers"""
284
285 def __init__(
286 self,
287 completers: Sequence[BaseCompletionType],
288 mode: AutocompleteModes = AutocompleteModes.SIMPLE,
289 ) -> None:
290 if not completers:
291 raise ValueError(
292 "CumulativeCompleter requires at least one completer"
293 )
294 self._completers: Sequence[BaseCompletionType] = completers
295
296 super().__init__(True, mode)
297
298 def locate(self, cursor_offset: int, line: str) -> LinePart | None:
299 for completer in self._completers:
300 return_value = completer.locate(cursor_offset, line)
301 if return_value is not None:
302 return return_value
303 return None
304
305 def format(self, word: str) -> str:
306 return self._completers[0].format(word)
307
308 def matches(
309 self, cursor_offset: int, line: str, **kwargs: Any
310 ) -> set[str] | None:
311 return_value = None
312 all_matches = set()
313 for completer in self._completers:
314 matches = completer.matches(
315 cursor_offset=cursor_offset, line=line, **kwargs
316 )
317 if matches is not None:
318 all_matches.update(matches)
319 return_value = all_matches
320
321 return return_value
322
323
324class ImportCompletion(BaseCompletionType):

Callers 1

get_default_completerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected