|
| 1 | +" Description: linter for jinja using j2lint |
| 2 | + |
| 3 | +callale#Set('jinja_j2lint_executable','j2lint') |
| 4 | +callale#Set('jinja_j2lint_options','') |
| 5 | +callale#Set('jinja_j2lint_use_global',get(g:,'ale_use_global_executables',0)) |
| 6 | +callale#Set('jinja_j2lint_auto_pipenv',0) |
| 7 | +callale#Set('jinja_j2lint_auto_poetry',0) |
| 8 | +callale#Set('jinja_j2lint_auto_uv',0) |
| 9 | + |
| 10 | +function!ale_linters#jinja#j2lint#GetExecutable(buffer)abort |
| 11 | +if (ale#Var(a:buffer,'python_auto_pipenv')||ale#Var(a:buffer,'jinja_j2lint_auto_pipenv')) |
| 12 | +\&&ale#python#PipenvPresent(a:buffer) |
| 13 | +return'pipenv' |
| 14 | +endif |
| 15 | + |
| 16 | +if (ale#Var(a:buffer,'python_auto_poetry')||ale#Var(a:buffer,'jinja_j2lint_auto_poetry')) |
| 17 | +\&&ale#python#PoetryPresent(a:buffer) |
| 18 | +return'poetry' |
| 19 | +endif |
| 20 | + |
| 21 | +if (ale#Var(a:buffer,'python_auto_uv')||ale#Var(a:buffer,'jinja_j2lint_auto_uv')) |
| 22 | +\&&ale#python#UvPresent(a:buffer) |
| 23 | +return'uv' |
| 24 | +endif |
| 25 | + |
| 26 | +returnale#python#FindExecutable(a:buffer,'jinja_j2lint', ['j2lint']) |
| 27 | +endfunction |
| 28 | + |
| 29 | +function!ale_linters#jinja#j2lint#GetCommand(buffer)abort |
| 30 | +letl:executable=ale_linters#jinja#j2lint#GetExecutable(a:buffer) |
| 31 | + |
| 32 | +letl:exec_args=l:executable=~?'pipenv\|poetry\|uv$' |
| 33 | +\ ?' run j2lint' |
| 34 | +\ :'' |
| 35 | + |
| 36 | +returnale#Escape(l:executable) .l:exec_args |
| 37 | +\ .ale#Pad(ale#Var(a:buffer,'jinja_j2lint_options')) |
| 38 | +\ .' %t' |
| 39 | +endfunction |
| 40 | + |
| 41 | +callale#linter#Define('jinja', { |
| 42 | +\'name':'j2lint', |
| 43 | +\'executable':function('ale_linters#jinja#j2lint#GetExecutable'), |
| 44 | +\'command':function('ale_linters#jinja#j2lint#GetCommand'), |
| 45 | +\'callback':'ale#handlers#unix#HandleAsError', |
| 46 | +\}) |