mirror of
https://github.com/dense-analysis/ale.git
synced 2026-04-27 09:41:25 +08:00
Fix FindCompileCommands to handle absolute paths in c_build_dir_names (#5096)
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
CI / build_image (push) Has been cancelled
CI / test_ale (--linters-only) (push) Has been cancelled
CI / test_ale (--lua-only) (push) Has been cancelled
CI / test_ale (--neovim-07-only) (push) Has been cancelled
CI / test_ale (--neovim-08-only) (push) Has been cancelled
CI / test_ale (--vim-80-only) (push) Has been cancelled
CI / test_ale (--vim-90-only) (push) Has been cancelled
* Initial plan * Fix FindCompileCommands to handle absolute paths in c_build_dir_names Use ale#path#GetAbsPath to resolve build directory paths, which correctly handles both absolute and relative paths. When the dirname is absolute, derive the project root from the parent of the build directory. Co-authored-by: w0rp <3518142+w0rp@users.noreply.github.com> * Improve comment clarity in FindCompileCommands Co-authored-by: w0rp <3518142+w0rp@users.noreply.github.com> * Add defensive ale#Set for c_build_dir_names in FindCompileCommands Mirror the existing s:CanParseMakefile pattern to ensure the g:ale_c_build_dir_names variable always exists when ale#Var is called, even if test Save/Restore cycles delete it. Co-authored-by: w0rp <3518142+w0rp@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: w0rp <3518142+w0rp@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
Before:
|
||||
Save g:ale_c_build_dir_names
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test')
|
||||
|
||||
After:
|
||||
Restore
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
|
||||
Execute(FindCompileCommands should find compile_commands.json with relative build dir names):
|
||||
call ale#test#SetFilename('test-files/c/json_project/subdir/dummy')
|
||||
|
||||
let g:ale_c_build_dir_names = ['build']
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ ale#path#Simplify(g:dir . '/test-files/c/json_project'),
|
||||
\ ale#path#Simplify(g:dir . '/test-files/c/json_project/build/compile_commands.json'),
|
||||
\ ],
|
||||
\ ale#c#FindCompileCommands(bufnr(''))
|
||||
|
||||
Execute(FindCompileCommands should find compile_commands.json with absolute build dir names):
|
||||
call ale#test#SetFilename('test-files/c/json_project/subdir/dummy')
|
||||
|
||||
let g:ale_c_build_dir_names = [ale#path#Simplify(g:dir . '/test-files/c/json_project/build')]
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ ale#path#Simplify(g:dir . '/test-files/c/json_project'),
|
||||
\ ale#path#Simplify(g:dir . '/test-files/c/json_project/build/compile_commands.json'),
|
||||
\ ],
|
||||
\ ale#c#FindCompileCommands(bufnr(''))
|
||||
Reference in New Issue
Block a user