Add input completion test suite (#4644)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
Daniel Sage
2023-05-21 06:10:49 -04:00
committed by GitHub
parent e9f300b765
commit 51f2c4d1c0
24 changed files with 514 additions and 63 deletions
+12 -2
View File
@@ -265,7 +265,7 @@ void Emojis::loadEmojiSet()
}
std::vector<boost::variant<EmotePtr, QString>> Emojis::parse(
const QString &text)
const QString &text) const
{
auto result = std::vector<boost::variant<EmotePtr, QString>>();
int lastParsedEmojiEndIndex = 0;
@@ -359,7 +359,7 @@ std::vector<boost::variant<EmotePtr, QString>> Emojis::parse(
return result;
}
QString Emojis::replaceShortCodes(const QString &text)
QString Emojis::replaceShortCodes(const QString &text) const
{
QString ret(text);
auto it = this->findShortCodesRegex_.globalMatch(text);
@@ -393,4 +393,14 @@ QString Emojis::replaceShortCodes(const QString &text)
return ret;
}
const EmojiMap &Emojis::getEmojis() const
{
return this->emojis;
}
const std::vector<QString> &Emojis::getShortCodes() const
{
return this->shortCodes;
}
} // namespace chatterino
+19 -3
View File
@@ -37,16 +37,32 @@ struct EmojiData {
using EmojiMap = ConcurrentMap<QString, std::shared_ptr<EmojiData>>;
class Emojis
class IEmojis
{
public:
virtual ~IEmojis() = default;
virtual std::vector<boost::variant<EmotePtr, QString>> parse(
const QString &text) const = 0;
virtual const EmojiMap &getEmojis() const = 0;
virtual const std::vector<QString> &getShortCodes() const = 0;
virtual QString replaceShortCodes(const QString &text) const = 0;
};
class Emojis : public IEmojis
{
public:
void initialize();
void load();
std::vector<boost::variant<EmotePtr, QString>> parse(const QString &text);
std::vector<boost::variant<EmotePtr, QString>> parse(
const QString &text) const override;
EmojiMap emojis;
std::vector<QString> shortCodes;
QString replaceShortCodes(const QString &text);
QString replaceShortCodes(const QString &text) const override;
const EmojiMap &getEmojis() const override;
const std::vector<QString> &getShortCodes() const override;
private:
void loadEmojis();