struct EE::UI::Doc::SyntaxPattern
#include <syntaxdefinition.hpp>
struct SyntaxPattern {
// typedefs
typedef std::function<std::string(const SyntaxPattern&, const std::string_view&)> DynamicSyntax;
// enums
enum Flags;
// fields
static SyntaxDefMap<SyntaxStyleType, std::string> SyntaxStyleTypeCache;
std::vector<std::string> patterns;
std::vector<SyntaxStyleType> types;
std::vector<SyntaxStyleType> endTypes;
std::vector<std::string> typesNames;
std::vector<std::string> endTypesNames;
std::string syntax { "" };
DynamicSyntax dynSyntax;
SyntaxPatternMatchType matchType { SyntaxPatternMatchType::LuaPattern };
const SyntaxDefinition* def { nullptr };
Uint16 flags { 0 };
Uint16 repositoryIdx { 0 };
std::vector<SyntaxPattern> contentPatterns;
String::HashType contentScopeRepoHash { 0 };
// construction
SyntaxPattern(std::vector<std::string>&& _patterns, const std::string& _type, const std::string& _syntax = "", SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
SyntaxPattern(std::vector<std::string>&& _patterns, std::vector<std::string>&& _types, const std::string& _syntax = "", SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
SyntaxPattern(std::vector<std::string>&& _patterns, std::vector<std::string>&& _types, std::vector<std::string>&& _endTypes, const std::string& _syntax = "", SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
SyntaxPattern(std::vector<std::string>&& _patterns, std::vector<std::string>&& _types, std::vector<std::string>&& _endTypes, const std::string& _syntax, SyntaxPatternMatchType matchType, std::vector<SyntaxPattern>&& _subPatterns);
SyntaxPattern(std::vector<std::string>&& _patterns, const std::string& _type, DynamicSyntax&& _syntax, SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
SyntaxPattern(std::vector<std::string>&& _patterns, std::vector<std::string>&& _types, DynamicSyntax&& _syntax, SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
SyntaxPattern(std::vector<std::string>&& _patterns, std::vector<std::string>&& _types, std::vector<std::string>&& _endTypes, DynamicSyntax&& _syntax, SyntaxPatternMatchType matchType = SyntaxPatternMatchType::LuaPattern);
// methods
bool hasSyntax() const;
bool hasSyntaxOrContentScope() const;
bool isPure() const;
bool isInclude() const;
bool isRepositoryInclude() const;
bool isRootSelfInclude() const;
bool isRangedMatch() const;
bool isSimpleRangedMatch() const;
std::string_view getRepositoryName() const;
bool checkIsIncludePattern() const;
bool checkIsRangedMatch() const;
bool checkIsRootSelfInclude() const;
bool checkIsRepositoryInclude() const;
bool hasContentScope() const;
};