读取vim文档中的代码段
std::vector<std::string> FileUtil::readFileLines(std::string& file, char delim){
std::ifstream ss(file);
std::string item;
std::vector<std::string> elems;
while (std::getline(ss, item, delim)) {
if (!item.empty()) {
elems.push_back(item);
}
}
return elems;
}
std::vector<std::string> FileUtil::vimdoc(std::string& file_name){
auto lines = readFileLines(file_name, '\n');
bool is_in_doc = false;
std::vector<std::string> codes;
std::string code;
int i = 0;
for(auto line:lines){
i++; // debug used
int len = line.size();
if(is_in_doc && len > 0 && (line[0] !=' ' || line[0] == '\t') ){
is_in_doc = false;
if(code.size()>0){
codes.push_back(code);
code = "";
}
}
if(is_in_doc){
code.append("\n");
code.append(line);
}
if(len == 1 && line[0] =='>' || len >2 && line[len -1] == '>' && line[len -2] ==' ' ){
is_in_doc = true;
}
}
if(code.size()>0){
codes.push_back(code);
}
return codes;
}