#include "string.hh" #include "exception.hh" namespace Kakoune { std::vector split(const String& str, char separator) { auto begin = str.begin(); auto end = str.begin(); std::vector res; while (end != str.end()) { while (end != str.end() and *end != separator) ++end; res.push_back(String(begin, end)); if (end == str.end()) break; begin = ++end; } return res; } int str_to_int(const String& str) { try { return stoi(str); } catch (std::logic_error&) { throw runtime_error(str + "is not a number"); } } String option_to_string(const Regex& re) { return String{re.str()}; } void option_from_string(const String& str, Regex& re) { try { re = Regex{str.begin(), str.end()}; } catch (boost::regex_error& err) { throw runtime_error("unable to create regex: "_str + err.what()); } } }