Make temporary file detection work on just about all platforms
This commit is contained in:
parent
71c2e65d64
commit
a59d1ddbf3
@ -375,7 +375,7 @@ function! ale#engine#FixLocList(buffer, linter_name, loclist) abort
|
|||||||
\}
|
\}
|
||||||
|
|
||||||
if has_key(l:old_item, 'filename')
|
if has_key(l:old_item, 'filename')
|
||||||
\&& l:old_item.filename[:len(s:temp_dir) - 1] isnot# s:temp_dir
|
\&& !ale#path#IsTempName(l:old_item.filename)
|
||||||
" Use the filename given.
|
" Use the filename given.
|
||||||
" Temporary files are assumed to be for this buffer,
|
" Temporary files are assumed to be for this buffer,
|
||||||
" and the filename is not included then, because it looks bad
|
" and the filename is not included then, because it looks bad
|
||||||
|
@ -80,22 +80,12 @@ function! ale#path#IsAbsolute(filename) abort
|
|||||||
return a:filename[:0] is# '/' || a:filename[1:2] is# ':\'
|
return a:filename[:0] is# '/' || a:filename[1:2] is# ':\'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
let s:temp_dir = fnamemodify(tempname(), ':h')
|
||||||
|
|
||||||
" Given a filename, return 1 if the file represents some temporary file
|
" Given a filename, return 1 if the file represents some temporary file
|
||||||
" created by Vim.
|
" created by Vim.
|
||||||
function! ale#path#IsTempName(filename) abort
|
function! ale#path#IsTempName(filename) abort
|
||||||
let l:prefix_list = [
|
return a:filename[:len(s:temp_dir) - 1] is# s:temp_dir
|
||||||
\ $TMPDIR,
|
|
||||||
\ resolve($TMPDIR),
|
|
||||||
\ '/run/user',
|
|
||||||
\]
|
|
||||||
|
|
||||||
for l:prefix in l:prefix_list
|
|
||||||
if a:filename[:len(l:prefix) - 1] is# l:prefix
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
return 0
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Given a base directory, which must not have a trailing slash, and a
|
" Given a base directory, which must not have a trailing slash, and a
|
||||||
|
@ -16,7 +16,7 @@ Execute(The ansible-lint handler should handle basic errors):
|
|||||||
\ },
|
\ },
|
||||||
\ ],
|
\ ],
|
||||||
\ ale_linters#ansible#ansible_lint#Handle(bufnr(''), [
|
\ ale_linters#ansible#ansible_lint#Handle(bufnr(''), [
|
||||||
\ '/tmp/vxepmGL/1/main.yml:35: [EANSIBLE0002] Trailing whitespace',
|
\ fnamemodify(tempname(), ':h') . '/main.yml:35: [EANSIBLE0002] Trailing whitespace',
|
||||||
\ ])
|
\ ])
|
||||||
|
|
||||||
Execute (The ansible-lint handler should handle names with spaces):
|
Execute (The ansible-lint handler should handle names with spaces):
|
||||||
@ -30,7 +30,7 @@ Execute (The ansible-lint handler should handle names with spaces):
|
|||||||
\ },
|
\ },
|
||||||
\ ],
|
\ ],
|
||||||
\ ale_linters#ansible#ansible_lint#Handle(bufnr(''), [
|
\ ale_linters#ansible#ansible_lint#Handle(bufnr(''), [
|
||||||
\ '/tmp/vxepm GL/1/main.yml:6:6: E111 indentation is not a multiple of four',
|
\ fnamemodify(tempname(), ':h') . '/main.yml:6:6: E111 indentation is not a multiple of four',
|
||||||
\ ])
|
\ ])
|
||||||
|
|
||||||
Execute (The ansible-lint handler should ignore errors from other files):
|
Execute (The ansible-lint handler should ignore errors from other files):
|
||||||
|
@ -52,9 +52,4 @@ Execute(ale#path#IsBufferPath should accept various names for stdin):
|
|||||||
Execute(ale#path#IsBufferPath should match files in /tmp):
|
Execute(ale#path#IsBufferPath should match files in /tmp):
|
||||||
call ale#test#SetFilename('app/test.ts')
|
call ale#test#SetFilename('app/test.ts')
|
||||||
|
|
||||||
" Skip these checks on Windows.
|
Assert ale#path#IsBufferPath(bufnr(''), tempname() . '/test.ts')
|
||||||
if !has('win32')
|
|
||||||
Assert ale#path#IsBufferPath(bufnr(''), '../../../../../../../../tmp/vG0hKyD/1/test.ts')
|
|
||||||
Assert ale#path#IsBufferPath(bufnr(''), '/tmp/vG0hKyD/1/test.ts')
|
|
||||||
Assert ale#path#IsBufferPath(bufnr(''), '/run/user/1000/vG0hKyD/1/test.ts')
|
|
||||||
endif
|
|
||||||
|
Loading…
Reference in New Issue
Block a user