From 83e331dcad5ce28012e656eea3906b5b897db2ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Yngve=20Lerv=C3=A5g?= Date: Sun, 26 Jan 2025 20:47:39 +0100 Subject: [PATCH] feat(qf): parse the emergency stop signal refer: #3086 --- autoload/vimtex/qf/latexlog.vim | 5 +++++ test/test-quickfix/test-latexlog.vim | 1 + 2 files changed, 6 insertions(+) diff --git a/autoload/vimtex/qf/latexlog.vim b/autoload/vimtex/qf/latexlog.vim index 726ab4205f..d4fabc6fa0 100644 --- a/autoload/vimtex/qf/latexlog.vim +++ b/autoload/vimtex/qf/latexlog.vim @@ -33,6 +33,7 @@ function! s:qf.set_errorformat() abort dict "{{{1 setlocal errorformat+=%-P**\"%f\" " Match errors + setlocal errorformat+=%+E!\ Emergency\ stop. setlocal errorformat+=%E!\ LaTeX\ %trror:\ %m setlocal errorformat+=%E!pdfTeX\ error:\ %m setlocal errorformat+=%E%f:%l:\ \ ==>\ %m @@ -134,6 +135,10 @@ function! s:qf.fix_paths(log) abort dict " {{{1 let l:qf.text = substitute(l:qf.text, '\s*on input line \d\+.$', '', '') endif + if l:qf.text ==# '! Emergency stop.' + let l:qf.text = 'Emergency stop (fatal error)!' + endif + " Handle missing buffer/filename: Fallback to the main file (this is always " correct in single-file projects and is thus a good fallback). if l:qf.bufnr == 0 diff --git a/test/test-quickfix/test-latexlog.vim b/test/test-quickfix/test-latexlog.vim index a5360d7d7b..b9d0e305dc 100644 --- a/test/test-quickfix/test-latexlog.vim +++ b/test/test-quickfix/test-latexlog.vim @@ -13,6 +13,7 @@ endtry let s:expected_list = [ \ {'lnum': 0, 'type': 'E', 'text': "Runaway argument?\n{\\sqrt {{1}} \\end {equation} \\par \\end {document} \nFile ended while scanning use of \\frac ."}, + \ {'lnum': 0, 'type': 'E', 'text': "Emergency stop (fatal error)!"}, \ {'lnum': 0, 'type': 'E', 'text': 'Runaway argument?'}, \ {'lnum': 16, 'type': 'E', 'text': 'Paragraph ended before \date was complete.'}, \ {'lnum': 11, 'type': 'E', 'text': "Undefined control sequence.\n\\cdashline"},