20 string lineBreak = (htmlFormatted ?
"<br>" :
"\n");
22 for (
int i = 0; i < count; ++i)
56 this->issueType = issueType;
57 this->action = action;
58 this->filePath = filePath;
59 this->summary = summary;
60 this->details = details;
67 string VuoCompilerIssue::getIssueTypeString(
void)
73 issueTypeStr =
"Error";
76 issueTypeStr =
"Warning";
87 string VuoCompilerIssue::fillInPlaceholders(
const string &s,
bool htmlFormatted)
const
92 string moduleKeyFormatted = moduleKey;
94 moduleKeyFormatted =
"<code>" + moduleKeyFormatted +
"</code>";
102 moduleTitleFormatted =
"<code>" + moduleTitleFormatted +
"</code>";
105 moduleKeyFormatted =
"<code>" + moduleKeyFormatted +
"</code>";
110 string link = (htmlFormatted ?
111 "<a href=\"" + linkUrl +
"\">" + linkText +
"</a>" :
112 linkText +
" (" + linkUrl +
")");
142 return fillInPlaceholders(details, htmlFormatted);
154 if (! summary.empty())
155 description += summary +
" — ";
169 string description = getIssueTypeString() +
" " + action;
171 if (! filePath.empty())
173 string filePathFormatted = filePath;
175 filePathFormatted =
"<code>" + filePathFormatted +
"</code>";
177 description +=
" " + filePathFormatted;
182 if (! summary.empty())
183 description += summary +
" — ";
207 return fillInPlaceholders(hint, htmlFormatted);
215 this->helpPath = path;
231 this->filePath = filePath;
247 this->lineNumber = lineNumber;
263 this->moduleKey = moduleKey;
280 this->module = module;
313 this->cables = cables;
333 vector<string> nodeStrings;
334 for (set<VuoNode *>::iterator i = nodes.begin(); i != nodes.end(); ++i)
338 nodeStrings.push_back(ss.str());
340 sort(nodeStrings.begin(), nodeStrings.end());
343 vector<string> cableStrings;
344 for (set<VuoCable *>::iterator i = cables.begin(); i != cables.end(); ++i)
348 cableStrings.push_back(ss.str());
368 issues.push_back(issue);
378 vector<string> uniqueDescriptions;
379 for (vector<VuoCompilerIssue>::iterator i = issues.begin(); i != issues.end(); ++i)
381 string description = (*i).getShortDescription(htmlFormatted);
382 if (find(uniqueDescriptions.begin(), uniqueDescriptions.end(), description) == uniqueDescriptions.end())
383 uniqueDescriptions.push_back(description);
396 vector<string> uniqueDescriptions;
397 for (vector<VuoCompilerIssue>::iterator i = issues.begin(); i != issues.end(); ++i)
399 string description = (*i).getLongDescription(htmlFormatted);
400 if (find(uniqueDescriptions.begin(), uniqueDescriptions.end(), description) == uniqueDescriptions.end())
401 uniqueDescriptions.push_back(description);
414 vector<string> uniqueHints;
415 for (vector<VuoCompilerIssue>::iterator i = issues.begin(); i != issues.end(); ++i)
417 string hint = (*i).getHint(htmlFormatted);
418 if (! hint.empty() && find(uniqueHints.begin(), uniqueHints.end(), hint) == uniqueHints.end())
419 uniqueHints.push_back(hint);
430 for (vector<VuoCompilerIssue>::iterator i = issues.begin(); i != issues.end(); ++i)
431 if ((*i).getFilePath().empty())
432 (*i).setFilePath(filePath);
440 issues.push_back(issue);
448 issues.insert(issues.begin(), otherIssues->issues.begin(), otherIssues->issues.end());
456 return issues.empty();
473 for (vector<VuoCompilerIssue>::iterator i = issues.begin(); i != issues.end(); ++i)