summaryrefslogtreecommitdiff
path: root/autoload/ale/path.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/ale/path.vim')
-rw-r--r--autoload/ale/path.vim20
1 files changed, 16 insertions, 4 deletions
diff --git a/autoload/ale/path.vim b/autoload/ale/path.vim
index 30550503..fed95ccd 100644
--- a/autoload/ale/path.vim
+++ b/autoload/ale/path.vim
@@ -24,6 +24,14 @@ function! ale#path#Simplify(path) abort
return substitute(simplify(l:win_path), '^\\\+', '\', 'g') " no-custom-checks
endfunction
+" Simplify a path without a Windows drive letter.
+" This function can be used for checking if paths are equal.
+function! ale#path#RemoveDriveLetter(path) abort
+ return has('win32') && a:path[1:2] is# ':\'
+ \ ? ale#path#Simplify(a:path[2:])
+ \ : ale#path#Simplify(a:path)
+endfunction
+
" Given a buffer and a filename, find the nearest file by searching upwards
" through the paths relative to the given buffer.
function! ale#path#FindNearestFile(buffer, filename) abort
@@ -74,15 +82,19 @@ endfunction
function! ale#path#CdString(directory) abort
if has('win32')
return 'cd /d ' . ale#Escape(a:directory) . ' && '
- else
- return 'cd ' . ale#Escape(a:directory) . ' && '
endif
+
+ return 'cd ' . ale#Escape(a:directory) . ' && '
endfunction
" Output 'cd <buffer_filename_directory> && '
" This function can be used changing the directory for a linter command.
function! ale#path#BufferCdString(buffer) abort
- return ale#path#CdString(fnamemodify(bufname(a:buffer), ':p:h'))
+ if has('win32')
+ return 'cd /d %s:h && '
+ endif
+
+ return 'cd %s:h && '
endfunction
" Return 1 if a path is an absolute path.
@@ -95,7 +107,7 @@ function! ale#path#IsAbsolute(filename) abort
return a:filename[:0] is# '/' || a:filename[1:2] is# ':\'
endfunction
-let s:temp_dir = ale#path#Simplify(fnamemodify(ale#util#Tempname(), ':h'))
+let s:temp_dir = ale#path#Simplify(fnamemodify(ale#util#Tempname(), ':h:h'))
" Given a filename, return 1 if the file represents some temporary file
" created by Vim.