linter.h 975 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include <yql/essentials/ast/yql_errors.h>
  3. #include <util/generic/hash.h>
  4. #include <util/generic/set.h>
  5. #include <yql/essentials/providers/common/provider/yql_provider_names.h>
  6. namespace NYql {
  7. namespace NFastCheck {
  8. const TSet<TString>& ListChecks();
  9. enum class ESyntax {
  10. SExpr,
  11. YQL,
  12. PG
  13. };
  14. enum class EMode {
  15. Default,
  16. Main,
  17. Library,
  18. View
  19. };
  20. struct TCheckFilter {
  21. bool Include = true;
  22. TString CheckNameGlob;
  23. };
  24. struct TChecksRequest {
  25. TString Program;
  26. TString File;
  27. THashMap<TString, TString> ClusterMapping;
  28. ESyntax Syntax = ESyntax::YQL;
  29. ui16 SyntaxVersion = 1;
  30. bool IsAnsiLexer = false;
  31. EMode Mode = EMode::Default;
  32. TMaybe<TVector<TCheckFilter>> Filters;
  33. };
  34. struct TCheckResponse {
  35. TString CheckName;
  36. bool Success = false;
  37. TIssues Issues;
  38. };
  39. struct TChecksResponse {
  40. TVector<TCheckResponse> Checks;
  41. };
  42. TChecksResponse RunChecks(const TChecksRequest& request);
  43. }
  44. }