LOG_FMT_ALERT: ('bold', 'bright_red'),
_LOG_PREFIX_DEFAULT: ('bright_cyan',),
}
-_LOG_MAX_LEN = 1000
_MIN_HEIGHT = 4
_MIN_WIDTH = 32
_BOOKMARK_HISTORY_IDX_POS: int = -3
_PADDING_HISTORY_IDX_POS: int = -4
- def __init__(self, wrap: Callable[[str], list[str]], **kwargs) -> None:
+ def __init__(self,
+ maxlen_log: int,
+ wrap: Callable[[str], list[str]],
+ **kwargs
+ ) -> None:
super().__init__(**kwargs)
+ self._maxlen_log = maxlen_log
self._wrap = wrap
self._wrapped: list[tuple[int, str]] = []
self._newest_read_history_idx_pos = self._UNSET_IDX_POS
else (-len(self._wrapped)
+ self._last_wrapped_idx_pos_for_hist_idx_pos(
self._len_full_history + max(self._history_idx_neg,
- -_LOG_MAX_LEN))))
+ - self._maxlen_log))))
self.bookmark()
def append(self, to_append: str) -> None:
n_wrapped = self._add_wrapped(len(self._history) - 1, to_append)
if not self._UNSET_IDX_NEG != self._wrapped_idx_neg >= -1:
self._wrapped_idx_neg -= n_wrapped
- if len(self._history) > _LOG_MAX_LEN:
+ if len(self._history) > self._maxlen_log:
self._history = self._history[1:]
self._history_offset += 1
wrap_offset = 0
_title = ':start'
_last_today = ''
- def __init__(self, idx: int, term: 'Terminal', **kwargs) -> None:
+ def __init__(self, idx: int, term: 'Terminal', maxlen_log: int, **kwargs
+ ) -> None:
super().__init__(**kwargs)
self.idx = idx
self._term = term
- self.history = _HistoryWidget(wrap=self._term.wrap,
+ self.history = _HistoryWidget(maxlen_log=maxlen_log,
+ wrap=self._term.wrap,
write=self._term.write)
self.prompt = self.__annotations__['prompt'](write=self._term.write)
if hasattr(self._term, 'size'):
class BaseTui(QueueMixin):
'Base for graphical user interface elements.'
+ _MAXLEN_LOG = 1000
def __init__(self, term: TerminalInterface, **kwargs) -> None:
super().__init__(**kwargs)
def _new_window(self, win_class=Window, **kwargs) -> Window:
new_idx = len(self._windows)
- win = win_class(idx=new_idx, term=self._term, **kwargs)
+ win = win_class(idx=new_idx, term=self._term,
+ maxlen_log=self._MAXLEN_LOG, **kwargs)
self._windows += [win]
return win
line 21 on_black,bright_white,reverse vvv [6] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-8
line 21 on_black,bright_white,reverse vvv [8] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
+× scrolldown-9
+line 21 on_black,bright_white,reverse vvv [9] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-10
line 21 on_black,bright_white,reverse vvv [10] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-11
line 21 on_black,bright_white,reverse vvv [12] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-14
line 21 on_black,bright_white,reverse vvv [14] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
+× scrolldown-19
+line 21 on_black,bright_white,reverse vvv [19] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-22
line 21 on_black,bright_white,reverse vvv [22] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
× scrolldown-25
line 21 on_black,bright_white,reverse vvv [25] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
+× scrolldown-29
+line 21 on_black,bright_white,reverse vvv [29] vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv§§
+
× status-[0]-prompt
line 22 on_black,bright_white :start)=====================================================================([0]§§
× status-0-[1:6]-prompt
line 22 on_black,bright_white foo.bar.baz:debug)====================================================(0 [(1:6)]§§
insert prompt-empty : +23
+× status-0-[1:32]-prompt
+line 22 on_black,bright_white foo.bar.baz:debug)===================================================(0 [(1:32)]§§
× status-0-[1]-prompt
line 22 on_black,bright_white foo.bar.baz:debug)========================================================(0 [1]§§
insert prompt-empty : +23
line 28 on_black,bright_green >.. §§:§§:§§ PONG :bar
line 29 on_black,bright_white <.. §§:§§:§§ PING :baz
line 30 on_black,bright_green >.. §§:§§:§§ PONG :baz
+line 31 on_black,bright_white <.. §§:§§:§§ PING :0
+line 32 on_black,bright_green >.. §§:§§:§§ PONG :0
+line 31 on_black,bright_white <.. §§:§§:§§ PING :1
+line 32 on_black,bright_green >.. §§:§§:§§ PONG :1
+line 33 on_black,bright_white <.. §§:§§:§§ PING :2
+line 34 on_black,bright_green >.. §§:§§:§§ PONG :2
+line 35 on_black,bright_white <.. §§:§§:§§ PING :3
+line 36 on_black,bright_green >.. §§:§§:§§ PONG :3
+line 37 on_black,bright_white <.. §§:§§:§§ PING :4
+line 38 on_black,bright_green >.. §§:§§:§§ PONG :4
+line 39 on_black,bright_white <.. §§:§§:§§ PING :5
+line 40 on_black,bright_green >.. §§:§§:§§ PONG :5
+line 41 on_black,bright_white <.. §§:§§:§§ PING :6
+line 42 on_black,bright_green >.. §§:§§:§§ PONG :6
+line 43 on_black,bright_white <.. §§:§§:§§ PING :7
+line 44 on_black,bright_green >.. §§:§§:§§ PONG :7
+line 45 on_black,bright_white <.. §§:§§:§§ PING :8
+line 46 on_black,bright_green >.. §§:§§:§§ PONG :8
+line 47 on_black,bright_white <.. §§:§§:§§ PING :9
+line 48 on_black,bright_green >.. §§:§§:§§ PONG :9
+line 49 on_black,bright_white <.. §§:§§:§§ PING :10
+line 50 on_black,bright_green >.. §§:§§:§§ PONG :10
+line 51 on_black,bright_white <.. §§:§§:§§ PING :11
+line 52 on_black,bright_green >.. §§:§§:§§ PONG :11
+line 53 on_black,bright_white <.. §§:§§:§§ PING :12
+line 54 on_black,bright_green >.. §§:§§:§§ PONG :12
+line 55 on_black,bright_white <.. §§:§§:§§ PING :13
+line 56 on_black,bright_white <.. §§:§§:§§ PONG :13
+line 57 on_black,bright_white <.. §§:§§:§§ PING :14
+line 58 on_black,bright_white <.. §§:§§:§§ PONG :14
+line 59 on_black,bright_white <.. §§:§§:§§ PING :15
+line 60 on_black,bright_white <.. §§:§§:§§ PONG :15
×
insert history_1 25:31 +16
insert status-0-[1]-prompt : +22
+# check log growth beyond max depth only remarkable after scrolling up to limit
+loggedservermsg 0 1 <.. PING :0
+log 1 >.. PONG :0
+insert history_1 12:25 +0
+insert bookmark : +13
+insert history_1 25:33 +14
+insert status-0-[1]-prompt : +22
+> /window.history.scroll up
+insert history_1 2:23 +0
+insert scrolldown-9 : +21
+insert status-0-[1]-prompt : +22
+> /window.history.scroll up
+insert lines-empty :10 +0
+insert history_1 1:12 +10
+insert scrolldown-19 : +21
+insert status-0-[1]-prompt : +22
+> /window.history.scroll up
+insert lines-empty :20 +0
+insert history_1 1:2 +20
+insert scrolldown-29 : +21
+insert status-0-[1]-prompt : +22
+
> /quit
log 0 <..