#ifndef TS_H #define TS_H #include "./editor.h" #include "./pch.h" #include "./utils.h" #define HEX(s) (static_cast(std::stoul(s, nullptr, 16))) extern std::unordered_map regex_cache; TSQuery *load_query(const char *query_path, TSSetBase *set); void ts_collect_spans(Editor *editor); bool ts_predicate(TSQuery *query, const TSQueryMatch &match, std::function subject_fn); void clear_regex_cache(); template inline T *safe_get(std::map &m, uint16_t key) { auto it = m.find(key); if (it == m.end()) return nullptr; return &it->second; } #endif