Functions | |
def | run_shell_command (arguments) |
def | split_negative_from_positive_patterns (patterns) |
def | get_file_patterns (globs, regexes) |
def | filter_files (files, file_patterns) |
def | get_changed_files (revision, paths) |
def | get_all_files (paths) |
def | get_changed_lines (revision, filename) |
def | run_shell_commands_in_parallel (commands) |
def | run_clang_tidy (options, line_filters, files) |
def | parse_options () |
def | main () |
Variables | |
Patterns | |
DEFAULT_FILE_PATTERN | |
CHUNK_PATTERN | |
VERBOSE | |
ninja_template | |
build_template | |
A driver script to run clang-tidy on changes detected via git. By default, clang-tidy runs on all files you point it at. This means that even if you changed only parts of that file, you will get warnings for the whole file. This script has the ability to ask git for the exact lines that have changed since a particular git revision, and makes clang-tidy only lint those. This makes it much less overhead to integrate in CI and much more relevant to developers. This git-enabled mode is optional, and full scans of a directory tree are also possible. In both cases, the script allows filtering files via glob or regular expressions.
def tools.clang_tidy.filter_files | ( | files, | |
file_patterns | |||
) |
Returns all files that match any of the patterns.
Definition at line 90 of file clang_tidy.py.
def tools.clang_tidy.get_all_files | ( | paths | ) |
Returns all files that are tracked by git in the given paths.
Definition at line 112 of file clang_tidy.py.
def tools.clang_tidy.get_changed_files | ( | revision, | |
paths | |||
) |
Runs git diff to get the paths of all changed files.
Definition at line 103 of file clang_tidy.py.
def tools.clang_tidy.get_changed_lines | ( | revision, | |
filename | |||
) |
Runs git diff to get the line ranges of all file changes.
Definition at line 118 of file clang_tidy.py.
def tools.clang_tidy.get_file_patterns | ( | globs, | |
regexes | |||
) |
Returns a list of compiled regex objects from globs and regex pattern strings.
Definition at line 72 of file clang_tidy.py.
def tools.clang_tidy.parse_options | ( | ) |
Parses the command line options.
Definition at line 193 of file clang_tidy.py.
def tools.clang_tidy.run_clang_tidy | ( | options, | |
line_filters, | |||
files | |||
) |
Executes the actual clang-tidy command in the shell.
Definition at line 159 of file clang_tidy.py.
def tools.clang_tidy.run_shell_command | ( | arguments | ) |
Executes a shell command.
Definition at line 46 of file clang_tidy.py.
def tools.clang_tidy.run_shell_commands_in_parallel | ( | commands | ) |
runs all the commands in parallel with ninja, commands is a List[List[str]]
Definition at line 144 of file clang_tidy.py.
def tools.clang_tidy.split_negative_from_positive_patterns | ( | patterns | ) |
Separates negative patterns (that start with a dash) from positive patterns
Definition at line 60 of file clang_tidy.py.