| # PerfettoSQL Style Guide | |
| _This page provides a suggested style guide for writing PerfettoSQL and is in | |
| use inside the PerfettoSQL standard library in the trace processor. It also | |
| provides guidance on the autoformatter._ | |
| ## Rules | |
| 1. Keep lines below 80 characters long | |
| 2. Function names, macro names and table/view names should all be lower snake | |
| case. | |
| 3. SQL keywords should all be upper case | |
| 4. When line-breaking SQL expressions, place the joining keyword (AND/OR) at the | |
| _start of the next line_ rather than the _end of the previous line_. | |
| ## Autoformatter | |
| PerfettoSQL comes with an auto-formatter driven by `tools/format-sql-sources`. | |
| It shells out to `syntaqlite fmt` using the same PerfettoSQL grammar the trace | |
| processor itself parses with, loaded as a shared library. The script can be run | |
| over any set of files or directories and automatically formats the code to | |
| adhere to the above rules. | |
| This script is _required_ to be run when making contributions to the standard | |
| library. It's automatically executed as part of running `tools/format-sources` | |
| which is part of the standard development workflow in Perfetto. Presubmit will | |
| check to make sure you've done this. |