diff options
author | w0rp <devw0rp@gmail.com> | 2017-06-25 21:33:15 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-06-25 21:33:15 +0100 |
commit | 3828ea5b2655a03fe8de0332797386f42ae3b9ac (patch) | |
tree | decf0cc38ea64ea7964ef8d3acbbc4839216b7d1 /autoload | |
parent | 8b557f346c5b528e1a309b17a5baf2d014c7276e (diff) | |
download | ale-3828ea5b2655a03fe8de0332797386f42ae3b9ac.zip |
Detect .git directories for finding the project root for C projects
Diffstat (limited to 'autoload')
-rw-r--r-- | autoload/ale/c.vim | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/autoload/ale/c.vim b/autoload/ale/c.vim index 17d72605..4fe2f547 100644 --- a/autoload/ale/c.vim +++ b/autoload/ale/c.vim @@ -2,11 +2,18 @@ " Description: Functions for integrating with C-family linters. function! ale#c#FindProjectRoot(buffer) abort - for l:project_filename in ['configure', 'Makefile', 'CMakeLists.txt'] + for l:project_filename in ['.git/HEAD', 'configure', 'Makefile', 'CMakeLists.txt'] let l:full_path = ale#path#FindNearestFile(a:buffer, l:project_filename) if !empty(l:full_path) - return fnamemodify(l:full_path, ':h') + let l:path = fnamemodify(l:full_path, ':h') + + " Correct .git path detection. + if fnamemodify(l:path, ':t') ==# '.git' + let l:path = fnamemodify(l:path, ':h') + endif + + return l:path endif endfor |