--- /dev/null
+===============================================================================
+ALE C Integration *ale-c-options*
+
+For basic checking of problems with C files, ALE offers the `cc` linter, which
+runs either `clang`, or `gcc`. See |ale-c-cc|.
+
+
+===============================================================================
+Global Options
+ *ale-options.c_always_make*
+ *g:ale_c_always_make*
+ *b:ale_c_always_make*
+c_always_make
+g:ale_c_always_make
+ Type: |Number|
+ Default: `has('unix') && !has('macunix')`
+
+ If set to `1`, use `--always-make` for `make`, which means that output will
+ always be parsed from `make` dry runs with GNU make. BSD `make` does not
+ support this option, so you probably want to turn this option off when using
+ a BSD variant.
+
+ *ale-options.c_build_dir_names*
+ *g:ale_c_build_dir_names*
+ *b:ale_c_build_dir_names*
+c_build_dir_names
+g:ale_c_build_dir_names
+ Type: |List|
+ Default: `['build', 'bin']`
+
+ A list of directory names to be used when searching upwards from C files
+ to discover compilation databases with. For directory named `'foo'`, ALE
+ will search for `'foo/compile_commands.json'` in all directories on and
+ above the directory containing the C file to find path to compilation
+ database. This feature is useful for the clang tools wrapped around
+ LibTooling (namely here, clang-tidy)
+
+ *ale-options.c_build_dir*
+ *g:ale_c_build_dir*
+ *b:ale_c_build_dir*
+c_build_dir
+g:ale_c_build_dir
+ Type: |String|
+ Default: `''`
+
+ For programs that can read `compile_commands.json` files, this option can be
+ set to the directory containing the file for the project. ALE will try to
+ determine the location of `compile_commands.json` automatically, but if your
+ file exists in some other directory, you can set this option so ALE will
+ know where it is.
+
+ This directory will be searched instead of |g:ale_c_build_dir_names|.
+
+ *ale-options.c_parse_compile_commands*
+ *g:ale_c_parse_compile_commands*
+ *b:ale_c_parse_compile_commands*
+c_parse_compile_commands
+g:ale_c_parse_compile_commands
+ Type: |Number|
+ Default: `1`
+
+ If set to `1`, ALE will parse `compile_commands.json` files to automatically
+ determine flags for C or C++ compilers. ALE will first search for the
+ nearest `compile_commands.json` file, and then look for
+ `compile_commands.json` files in the directories for
+ |g:ale_c_build_dir_names|.
+
+ *ale-options.c_parse_makefile*
+ *g:ale_c_parse_makefile*
+ *b:ale_c_parse_makefile*
+c_parse_makefile
+g:ale_c_parse_makefile
+ Type: |Number|
+ Default: `0`
+
+ If set to `1`, ALE will run `make -n` to automatically determine flags to
+ set for C or C++ compilers. This can make it easier to determine the correct
+ build flags to use for different files.
+
+ NOTE: When using this option on BSD, you may need to set
+ |g:ale_c_always_make| to `0`, and `make -n` will not provide consistent
+ results if binaries have already been built, so use `make clean` when
+ editing your files.
+
+ WARNING: Running `make -n` automatically can execute arbitrary code, even
+ though it's supposed to be a dry run, so enable this option with care. You
+ might prefer to use the buffer-local version of the option instead with
+ |g:ale_pattern_options|, or you own code for checking which project you're
+ in.
+
+ You might want to disable this option if `make -n` takes too long to run for
+ projects you work on.
+
+ If |g:ale_c_parse_compile_commands| or |b:ale_c_parse_compile_commands| is
+ set to `1`, flags taken from `compile_commands.json` will be preferred over
+ `make -n` output.
+
+
+===============================================================================
+astyle *ale-c-astyle*
+
+ *ale-options.c_astyle_executable*
+ *g:ale_c_astyle_executable*
+ *b:ale_c_astyle_executable*
+c_astyle_executable
+g:ale_c_astyle_executable
+ Type: |String|
+ Default: `'astyle'`
+
+ This variable can be changed to use a different executable for astyle.
+
+ *ale-options.c_astyle_project_options*
+ *g:ale_c_astyle_project_options*
+ *b:ale_c_astyle_project_options*
+c_astyle_project_options
+g:ale_c_astyle_project_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to use an option file for project level
+ configurations. Provide only the filename of the option file that should be
+ present at the project's root directory.
+
+ For example, if .astylrc is specified, the file is searched in the parent
+ directories of the source file's directory.
+
+
+===============================================================================
+cc *ale-c-cc*
+ *ale-c-gcc*
+ *ale-c-clang*
+
+ *ale-options.c_cc_executable*
+ *g:ale_c_cc_executable*
+ *b:ale_c_cc_executable*
+c_cc_executable
+g:ale_c_cc_executable
+ Type: |String|
+ Default: `'<auto>'`
+
+ This variable can be changed to use a different executable for a C compiler.
+
+ ALE will try to use `clang` if Clang is available, otherwise ALE will
+ default to checking C code with `gcc`.
+
+ *ale-options.c_cc_options*
+ *g:ale_c_cc_options*
+ *b:ale_c_cc_options*
+c_cc_options
+g:ale_c_cc_options
+ Type: |String|
+ Default: `'-std=c11 -Wall'`
+
+ This variable can be changed to modify flags given to the C compiler.
+
+ *ale-options.c_cc_use_header_lang_flag*
+ *g:ale_c_cc_use_header_lang_flag*
+ *b:ale_c_cc_use_header_lang_flag*
+c_cc_use_header_lang_flag
+g:ale_c_cc_use_header_lang_flag
+ Type: |Number|
+ Default: `-1`
+
+ By default, ALE will use `'-x c-header'` instead of `'-x c'` for header files
+ when using Clang.
+
+ This variable can be changed to manually activate or deactivate this flag
+ for header files.
+
+ - When set to `-1`, the default beviour is used, `'-x c-header'` is used with
+ Clang and `'-x c'` is used with other compilers.
+ - When set to `0`, the flag is deactivated, `'-x c'` is always used
+ independently of the compiler.
+ - When set to `1`, the flag is activated, `'-x c-header'` is always used
+ independently of the compiler.
+
+ Gcc does not support `'-x c-header'` when using `'-'` as input filename,
+ which is what ALE does. This why, by default, ALE only uses `'-x c-header'`
+ with Clang.
+
+ *ale-options.c_cc_header_exts*
+ *g:ale_c_cc_header_exts*
+ *b:ale_c_cc_header_exts*
+c_cc_header_exts
+g:ale_c_cc_header_exts
+ Type: |List|
+ Default: `['h']`
+
+ This variable can be changed to modify the list of extensions of the files
+ considered as header files.
+
+ This variable is only used when `'-x c-header'` is used instead of `'-x c'`,
+ see |g:ale_c_cc_use_header_lang_flag|.
+
+
+===============================================================================
+ccls *ale-c-ccls*
+
+ *ale-options.c_ccls_executable*
+ *g:ale_c_ccls_executable*
+ *b:ale_c_ccls_executable*
+c_ccls_executable
+g:ale_c_ccls_executable
+ Type: |String|
+ Default: `'ccls'`
+
+ This variable can be changed to use a different executable for ccls.
+
+ *ale-options.c_ccls_init_options*
+ *g:ale_c_ccls_init_options*
+ *b:ale_c_ccls_init_options*
+c_ccls_init_options
+g:ale_c_ccls_init_options
+ Type: |Dictionary|
+ Default: `{}`
+
+ This variable can be changed to customize ccls initialization options.
+ For example: >
+
+ let g:ale_c_ccls_init_options = {
+ \ 'cacheDirectory': '/tmp/ccls',
+ \ 'cacheFormat': 'binary',
+ \ 'diagnostics': {
+ \ 'onOpen': 0,
+ \ 'opChange': 1000,
+ \ },
+ \}
+<
+ For all available options and explanations, visit
+ https://github.com/MaskRay/ccls/wiki/Customization#initialization-options.
+
+
+===============================================================================
+clangcheck *ale-c-clangcheck*
+
+`clang-check` will be run only when files are saved to disk, so that
+`compile_commands.json` files can be used. It is recommended to use this
+linter in combination with `compile_commands.json` files.
+Therefore, `clang-check` linter reads the options |g:ale_c_build_dir| and
+|g:ale_c_build_dir_names|. Also, setting |g:ale_c_build_dir| actually
+overrides |g:ale_c_build_dir_names|.
+
+
+-------------------------------------------------------------------------------
+Options
+ *ale-options.c_clangcheck_executable*
+ *g:ale_c_clangcheck_executable*
+ *b:ale_c_clangcheck_executable*
+c_clangcheck_executable
+g:ale_c_clangcheck_executable
+ Type: |String|
+ Default: `'clang-check'`
+
+ This variable can be changed to use a different executable for clangcheck.
+
+ *ale-options.c_clangcheck_options*
+ *g:ale_c_clangcheck_options*
+ *b:ale_c_clangcheck_options*
+c_clangcheck_options
+g:ale_c_clangcheck_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify flags given to clang-check.
+
+ This variable should not be set to point to build subdirectory with
+ `-p path/to/build` option, as it is handled by the |g:ale_c_build_dir|
+ option.
+
+
+===============================================================================
+clangd *ale-c-clangd*
+
+ *ale-options.c_clangd_executable*
+ *g:ale_c_clangd_executable*
+ *b:ale_c_clangd_executable*
+c_clangd_executable
+g:ale_c_clangd_executable
+ Type: |String|
+ Default: `'clangd'`
+
+ This variable can be changed to use a different executable for clangd.
+
+ *ale-options.c_clangd_options*
+ *g:ale_c_clangd_options*
+ *b:ale_c_clangd_options*
+c_clangd_options
+g:ale_c_clangd_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify flags given to clangd.
+
+
+===============================================================================
+clang-format *ale-c-clangformat*
+
+ *ale-options.c_clangformat_executable*
+ *g:ale_c_clangformat_executable*
+ *b:ale_c_clangformat_executable*
+c_clangformat_executable
+g:ale_c_clangformat_executable
+ Type: |String|
+ Default: `'clang-format'`
+
+ This variable can be changed to use a different executable for clang-format.
+
+ *ale-options.c_clangformat_options*
+ *g:ale_c_clangformat_options*
+ *b:ale_c_clangformat_options*
+c_clangformat_options
+g:ale_c_clangformat_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify flags given to clang-format.
+
+ *ale-options.c_clangformat_style_option*
+ *g:ale_c_clangformat_style_option*
+ *b:ale_c_clangformat_style_option*
+c_clangformat_style_option
+g:ale_c_clangformat_style_option
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify only the style flag given to
+ clang-format. The contents of the variable are passed directly to the -style
+ flag of clang-format.
+
+ Example: >
+ let g:ale_c_clangformat_style_option = {
+ \ 'BasedOnStyle': 'Microsoft',
+ \ 'ColumnLimit': 80,
+ \ 'AllowShortBlocksOnASingleLine': 'Always',
+ \ 'AllowShortFunctionsOnASingleLine': 'Inline',
+ \}
+<
+ If you set this variable, ensure you don't modify -style in
+ |g:ale_c_clangformat_options|, as this will cause clang-format to error.
+
+ *ale-options.c_clangformat_use_local_file*
+ *g:ale_c_clangformat_use_local_file*
+ *b:ale_c_clangformat_use_local_file*
+c_clangformat_use_local_file
+g:ale_c_clangformat_use_local_file
+ Type: |Number|
+ Default: `0`
+
+ This variable can be changed to modify whether to use a local .clang-format
+ file. If the file is found, the flag '-style=file' is passed to clang-format
+ and any options configured via |g:ale_c_clangformat_style_option| are not
+ passed.
+
+ If this option is enabled but no .clang-format file is found, default back to
+ |g:ale_c_clangformat_style_option|, if it set.
+
+ If you set this variable, ensure you don't modify -style in
+ |g:ale_c_clangformat_options|, as this will cause clang-format to error.
+
+
+===============================================================================
+clangtidy *ale-c-clangtidy*
+
+`clang-tidy` will be run only when files are saved to disk, so that
+`compile_commands.json` files can be used. It is recommended to use this
+linter in combination with `compile_commands.json` files.
+Therefore, `clang-tidy` linter reads the options |g:ale_c_build_dir| and
+|g:ale_c_build_dir_names|. Also, setting |g:ale_c_build_dir| actually
+overrides |g:ale_c_build_dir_names|.
+
+
+-------------------------------------------------------------------------------
+Options
+ *ale-options.c_clangtidy_checks*
+ *g:ale_c_clangtidy_checks*
+ *b:ale_c_clangtidy_checks*
+c_clangtidy_checks
+g:ale_c_clangtidy_checks
+ Type: |List|
+ Default: `[]`
+
+ The checks to enable for clang-tidy with the `-checks` argument.
+
+ All options will be joined with commas, and escaped appropriately for
+ the shell. The `-checks` flag can be removed entirely by setting this
+ option to an empty List.
+
+ Not all of clangtidy checks are applicable for C. You should consult the
+ clang documentation for an up-to-date list of compatible checks:
+ http://clang.llvm.org/extra/clang-tidy/checks/list.html
+
+ *ale-options.c_clangtidy_executable*
+ *g:ale_c_clangtidy_executable*
+ *b:ale_c_clangtidy_executable*
+c_clangtidy_executable
+g:ale_c_clangtidy_executable
+ Type: |String|
+ Default: `'clang-tidy'`
+
+ This variable can be changed to use a different executable for clangtidy.
+
+ *ale-options.c_clangtidy_options*
+ *g:ale_c_clangtidy_options*
+ *b:ale_c_clangtidy_options*
+c_clangtidy_options
+g:ale_c_clangtidy_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify compiler flags given to clang-tidy.
+
+ - Setting this variable to a non-empty string,
+ - and working in a buffer where no compilation database is found using
+ |g:ale_c_build_dir_names| or |g:ale_c_build_dir|,
+ will cause the `--` argument to be passed to `clang-tidy`, which will mean
+ that detection of `compile_commands.json` files for compile command
+ databases will be disabled.
+ Only set this option if you want to control compiler flags
+ entirely manually, and no `compile_commands.json` file is in one
+ of the |g:ale_c_build_dir_names| directories of the project tree.
+
+ *ale-options.c_clangtidy_extra_options*
+ *g:ale_c_clangtidy_extra_options*
+ *b:ale_c_clangtidy_extra_options*
+c_clangtidy_extra_options
+g:ale_c_clangtidy_extra_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be changed to modify flags given to clang-tidy.
+
+ *ale-options.c_clangtidy_fix_errors*
+ *g:ale_c_clangtidy_fix_errors*
+ *b:ale_c_clangtidy_fix_errors*
+c_clangtidy_fix_errors
+g:ale_c_clangtidy_fix_errors
+ Type: |Number|
+ Default: `1`
+
+ This variable can be changed to disable the `-fix-errors` option for the
+ |clangtidy| fixer.
+
+
+===============================================================================
+cppcheck *ale-c-cppcheck*
+
+ *ale-options.c_cppcheck_executable*
+ *g:ale_c_cppcheck_executable*
+ *b:ale_c_cppcheck_executable*
+c_cppcheck_executable
+g:ale_c_cppcheck_executable
+ Type: |String|
+ Default: `'cppcheck'`
+
+ This variable can be changed to use a different executable for cppcheck.
+
+ *ale-options.c_cppcheck_options*
+ *g:ale_c_cppcheck_options*
+ *b:ale_c_cppcheck_options*
+c_cppcheck_options
+g:ale_c_cppcheck_options
+ Type: |String|
+ Default: `'--enable=style'`
+
+ This variable can be changed to modify flags given to cppcheck.
+
+
+===============================================================================
+cquery *ale-c-cquery*
+
+ *ale-options.c_cquery_executable*
+ *g:ale_c_cquery_executable*
+ *b:ale_c_cquery_executable*
+c_cquery_executable
+g:ale_c_cquery_executable
+ Type: |String|
+ Default: `'cquery'`
+
+ This variable can be changed to use a different executable for cquery.
+
+ *ale-options.c_cquery_cache_directory*
+ *g:ale_c_cquery_cache_directory*
+ *b:ale_c_cquery_cache_directory*
+c_cquery_cache_directory
+g:ale_c_cquery_cache_directory
+ Type: |String|
+ Default: `'~/.cache/cquery'`
+
+ This variable can be changed to decide which directory cquery uses for its
+ cache.
+
+
+===============================================================================
+cspell *ale-c-cspell*
+
+See |ale-cspell-options|
+
+
+===============================================================================
+flawfinder *ale-c-flawfinder*
+
+ *ale-options.c_flawfinder_executable*
+ *g:ale_c_flawfinder_executable*
+ *b:ale_c_flawfinder_executable*
+c_flawfinder_executable
+g:ale_c_flawfinder_executable
+ Type: |String|
+ Default: `'flawfinder'`
+
+ This variable can be changed to use a different executable for flawfinder.
+
+ *ale-options.c_flawfinder_minlevel*
+ *g:ale_c_flawfinder_minlevel*
+ *b:ale_c_flawfinder_minlevel*
+c_flawfinder_minlevel
+g:ale_c_flawfinder_minlevel
+ Type: |Number|
+ Default: `1`
+
+ This variable can be changed to ignore risks under the given risk threshold.
+
+ *ale-options.c_flawfinder_options*
+ *g:ale_c_flawfinder_options*
+ *b:ale-c-flawfinder*
+c_flawfinder_options
+g:ale_c_flawfinder_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be used to pass extra options into the flawfinder command.
+
+ *ale-options.c_flawfinder_error_severity*
+ *g:ale_c_flawfinder_error_severity*
+ *b:ale_c_flawfinder_error_severity*
+c_flawfinder_error_severity
+g:ale_c_flawfinder_error_severity
+ Type: |Number|
+ Default: `6`
+
+ This variable can be changed to set the minimum severity to be treated as an
+ error. This setting also applies to flawfinder for c++.
+
+
+===============================================================================
+uncrustify *ale-c-uncrustify*
+
+ *ale-options.c_uncrustify_executable*
+ *g:ale_c_uncrustify_executable*
+ *b:ale_c_uncrustify_executable*
+c_uncrustify_executable
+g:ale_c_uncrustify_executable
+ Type: |String|
+ Default: `'uncrustify'`
+
+ This variable can be changed to use a different executable for uncrustify.
+
+ *ale-options.c_uncrustify_options*
+ *g:ale_c_uncrustify_options*
+ *b:ale_c_uncrustify_options*
+c_uncrustify_options
+g:ale_c_uncrustify_options
+ Type: |String|
+ Default: `''`
+
+ This variable can be change to modify flags given to uncrustify.
+
+
+===============================================================================
+ vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl: