mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 22:30:04 +08:00
151 lines
5.7 KiB
Plaintext
Vendored
151 lines
5.7 KiB
Plaintext
Vendored
Include: include/setup.vader
|
|
|
|
Execute (rst: rstlint: errorformat):
|
|
Save &errorformat
|
|
let &errorformat = neomake#makers#ft#rst#rstlint().errorformat
|
|
new
|
|
file file.rst
|
|
let output = [
|
|
\ 'ERROR file.rst:40 Error in "code-block" directive:',
|
|
\ 'unknown option: "linenos".',
|
|
\ ]
|
|
lgetexpr output
|
|
AssertEqualQf getloclist(0), [
|
|
\ {'lnum': 40, 'bufnr': bufnr('%'), 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'E', 'pattern': '',
|
|
\ 'text': 'Error in "code-block" directive:'."\n".'unknown option: "linenos".',
|
|
\ }]
|
|
|
|
" Newline gets trimmed when going through postprocess.
|
|
let maker = NeomakeTestsGetMakerWithOutput(neomake#makers#ft#rst#rstlint(), output)
|
|
CallNeomake 1, [maker]
|
|
AssertEqualQf getloclist(0), [
|
|
\ {'lnum': 40, 'bufnr': bufnr('%'), 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'E', 'pattern': '',
|
|
\ 'text': 'Error in "code-block" directive: unknown option: "linenos".',
|
|
\ }]
|
|
bwipe
|
|
|
|
Execute (rst: sphinx: enabled based on conf.py):
|
|
call g:NeomakeTestsSetPATH('')
|
|
|
|
AssertEqual neomake#makers#ft#rst#EnabledMakers(), ['rstlint', 'rstcheck']
|
|
|
|
new
|
|
call g:NeomakeTestsCreateExe('sphinx-build', [])
|
|
AssertEqual neomake#makers#ft#rst#EnabledMakers(), ['rstlint', 'rstcheck']
|
|
AssertNeomakeMessage 'sphinx: skipping setting of source_dir for empty bufname.', 3
|
|
|
|
let bufnr = bufnr('%')
|
|
noautocmd set filetype=rst
|
|
CallNeomake 1, ['sphinx']
|
|
AssertNeomakeMessage 'sphinx: skipping setting of source_dir for empty bufname.', 3
|
|
AssertNeomakeMessage '\Vsphinx: could not find conf.py', 0
|
|
Assert !exists('b:neomake.sphinx')
|
|
|
|
let tempdir = tempname()
|
|
let slash = neomake#utils#Slash()
|
|
call mkdir(tempdir.slash.'doc', 'p')
|
|
|
|
exe 'lcd '.fnameescape(tempdir)
|
|
file doc/test.rst
|
|
|
|
" Uses conf.py from project root also.
|
|
call writefile([], 'conf.py')
|
|
" To please neomake#utils#get_project_root().
|
|
call writefile([], 'Makefile')
|
|
call neomake#makers#ft#rst#EnabledMakers()
|
|
AssertNeomakeMessage printf("sphinx: setting b:neomake.sphinx.source_dir='%s'.", getcwd()), 3, {'bufnr': bufnr}
|
|
|
|
call writefile([], 'doc'.slash.'conf.py')
|
|
unlet b:neomake.sphinx
|
|
let expected_srcdir = getcwd() . slash . 'doc'
|
|
let maker = neomake#GetMaker('sphinx', 'rst')
|
|
AssertEqual maker.args[-2], expected_srcdir
|
|
AssertNeomakeMessage printf("sphinx: setting b:neomake.sphinx.source_dir='%s'.", expected_srcdir), 3, {'bufnr': bufnr}
|
|
AssertEqual neomake#makers#ft#rst#EnabledMakers(), ['sphinx']
|
|
bwipe
|
|
|
|
Execute (rst: sphinx: handles docutils warnings and adds first additional line):
|
|
new
|
|
file build/some.rst
|
|
let b:neomake = {'sphinx': {'source_dir': 'sphinx_source_dir'}}
|
|
|
|
let output = [
|
|
\ 'WARNING: /some/path/inline.rst:8: (ERROR/3) Malformed table.',
|
|
\ 'No bottom table border found.',
|
|
\ '',
|
|
\ '======================= ====================================================================',
|
|
\ '/some/path/inline.rst:9: WARNING: Block quote ends without a blank line; unexpected unindent.',
|
|
\ 'WARNING: /some/path/inline.rst:40: (ERROR/3) Error in "code-block" directive:',
|
|
\ 'unknown option: "linenoss".',
|
|
\ '',
|
|
\ '.. code-block:: lua',
|
|
\ ' :linenoss:',
|
|
\ '',
|
|
\ ' -- luacheck: globals g1 g2, ignore foo',
|
|
\ ' local foo = g1(g2) -- No warnings emitted.',
|
|
\ '',
|
|
\ ' -- The following unused function is not reported.',
|
|
\ ' local function f() -- luacheck: ignore',
|
|
\ ' -- luacheck: globals g3',
|
|
\ ' g3() -- No warning.',
|
|
\ ' end',
|
|
\ '',
|
|
\ ' g3() -- Warning is emitted as the inline option defining g3 only affected function f.',
|
|
\ ' WARNING: /some/path/inline.rst:2: (WARNING/2) Title underline too short.',
|
|
\ '',
|
|
\ 'Command line interface',
|
|
\ '=====================',
|
|
\ '',
|
|
\ 'build/some.rst:70: WARNING: numfig is disabled. :numref: is ignored.',
|
|
\ 'build/some.rst:71: WARNING: numfig is disabled. :numref: is ignored.',
|
|
\ ]
|
|
|
|
let maker = neomake#makers#ft#rst#sphinx()
|
|
call extend(maker, {
|
|
\ 'exe': 'printf', 'args': ['%s\n'] + output,
|
|
\ 'append_file': 0, 'output_stream': 'stdout'})
|
|
CallNeomake 1, [maker]
|
|
|
|
let unlisted_bufnr = bufnr('/some/path/inline.rst')
|
|
let bufnr = bufnr('%')
|
|
|
|
AssertEqualQf getloclist(0), [
|
|
\ {'lnum': 8, 'bufnr': unlisted_bufnr, 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'E', 'pattern': '',
|
|
\ 'text': 'Malformed table. No bottom table border found.'},
|
|
\ {'lnum': 9, 'bufnr': unlisted_bufnr, 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'W', 'pattern': '',
|
|
\ 'text': 'Block quote ends without a blank line; unexpected unindent.'},
|
|
\ {'lnum': 40, 'bufnr': unlisted_bufnr, 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'E', 'pattern': '',
|
|
\ 'text': 'Error in "code-block" directive: unknown option: "linenoss".'},
|
|
\ {'lnum': 70, 'bufnr': bufnr, 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'W', 'pattern': '',
|
|
\ 'text': 'numfig is disabled. :numref: is ignored.'},
|
|
\ {'lnum': 71, 'bufnr': bufnr, 'col': 0, 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'W', 'pattern': '',
|
|
\ 'text': 'numfig is disabled. :numref: is ignored.'}
|
|
\ ]
|
|
exe 'bwipe' unlisted_bufnr
|
|
bwipe
|
|
|
|
Execute (rst: sphinx: errorformat):
|
|
new
|
|
file foo.rst
|
|
let b:neomake = {'sphinx': {'source_dir': 'sphinx_source_dir'}}
|
|
|
|
let maker = NeomakeTestsGetMakerWithOutput(neomake#makers#ft#rst#sphinx(), [], [
|
|
\ 'foo.rst:20: WARNING: Problems with "include" directive path:',
|
|
\ "InputError: [Errno 2] No such file or directory: '_include.rst'.",
|
|
\ ])
|
|
CallNeomake 1, [maker]
|
|
|
|
AssertEqualQf getloclist(0), [
|
|
\ {'lnum': 20, 'bufnr': bufnr('%'), 'col': 0, 'pattern': '', 'valid': 1, 'vcol': 0,
|
|
\ 'nr': -1, 'type': 'W',
|
|
\ 'text': 'Problems with "include" directive path: InputError: [Errno 2] No such file or directory: ''_include.rst''.'},
|
|
\ ]
|
|
bwipe
|