Make emote completion a lot smarter (#4987)

This commit is contained in:
Mm2PL
2023-11-28 11:06:35 +01:00
committed by GitHub
parent a240797b68
commit 6d02bb7304
8 changed files with 253 additions and 1 deletions
@@ -484,6 +484,8 @@ void GeneralPage::initLayout(GeneralPageView &layout)
"cvMask and 7TV's RainTime, will appear as normal emotes.");
layout.addCheckbox("Enable emote auto-completion by typing :",
s.emoteCompletionWithColon);
layout.addCheckbox("Use experimental smarter emote completion.",
s.useSmartEmoteCompletion);
layout.addDropdown<float>(
"Size", {"0.5x", "0.75x", "Default", "1.25x", "1.5x", "2x"},
s.emoteScale,
@@ -3,6 +3,8 @@
#include "controllers/completion/sources/UserSource.hpp"
#include "controllers/completion/strategies/ClassicEmoteStrategy.hpp"
#include "controllers/completion/strategies/ClassicUserStrategy.hpp"
#include "controllers/completion/strategies/SmartEmoteStrategy.hpp"
#include "singletons/Settings.hpp"
#include "singletons/Theme.hpp"
#include "util/LayoutCreator.hpp"
#include "widgets/splits/InputCompletionItem.hpp"
@@ -60,6 +62,13 @@ std::unique_ptr<completion::Source> InputCompletionPopup::getSource() const
switch (*this->currentKind_)
{
case CompletionKind::Emote:
if (getSettings()->useSmartEmoteCompletion)
{
return std::make_unique<completion::EmoteSource>(
this->currentChannel_.get(),
std::make_unique<completion::SmartEmoteStrategy>(),
this->callback_);
}
return std::make_unique<completion::EmoteSource>(
this->currentChannel_.get(),
std::make_unique<completion::ClassicEmoteStrategy>(),