| # Libsycl Coding Standards |
| |
| :::{contents} |
| :local: true |
| ::: |
| |
| ## Introduction |
| |
| The `libsycl` project follows the |
| [LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html) with |
| exceptions as described in this document. |
| |
| ### Naming |
| |
| #### Names of Macros, Types, Functions, Variables, and Enumerators |
| |
| Entities specified by the SYCL specification are named as required by the SYCL |
| specification. Names of all other entities follow the guidance in the LLVM |
| Coding Standards. |
| |
| #### Names of Files and Directories |
| |
| - **Directory Names** should be in snake case (e.g. `test_e2e`) except in |
| cases where LLVM project wide conventions are used. For example, LIT tests |
| often use an `Inputs` directory to hold files that are used by tests but |
| that should be excluded from test discovery. |
| - **File Names in snake case** should be used for all C++ implementation files. |
| For example files in directories `include`, `src`, `test`, `utils`, |
| and `tools` should be named in snake case. |
| - **File Names in camel case** should be used for most other files. For example |
| files in directories `cmake/modules` and `docs` should be named in camel |
| case. |
| |