mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-06 12:44:23 +08:00
Add pymarkdown for Markdown linting (#4906)
Add support for pymarkdown Closes #4785
This commit is contained in:
50
test/linter/test_pymarkdown.vader
Normal file
50
test/linter/test_pymarkdown.vader
Normal file
@@ -0,0 +1,50 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('markdown', 'pymarkdown')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The pymarkdown command callback should return default string):
|
||||
AssertLinter 'pymarkdown', ale#Escape('pymarkdown') . ' scan-stdin'
|
||||
|
||||
Execute(The pycodestyle command callback should allow options):
|
||||
let g:markdown_pymarkdown_options = '--exclude=test*.py'
|
||||
|
||||
Execute(The pymarkdown executable should be configurable):
|
||||
let g:ale_markdown_pymarkdown_executable = '~/.local/bin/pymarkdown'
|
||||
|
||||
AssertLinter '~/.local/bin/pymarkdown',
|
||||
\ ale#Escape('~/.local/bin/pymarkdown') . ' scan-stdin'
|
||||
|
||||
Execute(Setting executable to 'pipenv' appends 'run pymarkdown'):
|
||||
let g:ale_markdown_pymarkdown_executable = 'path/to/pipenv'
|
||||
|
||||
AssertLinter 'path/to/pipenv',
|
||||
\ ale#Escape('path/to/pipenv') . ' run pymarkdown scan-stdin'
|
||||
|
||||
Execute(Pipenv is detected when markdown_pymarkdown_auto_pipenv is set):
|
||||
let g:ale_markdown_pymarkdown_auto_pipenv = 1
|
||||
call ale#test#SetFilename('../test-files/python/pipenv/whatever.py')
|
||||
|
||||
AssertLinter 'pipenv',
|
||||
\ ale#Escape('pipenv') . ' run pymarkdown scan-stdin'
|
||||
|
||||
Execute(Setting executable to 'poetry' appends 'run pymarkdown'):
|
||||
let g:ale_markdown_pymarkdown_executable = 'path/to/poetry'
|
||||
|
||||
AssertLinter 'path/to/poetry',
|
||||
\ ale#Escape('path/to/poetry') . ' run pymarkdown scan-stdin'
|
||||
|
||||
Execute(Poetry is detected when markdown_pymarkdown_auto_poetry is set):
|
||||
let g:ale_markdown_pymarkdown_auto_poetry = 1
|
||||
call ale#test#SetFilename('../test-files/python/poetry/whatever.py')
|
||||
|
||||
AssertLinter 'poetry',
|
||||
\ ale#Escape('poetry') . ' run pymarkdown scan-stdin'
|
||||
|
||||
Execute(uv is detected when markdown_pymarkdown_auto_uv is set):
|
||||
let g:ale_markdown_pymarkdown_auto_uv = 1
|
||||
call ale#test#SetFilename('../test-files/python/uv/whatever.py')
|
||||
|
||||
AssertLinter 'uv',
|
||||
\ ale#Escape('uv') . ' run pymarkdown scan-stdin'
|
||||
52
test/linter/test_pymarkdown_handler.vader
Normal file
52
test/linter/test_pymarkdown_handler.vader
Normal file
@@ -0,0 +1,52 @@
|
||||
Before:
|
||||
Save g:ale_warn_about_trailing_whitespace
|
||||
|
||||
let g:ale_warn_about_trailing_whitespace = 1
|
||||
|
||||
runtime ale_linters/markdown/pymarkdown.vim
|
||||
|
||||
After:
|
||||
Restore
|
||||
unlet! b:ale_warn_about_trailing_whitespace
|
||||
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute (Should parse error correctly):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 1,
|
||||
\ 'type': 'M',
|
||||
\ 'text': 'Headings should be surrounded by blank lines',
|
||||
\ 'code': 'MD022',
|
||||
\ }
|
||||
\ ],
|
||||
\ ale_linters#markdown#pymarkdown#Handle(bufnr(''), [
|
||||
\ 'foo.md:1:1: MD022: Headings should be surrounded by blank lines',
|
||||
\ ])
|
||||
|
||||
Execute(Warnings about trailing whitespace should be reported by default):
|
||||
AssertEqual
|
||||
\ [
|
||||
\ {
|
||||
\ 'lnum': 1,
|
||||
\ 'col': 1,
|
||||
\ 'type': 'M',
|
||||
\ 'text': 'who cares',
|
||||
\ 'code': 'MD009',
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#markdown#pymarkdown#Handle(bufnr(''), [
|
||||
\ 'foo.md:1:1: MD009: who cares',
|
||||
\ ])
|
||||
|
||||
Execute(Disabling trailing whitespace warnings should work):
|
||||
let b:ale_warn_about_trailing_whitespace = 0
|
||||
|
||||
AssertEqual
|
||||
\ [
|
||||
\ ],
|
||||
\ ale_linters#markdown#pymarkdown#Handle(bufnr(''), [
|
||||
\ 'foo.md:1:1: MD009: who cares',
|
||||
\ ])
|
||||
Reference in New Issue
Block a user