1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */
#ifndef WORD_COMPLETION_H
#define WORD_COMPLETION_H
#include <string>
#include <vector>
class CWordCompletion
{
public:
void Init();
void Sort();
void Filter();
bool AddWord(const std::string& word, bool startOfLine, bool unitName, bool miniMap);
bool AddWordRaw(const std::string& word, bool startOfLine, bool unitName, bool miniMap);
bool RemoveWord(const std::string& word);
/// Returns partial matches
std::vector<std::string> Complete(std::string& msg) const;
private:
class WordProperties {
public:
WordProperties()
: startOfLine(false)
, unitName(false)
, miniMap(false)
{}
WordProperties(bool startOfLine, bool unitName, bool miniMap)
: startOfLine(startOfLine)
, unitName(unitName)
, miniMap(miniMap)
{}
bool startOfLine;
bool unitName;
bool miniMap;
};
typedef std::pair<std::string, WordProperties> WordEntry;
std::vector<WordEntry> words;
};
extern CWordCompletion wordCompletion;
#endif /* WORD_COMPLETION_H */
|