c207d6a550
The standard linter --fix fails if the file being input is not relative to the project root (https://github.com/standard/standard/issues/1384). This MR attempts to fix this by changing the command so the input file is relative to the project root and the output is to a temporary file. Preliminary tests with toy javascript projects seem to indicate this works fine.
31 lines
957 B
Text
31 lines
957 B
Text
Before:
|
|
call ale#test#SetDirectory('/testplugin/test/fixers')
|
|
|
|
unlet! b:ale_javascript_standard_executable
|
|
unlet! b:ale_javascript_standard_options
|
|
|
|
After:
|
|
call ale#test#RestoreDirectory()
|
|
|
|
Execute(The executable path should be correct):
|
|
call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.js')
|
|
|
|
AssertEqual
|
|
\ {
|
|
\ 'read_temporary_file': 1,
|
|
\ 'command': (has('win32') ? 'node.exe ' : '')
|
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/../eslint-test-files/react-app/node_modules/standard/bin/cmd.js'))
|
|
\ . ' --fix --stdin < %s > %t',
|
|
\ },
|
|
\ ale#fixers#standard#Fix(bufnr(''))
|
|
|
|
Execute(Custom options should be supported):
|
|
let b:ale_javascript_standard_use_global = 1
|
|
let b:ale_javascript_standard_options = '--foo-bar'
|
|
|
|
AssertEqual
|
|
\ {
|
|
\ 'read_temporary_file': 1,
|
|
\ 'command': ale#Escape('standard') . ' --foo-bar --fix --stdin < %s > %t',
|
|
\ },
|
|
\ ale#fixers#standard#Fix(bufnr(''))
|