| 40 | } |
| 41 | |
| 42 | EMMY_API char *CheckCodeStyle(const char *code, const char *uri) { |
| 43 | CodeFormat &codeFormat = CodeFormat::GetInstance(); |
| 44 | auto result = codeFormat.Diagnostic(uri, code); |
| 45 | if (result.Type != ResultType::Ok) { |
| 46 | return nullptr; |
| 47 | } |
| 48 | auto diagnostic_results = std::move(result.Data); |
| 49 | std::string result_str; |
| 50 | auto total_size = 0; |
| 51 | for (auto &diagnostic: diagnostic_results) { |
| 52 | total_size += diagnostic.Message.size(); |
| 53 | } |
| 54 | result_str.reserve(total_size * 2); |
| 55 | |
| 56 | for (auto &diagnostic: diagnostic_results) { |
| 57 | result_str.append(std::to_string(diagnostic.Start.Line)).append("|"); |
| 58 | result_str.append(std::to_string(diagnostic.Start.Col)).append("|"); |
| 59 | result_str.append(std::to_string(diagnostic.End.Line)).append("|"); |
| 60 | result_str.append(std::to_string(diagnostic.End.Col)).append("|"); |
| 61 | result_str.append(diagnostic.Message); |
| 62 | result_str.append("\n"); |
| 63 | } |
| 64 | auto ptr = new char[result_str.size() + 1]; |
| 65 | std::copy(result_str.begin(), result_str.end(), ptr); |
| 66 | ptr[result_str.size()] = '\0'; |
| 67 | return ptr; |
| 68 | } |
| 69 | } |
nothing calls this directly
no test coverage detected