I am using neovim with the ALE plugin for linting.
I would like to set the g:ale_c_cc_options variable differently depending on if ALE finds a compile_commands.json file to use. If it does find the file, I'd like it to run g:ale_c_cc_options = '', that way it only uses the flags defined in the file. Then, if it cannot find the file, I'd like it to use g:ale_c_cc_option = '-ansi -pedantic -Wall' as a default option.
Is there anyway to check if ALE succeeds in finding a compile_commands.json file, using vimscript?
Something akin to this, possibly?
if g:ale_found_compile_commands_file
let g:ale_c_cc_options = ''
else
let g:ale_c_cc_options = '-ansi -pedantic -Wall'
endif
I'd checked the :help ale-c-options manual page, and it had mentioned g:ale_c_parse_compile_commands, to enable trying to find a compile_commands.json file, but I didn't see any way to check if it succeeds or not?
Went through the source code for ALE, found that they were using the
ale#c#FindCompileCommandsfunction to to get thecompile_commands.jsonfile. The function returns['','']if it cannot find the file, so if we check the return we can tell if ALE found the file or not.An example implementation using the function may look similar to this