diff options
author | w0rp <devw0rp@gmail.com> | 2016-10-17 21:14:34 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2016-10-17 21:14:34 +0100 |
commit | 654a1724730e181c80cd262a781055c5a9f0ca05 (patch) | |
tree | 851119a3a64c9ae82cd95b3725f914c7271ec702 | |
parent | 7c2a16e149a0dbcdfcac6ee441474caaad1ef3b6 (diff) | |
download | ale-654a1724730e181c80cd262a781055c5a9f0ca05.zip |
Make the nearest file search result absolute paths, and add tests to cover it.
-rw-r--r-- | autoload/ale/util.vim | 10 | ||||
-rw-r--r-- | test/test_nearest_file_search.vader | 11 | ||||
-rw-r--r-- | test/top/example.ini | 0 | ||||
-rw-r--r-- | test/top/middle/bottom/dummy.txt | 0 |
4 files changed, 20 insertions, 1 deletions
diff --git a/autoload/ale/util.vim b/autoload/ale/util.vim index c218f090..82bed85a 100644 --- a/autoload/ale/util.vim +++ b/autoload/ale/util.vim @@ -33,7 +33,15 @@ endfunction " Given a buffer and a filename, find the nearest file by searching upwards " through the paths relative to the given buffer. function! ale#util#FindNearestFile(buffer, filename) abort - return findfile(a:filename, fnamemodify(bufname(a:buffer), ':p') . ';') + let l:buffer_filename = fnamemodify(bufname(a:buffer), ':p') + + let l:relative_path = findfile(a:filename, l:buffer_filename . ';') + + if !empty(l:relative_path) + return fnamemodify(l:relative_path, ':p') + endif + + return '' endfunction function! ale#util#GetFunction(string_or_ref) abort diff --git a/test/test_nearest_file_search.vader b/test/test_nearest_file_search.vader new file mode 100644 index 00000000..c59bfce2 --- /dev/null +++ b/test/test_nearest_file_search.vader @@ -0,0 +1,11 @@ +Execute(Open a file some directory down): + silent! cd /testplugin/test + :e! top/middle/bottom/dummy.txt + +Then(We should be able to find a configuration file further up): + AssertEqual expand('%:p:h:h:h:h') . '/top/example.ini', ale#util#FindNearestFile(bufnr('%'), 'example.ini') + +Execute(Do nothing): + +Then(We shouldn't find anything for files which don't match): + AssertEqual '', ale#util#FindNearestFile(bufnr('%'), 'cantfindthis') diff --git a/test/top/example.ini b/test/top/example.ini new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/top/example.ini diff --git a/test/top/middle/bottom/dummy.txt b/test/top/middle/bottom/dummy.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/top/middle/bottom/dummy.txt |