vim-clang-format
vim-clang-format copied to clipboard
Fixed a bug caused by paths with spaces in Windows.
If I specify g:clang_format='"C:/Program Files (x86)/LLVM/bin/clang-format.exe"' (For example) then the call to executable() fails because the executable function gets confused by the quotes, which are necessary to escape the spaces. This patch removes those quotes before testing if it is executable.
I think quoting command name is not good. Does escaping white spaces such as some\ dir work well?
Unfortunatelly, escaping whitespace with \ does not work.
I noticed that this is a problem when the command is run. I'll commit a fix for it tomorrow. Could you try it before merging this PR?
Sure, I'll test it. My clang-command is '"C:/Program Files (x86)/LLVM/bin/clang-format.exe"' I investigated this issue and found the following:
- Quoting the path is necessary for system() to work.
- Quoting makes the call to executable() fail.
- If I don't quote the path, the failures are inversed. So, the solution I found was to remove the quotes before calling executable.
@nicber
Please try latest with below config (removing quotes)
let g:clang_format#command = 'C:/Program Files (x86)/LLVM/bin/clang-format.exe'
Error detected while processing function clang_format#replace[2]..<SNR>45_verify_command[1]..clang_format#is_invalid:
line 10:
E684: list index out of range: 0
E15: Invalid expression: v[0] < 3 || (v[0] == 3 && v[1] < 4)
Error detected while processing function clang_format#replace[42]..<SNR>45_error_message:
line 1:
clang-format has failed to format.
I get this error with the latest commit.
Thank you for the report. It looks to resolve the quoting problem on Windows :smile: And it seems to fail to check clang version. I'll fix version check more strict. Could you show the output of clang-format.exe --version?
Could you try the latest? (and please let me know the output of clang-format --version to fix skipping version check)
Sorry for the delay I get this error with latest
Error detected while processing function clang_format#replace[42]..<SNR>45_error_message:
line 1:
clang-format has failed to format.
This is the result of clang-format --version
C:\Users\nicol>"C:/Program Files (x86)/LLVM/bin/clang-format.exe" --version
clang-format version 3.9.0 (branches/release_39)
Thank you for confirmation. Hmm... I think clang-format command failed by some reason. I'll investigate it on my Windows machine (I actually don't have Windows machine for development...)
Please ensure that your code can be formatted correctly from command line.