Skip to content

Latest commit

 

History

History
103 lines (69 loc) · 3.02 KB

codeformatting.rst

File metadata and controls

103 lines (69 loc) · 3.02 KB

Code Formatting

Code Checkers

To enhance the code quality of FTI, we use the following open source code checkers:

Language Code Checker
C cpplint
Fortran fprettify
CMake cmakelint

Coding Style

cpplint checks C/C++ files style issues following Google C/C++ style guide. Please visit this guide to understand how you should format your code to comply to FTI's style.

Fortran's and CMake style checkers have a plenty of formatting options, as the respective documentation lists. For FTI, we choose to adopt the following style rules:

Formatting options for Fortran Files

Options Explanation
--indent 4 relative indentation width
--line-length 140 column after which a line should end
--whitespace 2 Presets for the amount of whitespace : 2
--strict-indent strictly impose indentation even for nested loops

Formatting options for CMake Files

Options Explanation
--line-width 80 How wide to allow formatted cmake files
--tab-size 4 How many spaces to tab for indent
--separate-ctrl-name-with-space separate flow control names from their parentheses with a space
--separate-fn-name-with-space separate function names from parentheses with a space

Implementation

Code checking is integrated in FTI through a script that traverses any added/modified code in FTI and checks if it conforms to the desired coding style. The script acts as a pre-commit hook that gets fired by a local commit.

Examples of the execution on FTI s code

image

Contributing

Prerequisites

Before you will be able to contribute to FTI, you need to have the code checkers installed so that your code is checked prior to any commit. The checkers are easy to install if you have pip. For the latest installation steps, please visit the Code Checkers.

Note

Notice: For a temporary commit where the developer is aware that the code might still need formatting but still wants to commit, use the flag --no-verify along with the commit command.