Merge pull request #1275 from zsh-users/support_cppcheck_reporter
Support cppcheck-htmlreport
This commit is contained in:
commit
4b23ecd62a
169
src/_cppcheck
169
src/_cppcheck
|
|
@ -1,4 +1,4 @@
|
||||||
#compdef cppcheck
|
#compdef cppcheck cppcheck-htmlreport
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Copyright (c) 2019 Github zsh-users - https://github.com/zsh-users
|
# Copyright (c) 2019 Github zsh-users - https://github.com/zsh-users
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
|
|
@ -48,83 +48,100 @@ _cppcheck_files() {
|
||||||
_path_files -/ -g "*.(c|cpp|cxx|h|hpp|C)"
|
_path_files -/ -g "*.(c|cpp|cxx|h|hpp|C)"
|
||||||
}
|
}
|
||||||
|
|
||||||
_cppcheck() {
|
_cppcheck_author_information() {
|
||||||
local -a check_ids=(
|
local -a info=(name email date)
|
||||||
all warning style performance portability information unusedFunction missingInclude
|
_values -s ',' 'info' $info
|
||||||
)
|
|
||||||
local -a platforms=(
|
|
||||||
unix32 unix64 win32A win32W win64 avr8 elbrus-e1cp pic8 pic8-enhanced pic16 mips32 native unspecified
|
|
||||||
)
|
|
||||||
local -a coding_standards=(
|
|
||||||
normal autosar cert-c-2016 cert-cpp-2016 misra-c-2012 misra-c-2023 misra-c-2025
|
|
||||||
misra-cpp-2008 misra-cpp-2023
|
|
||||||
)
|
|
||||||
|
|
||||||
_arguments \
|
|
||||||
"--addon=[Execute addon]" \
|
|
||||||
"--addon-python=[Specify the python interpreter]: :_files" \
|
|
||||||
"--cppcheck-build-dir=[Analysis output directory]:directory:_files -/" \
|
|
||||||
"--check-config[Check cppcheck configuration]" \
|
|
||||||
"--check-level=[Configure how much valueflow analysis you want]:level:(reduced normal exhaustive)" \
|
|
||||||
"--check-library[Show information when library files have incomplete info]" \
|
|
||||||
"--checkers-report=[Write a report of all the active checkers to the given file]:file:_files" \
|
|
||||||
"--clang=[Use clang parser instead of the builtin Cppcheck parser]: :_files" \
|
|
||||||
"--config-exclude=[Path to be excluded from configuration checking]:directory:_files -/" \
|
|
||||||
"--config-exclude-files=[A file that contains a list of config-excludes]:file:_files" \
|
|
||||||
"--doc[Print a list of all available checks]" \
|
|
||||||
'*--disable=[Disable individual checks]:id:($check_ids)' \
|
|
||||||
"--dump[Dump xml data for each translation unit]" \
|
|
||||||
"*-D[Define preprocessor symbol]:symbol" \
|
|
||||||
"-E[Print preprocessor output on stdout and don't do any further processing]" \
|
|
||||||
'--enable=[Enable additional checks]:id:($check_ids)' \
|
|
||||||
"--error-exitcode=[Integer to return if errors are found]" \
|
|
||||||
"--errorlist[Print a list of all the error messages in XML format]" \
|
|
||||||
"--exitcode-suppressions=[Used when certain messages should be displayed but should not cause a non-zero exitcode]:_files" \
|
|
||||||
"*--file-filter=[Analyze only those files matching the given filter str]:filter" \
|
|
||||||
"--file-list=[Specify the files to check in a text file]:file:_files" \
|
|
||||||
"(-f --force)"{-f,--force}"[Force checking of all configurations in files]" \
|
|
||||||
"(--fsigned-char --funsigned-char)--fsigned-char[Treat char type as signed]" \
|
|
||||||
"(--fsigned-char --funsigned-char)--funsigned-char[Treat char type as unsigned]" \
|
|
||||||
"(- 1 *)"{-h,--help}"[Print help]" \
|
|
||||||
"*-I[A file that contains a list of config-excludes]:directory:_files -/" \
|
|
||||||
"--include-file=[Specify directory paths to search for included header files in a text file]:file:_files" \
|
|
||||||
"--include=[Force inclusion of a file before the checked file]:file:_files" \
|
|
||||||
"-i[Give a source file or source file directory to exclude from the check]:directory or file:_files" \
|
|
||||||
"--inconclusive[Report even though the analysis is inconclusive]" \
|
|
||||||
"--inline-suppr[Enable inline suppressions]" \
|
|
||||||
"-j[Number of threads to do the checking simultaneously]::num" \
|
|
||||||
"-l[No new threads should be started if the load average is exceeds this value]::load_avg" \
|
|
||||||
{-x,--language=}"[Forces cppcheck to check all files as the given language]:language:(c c++)" \
|
|
||||||
"--library=[Load config file that contains information about types and functions]:config:_files" \
|
|
||||||
"--max-configs=[Maximum number of configurations to check in a file]" \
|
|
||||||
"--max-ctu-depth=[Maximum depth in whole program analysis]:num" \
|
|
||||||
"--output-file=[File to save results]:file:_files" \
|
|
||||||
"--output-format=[Specify the output format]:format:(text sarif xml xmlv2 xmlv3)" \
|
|
||||||
'--platform=[Specified platform specific types and sizes]:platform:($platforms)' \
|
|
||||||
"--plist-output=[Generate Clang-plist output files in folder]:file:_files" \
|
|
||||||
"--project=[Run Cppcheck on project]:file:_files" \
|
|
||||||
"--project-configuration=[Limit the configuration cppcheck should check]:configuration" \
|
|
||||||
"(-q --quiet)"{-q,--quiet}"[Do not show progress reports]" \
|
|
||||||
{-rp,--relative-paths}"=[Use relative paths in output (separated with ;)]:file:_files" \
|
|
||||||
"--report-progress[Report progress messages while checking a file]" \
|
|
||||||
'--report-type=[Add guideline and classification fields for specified coding standard]:standard:($coding_standards)' \
|
|
||||||
"--rule=[Match regular expression]:rule" \
|
|
||||||
"--rule-file=[Use given rule file]:file:_files" \
|
|
||||||
"--showtime=[show timing information]:type:(none file file-total summary top5_file top5_summary)" \
|
|
||||||
"--std=[Set standard]:std:(c89 c99 c11 c++03 c++11 c++14 c++17 c++20)" \
|
|
||||||
"--suppress=[Suppress warnings (format: \[error id\]:\[filename\]:\[line\])]" \
|
|
||||||
"--suppressions-list=[Suppress warnings listed in the file]:file:_files" \
|
|
||||||
"--suppress-xml=[Suppress warnings listed in a xml file]:file:_files" \
|
|
||||||
"--template=[Format the error messages]:text" \
|
|
||||||
"--template-location=[Format the error message location]:text" \
|
|
||||||
"*-U[Undefine preprocessor symbol]:symbol" \
|
|
||||||
"(-v --verbose)"{-v,--verbose}"[Output more detailed error information]" \
|
|
||||||
"--version[Print out version number]" \
|
|
||||||
"--xml[Write results in xml format to stderr]" \
|
|
||||||
"*: :_cppcheck_files"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_cppcheck "$@"
|
local -a check_ids=(
|
||||||
|
all warning style performance portability information unusedFunction missingInclude
|
||||||
|
)
|
||||||
|
local -a platforms=(
|
||||||
|
unix32 unix64 win32A win32W win64 avr8 elbrus-e1cp pic8 pic8-enhanced pic16 mips32 native unspecified
|
||||||
|
)
|
||||||
|
local -a coding_standards=(
|
||||||
|
normal autosar cert-c-2016 cert-cpp-2016 misra-c-2012 misra-c-2023 misra-c-2025
|
||||||
|
misra-cpp-2008 misra-cpp-2023
|
||||||
|
)
|
||||||
|
|
||||||
|
case $service in
|
||||||
|
(cppcheck-htmlreport)
|
||||||
|
_arguments \
|
||||||
|
'(- *)'{-h,--help}'[show help message and exit]' \
|
||||||
|
'--title[Title of the project]:title' \
|
||||||
|
'*--file[cppcheck xml output file to read defects from(default stdin)]:file:_files' \
|
||||||
|
'--checkers-report-file[cppcheck checkers report file]:file:_files' \
|
||||||
|
'--report-dir[Directory where the HTML report content is written]:dir:_files -/' \
|
||||||
|
'--source-dir[Base directory where source code files can be found or a URL to a remote]:dir:_files -/' \
|
||||||
|
'--add-author-information[Blame information to include(default "name,email,date")]:info:_cppcheck_author_information' \
|
||||||
|
'--source-encoding[Encoding of source code]:encoding' \
|
||||||
|
'--blame-options[Blame options which you can use to get author and author mail]:options'
|
||||||
|
;;
|
||||||
|
(cppcheck)
|
||||||
|
_arguments \
|
||||||
|
"--addon=[Execute addon]" \
|
||||||
|
"--addon-python=[Specify the python interpreter]: :_files" \
|
||||||
|
"--cppcheck-build-dir=[Analysis output directory]:directory:_files -/" \
|
||||||
|
"--check-config[Check cppcheck configuration]" \
|
||||||
|
"--check-level=[Configure how much valueflow analysis you want]:level:(reduced normal exhaustive)" \
|
||||||
|
"--check-library[Show information when library files have incomplete info]" \
|
||||||
|
"--checkers-report=[Write a report of all the active checkers to the given file]:file:_files" \
|
||||||
|
"--clang=[Use clang parser instead of the builtin Cppcheck parser]: :_files" \
|
||||||
|
"--config-exclude=[Path to be excluded from configuration checking]:directory:_files -/" \
|
||||||
|
"--config-exclude-files=[A file that contains a list of config-excludes]:file:_files" \
|
||||||
|
"--doc[Print a list of all available checks]" \
|
||||||
|
'*--disable=[Disable individual checks]:id:($check_ids)' \
|
||||||
|
"--dump[Dump xml data for each translation unit]" \
|
||||||
|
"*-D[Define preprocessor symbol]:symbol" \
|
||||||
|
"-E[Print preprocessor output on stdout and don't do any further processing]" \
|
||||||
|
'--enable=[Enable additional checks]:id:($check_ids)' \
|
||||||
|
"--error-exitcode=[Integer to return if errors are found]" \
|
||||||
|
"--errorlist[Print a list of all the error messages in XML format]" \
|
||||||
|
"--exitcode-suppressions=[Used when certain messages should be displayed but should not cause a non-zero exitcode]:_files" \
|
||||||
|
"*--file-filter=[Analyze only those files matching the given filter str]:filter" \
|
||||||
|
"--file-list=[Specify the files to check in a text file]:file:_files" \
|
||||||
|
"(-f --force)"{-f,--force}"[Force checking of all configurations in files]" \
|
||||||
|
"(--fsigned-char --funsigned-char)--fsigned-char[Treat char type as signed]" \
|
||||||
|
"(--fsigned-char --funsigned-char)--funsigned-char[Treat char type as unsigned]" \
|
||||||
|
"(- 1 *)"{-h,--help}"[Print help]" \
|
||||||
|
"*-I[A file that contains a list of config-excludes]:directory:_files -/" \
|
||||||
|
"--include-file=[Specify directory paths to search for included header files in a text file]:file:_files" \
|
||||||
|
"--include=[Force inclusion of a file before the checked file]:file:_files" \
|
||||||
|
"-i[Give a source file or source file directory to exclude from the check]:directory or file:_files" \
|
||||||
|
"--inconclusive[Report even though the analysis is inconclusive]" \
|
||||||
|
"--inline-suppr[Enable inline suppressions]" \
|
||||||
|
"-j[Number of threads to do the checking simultaneously]::num" \
|
||||||
|
"-l[No new threads should be started if the load average is exceeds this value]::load_avg" \
|
||||||
|
{-x,--language=}"[Forces cppcheck to check all files as the given language]:language:(c c++)" \
|
||||||
|
"--library=[Load config file that contains information about types and functions]:config:_files" \
|
||||||
|
"--max-configs=[Maximum number of configurations to check in a file]" \
|
||||||
|
"--max-ctu-depth=[Maximum depth in whole program analysis]:num" \
|
||||||
|
"--output-file=[File to save results]:file:_files" \
|
||||||
|
"--output-format=[Specify the output format]:format:(text sarif xml xmlv2 xmlv3)" \
|
||||||
|
'--platform=[Specified platform specific types and sizes]:platform:($platforms)' \
|
||||||
|
"--plist-output=[Generate Clang-plist output files in folder]:file:_files" \
|
||||||
|
"--project=[Run Cppcheck on project]:file:_files" \
|
||||||
|
"--project-configuration=[Limit the configuration cppcheck should check]:configuration" \
|
||||||
|
"(-q --quiet)"{-q,--quiet}"[Do not show progress reports]" \
|
||||||
|
{-rp,--relative-paths}"=[Use relative paths in output (separated with ;)]:file:_files" \
|
||||||
|
"--report-progress[Report progress messages while checking a file]" \
|
||||||
|
'--report-type=[Add guideline and classification fields for specified coding standard]:standard:($coding_standards)' \
|
||||||
|
"--rule=[Match regular expression]:rule" \
|
||||||
|
"--rule-file=[Use given rule file]:file:_files" \
|
||||||
|
"--showtime=[show timing information]:type:(none file file-total summary top5_file top5_summary)" \
|
||||||
|
"--std=[Set standard]:std:(c89 c99 c11 c++03 c++11 c++14 c++17 c++20)" \
|
||||||
|
"--suppress=[Suppress warnings (format: \[error id\]:\[filename\]:\[line\])]" \
|
||||||
|
"--suppressions-list=[Suppress warnings listed in the file]:file:_files" \
|
||||||
|
"--suppress-xml=[Suppress warnings listed in a xml file]:file:_files" \
|
||||||
|
"--template=[Format the error messages]:text" \
|
||||||
|
"--template-location=[Format the error message location]:text" \
|
||||||
|
"*-U[Undefine preprocessor symbol]:symbol" \
|
||||||
|
"(-v --verbose)"{-v,--verbose}"[Output more detailed error information]" \
|
||||||
|
"--version[Print out version number]" \
|
||||||
|
"--xml[Write results in xml format to stderr]" \
|
||||||
|
"*: :_cppcheck_files"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# mode: Shell-Script
|
# mode: Shell-Script
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue