home
·
contact
·
privacy
projects
/
ircplom
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
683ebf6
)
Add basic line-level highlighting.
master
author
Christian Heller
<c.heller@plomlompom.de>
Sat, 4 Oct 2025 12:24:53 +0000
(14:24 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Sat, 4 Oct 2025 12:24:53 +0000
(14:24 +0200)
src/ircplom/tui_base.py
patch
|
blob
|
history
diff --git
a/src/ircplom/tui_base.py
b/src/ircplom/tui_base.py
index 5d869fb3d14e5248616ed6a7a317264a9d69217b..ce26c955b273b57f5ce744bad7e359022f586085 100644
(file)
--- a/
src/ircplom/tui_base.py
+++ b/
src/ircplom/tui_base.py
@@
-158,13
+158,24
@@
class _HistoryWidget(_ScrollableWidget):
wrapped = (self._wrapped[:bookmark_idx_pos]
+ [(0, '-' * self._sizes.x)] # bookmark line
+ self._wrapped[bookmark_idx_pos:])
wrapped = (self._wrapped[:bookmark_idx_pos]
+ [(0, '-' * self._sizes.x)] # bookmark line
+ self._wrapped[bookmark_idx_pos:])
- to_write = [t[1] for t in wrapped[start_idx_neg:end_idx_neg]]
+
+ to_write_w_attrs: list[tuple[Optional[str], str]] = []
+ do_highlight = False
+ prev_idx_unwrapped: Optional[int] = -1
+ for idx_unwrapped, line in wrapped[start_idx_neg:end_idx_neg]:
+ if idx_unwrapped != prev_idx_unwrapped:
+ do_highlight = line[:1] == '*'
+ prev_idx_unwrapped = idx_unwrapped
+ to_write_w_attrs += [('bold' if do_highlight else None, line)]
+
if add_scroll_info:
scroll_info = f'vvv [{(-1) * self._wrapped_idx_neg}] '
scroll_info += 'v' * (self._sizes.x - len(scroll_info))
if add_scroll_info:
scroll_info = f'vvv [{(-1) * self._wrapped_idx_neg}] '
scroll_info += 'v' * (self._sizes.x - len(scroll_info))
- to_write += [scroll_info]
- for i, line in enumerate(to_write):
- self._write(line, i)
+ to_write_w_attrs += [('reverse', scroll_info)]
+
+ for idx, line_t in enumerate(to_write_w_attrs):
+ self._write(start_y=idx, attribute=line_t[0], msg=line_t[1])
+
hist_idx_pos = self._wrapped[(end_idx_neg or 0) - 1][0]
self._last_read_idx_pos = max(self._last_read_idx_pos,
hist_idx_pos or 0)
hist_idx_pos = self._wrapped[(end_idx_neg or 0) - 1][0]
self._last_read_idx_pos = max(self._last_read_idx_pos,
hist_idx_pos or 0)