我使用neovim与ALE插件的linting。
我想根据ALE是否找到要使用的compile_commands.json
文件来不同地设置g:ale_c_cc_options
变量。如果它找到了该文件,我想让它运行g:ale_c_cc_options = ''
,这样它就只使用文件中定义的标志。然后,如果它找不到该文件,我想让它使用g:ale_c_cc_option = '-ansi -pedantic -Wall'
作为默认选项。
是否有任何方法可以检查ALE是否使用vimscript成功找到compile_commands.json
文件?
类似的东西,可能吗?
if g:ale_found_compile_commands_file
let g:ale_c_cc_options = ''
else
let g:ale_c_cc_options = '-ansi -pedantic -Wall'
endif
字符串
我检查了:help ale-c-options
手册页,它提到了g:ale_c_parse_compile_commands
,以便尝试查找compile_commands.json
文件,但我没有看到任何方法来检查它是否成功?
1条答案
按热度按时间mwyxok5s1#
浏览ALE的源代码,发现他们使用
ale#c#FindCompileCommands
函数来获取compile_commands.json
文件。如果找不到文件,该函数将返回['','']
,所以如果我们检查返回值,我们可以判断ALE是否找到了文件。使用该函数的示例实现可能类似于以下内容
字符串