emacs-circe / circe

Circe, a Client for IRC in Emacs
GNU General Public License v3.0
395 stars 51 forks source link

Fix nick colors if nick hasn't spoken yet #336

Closed jgkamat closed 6 years ago

jgkamat commented 6 years ago

If a nick hasn't been colored yet (perhaps they haven't spoken yet), they won't have an entry in circe-nick-color-mapping. If they don't have an entry, circe-nick-color-nick-list will not return them in the list. This results in a couple of nicks not being colored if they haven't spoken yet or if the table is flushed.

I'm not sure if this will have an adverse effect on performance, but I don't think it will because the circe-nick-color-nick-list is doing a bunch of additional processing that was removed as well. I don't know if it's enough to compensate for the extra time spent in regexp-opt (I assume that will happen), but from using this for a couple days, I don't see any huge differences.

This removes all usages of circe-nick-color-nick-list let me know if it's ok to just remove that.

If there was a reason for not just using circe-channel-nicks directly, let me know, I could have missed something (in which case this can be closed, probably).

jorgenschaefer commented 6 years ago

Thank you for the contribution!

@wasamasa could you look at this?

wasamasa commented 6 years ago

Well, looking at the docstring of circe-nick-color-nick-list tells me that the function does more than returning a list of colored nicks, it excludes our own nick and blacklisted ones. I'd at the very least do the same in my replacement function to not undo that feature: https://github.com/jorgenschaefer/circe/issues/101.

wasamasa commented 6 years ago

Looks good!

jorgenschaefer commented 6 years ago

Thank you all!