summaryrefslogtreecommitdiff
path: root/ale_linters/c
AgeCommit message (Collapse)Author
2020-08-28Close #3325 - Apply new formatting where possiblew0rp
2020-08-20#3299 Merge gcc and clang into a cc linterw0rp
Users can easily be confused when they set some options for a C or C++ compiler, and another compiler is run with different options, which still reports errors. To remedy this, the existing `gcc` and `clang` linters have been replaced with a `cc` linter that will run either compiler. This is a breaking change for ALE v3.0.0.
2020-08-19Merge pull request #3056 from ts826848/remove-ale-std-if-already-in-GetCFlagsw0rp
[WIP] Avoid overriding parsed C/C++ -std=* flag
2020-08-06fix cppcheck for 1.89+, and add column support (#3030)tsjordan-eng
* fix cppcheck for 1.89+, and add column support In cppcheck 1.89 the output changed to be more like GCC. This commit forces any version of cppcheck to output in that same format. This also allows for ALE to pick up the linter's column information * Add parameters to tests. Vader passes. * Fix c cppcheck for v1.89
2020-04-18ccls: Detect build dir and set compilationDatabaseDirectoryTomas Janousek
Fixes #2621
2020-03-17Avoid overriding parsed C/C++ -std=* flagAlex Wang
ALE appends flags from {c,cpp}_{clang,gcc}_options after those found by parsing compile_commands.json or Makefile output. If -std=* flags are present in both the ALE flags and parsed flags, the last one present (i.e., ALE's -std=* flag) will determine the mode the compiler works in. This can result in errors showing up in vim but not in the actual build or vice-versa. For example, say you have foo.cpp: #include <type_traits> int main() { return std::is_same_v<float, int>; } If cpp_clang_options contains -std=c++17 and -std=c++14 is parsed from compile_commands.json, then ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++14 -std=c++17 - < foo.cpp This would result in no errors showing up in Vim, but the actual build would fail with: <stdin>:3:14: error: no template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? return std::is_same_v<float, int>; ~~~~~^~~~~~~~~ is_same /Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/type_traits:872:61: note: 'is_same' declared here template <class _Tp, class _Up> struct _LIBCPP_TEMPLATE_VIS is_same : public false_type {}; ^ <stdin>:3:35: error: expected '(' for function-style cast or type construction return std::is_same_v<float, int>; ~~~~~~~~~~~~~~~~~~~~~~~~~~^ 2 errors generated. as the actual build would not have the -std=c++17 flag added by ALE. If cpp_clang_options contains -std=c++14 and -std=c++17 is parsed from compile_commands.json, then the opposite problem would occur. ALE would end up running something like: clang++ -S -x c++ -fsyntax-only -std=c++17 -std=c++14 - < foo.cpp and would show an error on line 3 of foo.cpp: [clang] No template named 'is_same_v' in namespace 'std'; did you mean 'is_same'? (fix available) The actual build, on the other hand, would succeed without any complaints. Removing -std=* from ALE's flags if it is already present in the parsed flags ensures that the wrong -std=* flag is not used. An alternative would have been to switch the order in which parsed flags and ALE flags were concatenated when producing the command to execute, but that could prevent a user from intentionally using ALE's flags to override some other flags, e.g. -W* flags to enable/disable warnings in a project whose flags are not under the developer's control. -std=* flags are also present in cuda/nvcc.vim, objc/clang.vim, objcpp/clang.vim, and vhdl/ghdl.vim, but none of those linters appear to parse compile_commands.json or `make` output.
2019-11-07Revert "Add definition of c/clangd's language as C (#2791)"w0rp
This reverts commit f4070f6c43b3cb2e7463d8426a68d5a726991288.
2019-10-17Merge remote-tracking branch 'murfalo/clangd-compile-commands'w0rp
2019-10-17Add definition of c/clangd's language as C (#2791)João Borges
* Add definition of c/clangd's language as C * Update tests for clangd to be called with '-x c' * Change to use single quotes instead of double quotes
2019-10-09Added tests for clangd compile commands dectectionMurfalo
2019-10-09Updated ale_linters/c/clangd.vim to match ale_linters/cpp/clangd.vimMurfalo
2019-10-06Add tests for clangtidy with MakefileGreg Anders
2019-10-06Use Makefile output with clang-tidy when usefulGreg Anders
In the case where neither a build directory nor a compile_commands.json file is found, use the output of `make -n` to provide options to clang-tidy.
2019-06-08Add additional option setting for clangtidy linterJonathan Vander Mey
The existing option setting handles setting additional compile flags to pass to clang-tidy. The new option setting added here allows setting additional clang-tidy specific flags to be passed as well. Fixes #2324
2019-06-03Fix #1279 - Run cppcheck differently when modifiedChristoph Koehler
cppcheck is now run without the --project option and from the buffer's directory instead when the buffer has been modified. Saving the buffer will get results by linting the project instead.
2019-05-20Close #2359 - Find compile_commands.json in build dirs for cppcheckw0rp
2019-05-20Fix #2421 - Use compile_commands.json in build dirs to find rootsw0rp
2019-05-20Fix #2512 - Use -o /dev/null for gcc lintingw0rp
2019-04-07#2132 - Replace command_chain and chain_with with ale#command#Runw0rp
2019-02-22#2132 - Replace all uses of foo_callback with foow0rp
2019-02-06Update syntax checkingw0rp
* Line continuation characters should be on the same lines. * .vim file line indentation should be a multiple of 4.
2018-10-30Do not enable all clang-tidy checks by defaultAndreas Hollmann
2018-09-28Move ccls functions to autoload/ale/handlerYe Jingchen
Tests are kept as-is.
2018-09-26Add ccls testsYe Jingchen
2018-09-26Add ccls support for C/C++/ObjCYe Jingchen
2018-09-04Improve ALE project style checkingw0rp
* The project style linter now runs while you type. * Now the scripts for checking the project require blank lines. * Many style issues have been found and fixed.
2018-08-24Add clazy as cpp linterfenuks
2018-08-09Add blank lines to conform the coding standardskodemeister
2018-08-07Use .cquery file to detect the project rootkodemeister
2018-08-02Simplify the code for most linters and tests with closuresw0rp
2018-07-30Indicate that a C compiler failed due to problems in a header filew0rp
2018-07-29Add support for parsing compile_commands.json files for C compilersw0rp
2018-07-25Providing cquery support for C filesjtalowell
2018-07-22Add Clangd language server support for CAndrey Melentyev
2018-03-21Added additional unit tests + adapted review comments #1167roel0
2018-03-20* Shell commands should by called async with the help of a command chainroel0
* The makefile parser unit test should only test the cflag parser itself #1167
2018-03-20Clang parser shoud fallback on old method if parsing fails #1167roel0
2018-03-20Added some unit tests and fixed some linting errors for automatic makefile ↵roel0
parsing in C #1167
2018-03-19Automatically determine build flags by parsing 'make -n' output #1167roel0
2018-03-10Handle flawfinder severity level (#1400)Christian-Gibbons
* Handle flawfinder severity level * Reverted code allowing Flawfinder to piggyback off of gcc's format handler * Gave Flawfinder its own format handler and made requested changes.
2018-02-25New linter: Flawfinder (#1361)Christian-Gibbons
* Flawfinder support added for C and C++ A minor modification to gcc handler was made to support flawfinder's single-line output format that does not have a space following the colon denoting the warning level. gcc handler still passes its Vader tests after this modification. * Documentation fixes * Revert documentation regression * Added Flawfinder to table of contents * Removed trailing whitespace * Follow ALE conventions better Added additional documentation and Vader tests
2017-08-06Fixed the comments, left only the doc URLAndrej Radovic
2017-08-05Added clang-tidy for C, too.Andrej Radovic
A limited number of clang-tidy checks can be used with C, too. I pretty much copied and refactored the C++ clang-tidy linter, and added some documentation about C-compatible checks.
2017-07-17Fix an executable_callback typow0rp
2017-07-16#711 - Make the gcc executables configurablew0rp
2017-07-16#711 - Make the cppcheck executables configurablew0rp
2017-07-16#711 - Make the clang executables configurablew0rp
2017-06-25Move ale#handlers#c functions into ale#cw0rp
2017-05-31Fix #557 - Detect C project roots and include root directories with headers, ↵w0rp
or include directories
2017-05-12#549 Temporarily revert shell escaping changes, just for Windowsw0rp