mirror of
https://github.com/dense-analysis/ale
synced 2024-12-23 06:33:11 +00:00
771581a945
The executable for the Alex linter is currently hard-coded as 'alex', which is an issue given the fact that it conflicts with the Haskell lexer generator, whose executable is also called 'alex', has been around a dozen years before the linter, and is packaged in the official repositories of the major Linux distributions. This commit adds options to use a local executable for the alex linter (which is a node package), and an option to set a custom executable. As side changes: * The pattern in the alex handler is made more readable by turnig it into a very-magic regex. * Alex handles plain text, markdown, and HTML. Specific flags for HTML and markdown are provided when instantiating the linters for the respective filetypes, while before those formats were treated as plain text.
35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
Before:
|
|
call ale#assert#SetUpLinterTest('tex', 'alex')
|
|
call ale#test#SetFilename('test_file.tex')
|
|
|
|
After:
|
|
call ale#assert#TearDownLinterTest()
|
|
|
|
Execute(The global executable should be used when the local one cannot be found):
|
|
AssertLinter 'alex',
|
|
\ ale#Escape('alex') . ' %s --text',
|
|
|
|
Execute(Should use the node_modules/.bin executable, if available):
|
|
call ale#test#SetFilename('alex-node-modules/test_file.tex')
|
|
|
|
AssertLinter ale#path#Simplify(g:dir . '/alex-node-modules/node_modules/.bin/alex'),
|
|
\ ale#Escape(ale#path#Simplify(g:dir . '/alex-node-modules/node_modules/.bin/alex'))
|
|
\ . ' %s --text',
|
|
|
|
Execute(Should use the node_modules/alex executable, if available):
|
|
call ale#test#SetFilename('alex-node-modules-2/test_file.tex')
|
|
|
|
AssertLinter ale#path#Simplify(g:dir . '/alex-node-modules-2/node_modules/alex/cli.js'),
|
|
\ (has('win32') ? 'node.exe ' : '')
|
|
\ . ale#Escape(ale#path#Simplify(g:dir . '/alex-node-modules-2/node_modules/alex/cli.js'))
|
|
\ . ' %s --text',
|
|
|
|
Execute(Should let users configure a global executable and override local paths):
|
|
call ale#test#SetFilename('write-good-node-modules-2/test_file.tex')
|
|
|
|
let g:ale_alex_executable = '/path/to/custom/alex'
|
|
let g:ale_alex_use_global = 1
|
|
|
|
AssertLinter '/path/to/custom/alex',
|
|
\ ale#Escape('/path/to/custom/alex') . ' %s --text'
|