class EE::UI::Doc::SyntaxDefinitionManager

#include <syntaxdefinitionmanager.hpp>

class SyntaxDefinitionManager {
public:
    // methods

    static SyntaxDefinitionManager* createSingleton(std::size_t reserveSpaceForLanguages);
    static std::pair<std::string, std::string> toCPP(const SyntaxDefinition& def);
    std::size_t count() const;
    void reserveSpaceForLanguages(std::size_t totalLangs);
    SyntaxDefinition& add(SyntaxDefinition&& syntaxStyle);
    const SyntaxDefinition& getPlainDefinition() const;
    std::vector<const SyntaxDefinition*> languagesThatSupportExtension(std::string extension) const;
    bool extensionCanRepresentManyLanguages(std::string extension) const;
    const SyntaxDefinition& getByExtension(const std::string& filePath, bool hFileAsCPP = false) const;
    const SyntaxDefinition& getByHeader(const std::string& header, bool hFileAsCPP = false) const;
    const SyntaxDefinition& find(const std::string& filePath, const std::string& header, bool hFileAsCPP = false);
    const SyntaxDefinition& findFromString(const std::string& str) const;
    SyntaxDefinition& getByExtensionRef(const std::string& filePath);
    const SyntaxDefinition& getByLanguageName(const std::string& name) const;
    const SyntaxDefinition& getByLanguageIndex(const Uint32& index) const;
    const SyntaxDefinition& getByLanguageNameInsensitive(std::string name) const;
    const SyntaxDefinition& getByLSPName(const std::string& name) const;
    const SyntaxDefinition& getByLanguageId(const String::HashType& id) const;
    SyntaxDefinition& getByLanguageNameRef(const std::string& name);
    std::vector<std::string> getLanguageNames() const;
    std::vector<std::string> getExtensionsPatternsSupported() const;
    const SyntaxDefinition* getPtrByLanguageName(const std::string& name) const;
    const SyntaxDefinition* getPtrByLSPName(const std::string& name) const;
    const SyntaxDefinition* getPtrByLanguageId(const String::HashType& id) const;
    bool loadFromStream(IOStream& stream, std::vector<std::string>* addedLangs);
    bool loadFromStream(IOStream& stream);
    bool loadFromFile(const std::string& fpath);
    bool loadFromMemory(const Uint8* data, const Uint32& dataSize);
    bool loadFromPack(Pack* Pack, const std::string& filePackPath);
    void loadFromFolder(const std::string& folderPath);
    const std::vector<SyntaxDefinition>& getDefinitions() const;
    bool save(const std::string& path, const std::vector<SyntaxDefinition>& def = {});
    void setLanguageExtensionsPriority(const std::map<std::string, std::string>& priorities);
    const std::map<std::string, std::string>& getLanguageExtensionsPriority();
};