| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when running CTRL+N or CTRL+P to go to the next or previous
channel, with the horizontal channel mode, the selected channel could
appear offscreen.
This patch ensures that we scroll just enough to make the newly selected
chan visible.
Thanks to Nomeji for his hard work on this. Adapted slightly to
refactor existing code to use the newly created width computation
routine.
|
|
|
|
| |
Inspired by a patch from gildarts <gildarts@orbital.rocks>
|
|
|
|
| |
You'll need a recent soju version to use this.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when modifying a line in the history (and then possibly
sending it), the history was modified, meaning that when looking up
history lines again, instead of seeing a new line, the actual original
line had been modified.
With this patch, history is always kepy, and modifying a previous line
and sending it will add this line to the history, and restore the
previous history, after flushing the message.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To reproduce:
- Enter a message
- Enter a substring of that message, backsearch it
- Press backspace until the substring is cleared
- senpai crashes
This merely fixes the crash. We could do backsearch better in the future
but that's a whole feature overhaul to be done in its own patch.
Thanks to paren@disroot.org for helping me find the issue by sending a
panic trace :)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
See: https://github.com/ircv3/ircv3-specifications/pull/498
|
|
|
|
|
| |
It should mark the buffer as read if the last message was
before or at the "read" event, not after.
|
|
|
|
|
| |
It's confusing to search for something and have no results show if the
server doesn't support the soju.im/search capability.
|
|
|
|
|
| |
Following a pprof profiling, using fmt.Scanf was slow. time.Parse is
faster and more readable.
|
|
|
|
|
| |
This saves one round trip by letting us send BOUNCER LISTNETWORKS right
away and speeds up startup time.
|
|
|
|
| |
This will slightly speed up startup time.
|
|
|
|
|
|
| |
This heavily reduces CPU load on start, so that we only parse the links
of the current buffer hundreds of messages, rather than all of the
hundreds of messages * count of buffers.
|
| |
|
|
|
|
|
|
|
| |
This patch adds the ability to set a config option for changing the
foreground text color of unread buffers
(This was refactored slightly by delthas.)
|
| |
|
|
|
|
|
|
|
| |
This is inspired by a patch from mooff.
This keeps the same click & drag behavior as for the vertical channel
list.
|
|
|
|
|
|
| |
This is inspired by a patch by mooff.
The horizontal channel list can now be scrolled with the mouse wheel.
|
|
|
|
|
|
|
| |
This patch is inspired and modified from a patch by mooff.
Also this switches the default configuration to *display* the channel &
member list by default.
|
|
|
|
| |
This is a standard shortcut.
|
|
|
|
|
| |
Private messages are now sent to their own buffer, rather than in the
home buffer.
|
|
|
|
|
|
|
|
|
|
| |
Following a quick local profiling & benchmark, matching links with
regexes is by far (>50x) the most time-consuming processing we do,
especially on start.
Switching to a URL regex with any scheme is faster by a factor of ~x8,
probably because there are many less "or" cases between a list of 100+
schemes, instead using a simple character class.
|
|
|
|
|
|
|
|
|
|
| |
Previously, we would render every 64 events (at most).
Now that we have many more events, with history & read, batch events by
period rather than static size.
Waiting up to 200ms before refreshing is a good compromise between
responsiveness and performance.
|
|
|
|
| |
i.e. don't enter an infinite loop when printing disconnection errors :-)
|
|
|
|
|
|
| |
Also refactor ui/ to support overlays, temporary anonmyous buffers.
See: https://github.com/emersion/soju/pull/39
|
|
|
|
|
| |
My DSL line is awful atm, I'd like to know ASAP when I'm disconnected so
that I don't write paragraphs into the void.
|
| |
|
|
|
|
|
| |
This avoids rare cases where we try to send messages to the event
channel, but it is full and blocks the Close routine.
|
|
|
|
|
| |
This adds support for OSC 8 hyperlink on some VTE-based terminal
emulators.
|
|
|
|
|
|
|
|
|
| |
According to a CPU profiling I meade, the regex applied on each incoming
message took a substantial part of the CPU time. The slowdown it caused
was noticable at startup.
This optimizes the URL parsing by eliminating fast-path cases where no
dot appears to avoid parsing the line with a regex in those cases.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for SOCKS5 proxy support through standard environement
variables.
To connect to the SOCKS5 proxy at host:port with credentials user:pass,
run:
export ALL_PROXY=socks5://user:pass@host:port
Co-authored-by: the-y <the-y@riseup.net>
|
|
|
|
|
| |
Return an error instead of segfaulting when handling /mode x where x
is a string that starts without + - or #
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
See: https://github.com/emersion/soju/blob/c7f0634ec8ee94425547b159bc36705582151012/doc/read.md
|
| |
|
| |
|
|
|
|
|
| |
Implements sorting of both network names and buffer names inside
networks.
|
| |
|
|
|
|
|
| |
this behaviour was changed back in
c078fbbb029fd248756ea5d7726f9ae6090a4ee3
|
|
|
|
| |
I personally find this esthetically more pleasing.
|