mirror of
https://github.com/latex-lsp/texlab.git
synced 2025-12-23 09:19:21 +00:00
parent
b47b88b6e8
commit
1265f8965a
3 changed files with 208 additions and 5 deletions
|
|
@ -15,11 +15,13 @@ pub fn analyze_build_log_static(
|
|||
|
||||
let root_document = workspace.documents().into_iter().find(|document| {
|
||||
if let Some(data) = document.data.as_latex() {
|
||||
data.extras
|
||||
.implicit_links
|
||||
.log
|
||||
.iter()
|
||||
.any(|u| u.as_ref() == build_log_uri)
|
||||
!document.uri.as_str().ends_with(".aux")
|
||||
&& data
|
||||
.extras
|
||||
.implicit_links
|
||||
.log
|
||||
.iter()
|
||||
.any(|u| u.as_ref() == build_log_uri)
|
||||
} else {
|
||||
false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -183,6 +183,7 @@ impl PartialOrd for FileRange {
|
|||
mod tests {
|
||||
use super::*;
|
||||
use indoc::indoc;
|
||||
use insta::assert_debug_snapshot;
|
||||
|
||||
#[test]
|
||||
fn test_parse_001() {
|
||||
|
|
@ -1158,4 +1159,189 @@ mod tests {
|
|||
]
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_parse_007() {
|
||||
let log = indoc! {
|
||||
r#"
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/W32TeX) (preloaded format=pdflatex 2021.6.19) 5 NOV 2021 19:10
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
**/some/folder/a.tex
|
||||
(/some/folder/a.tex
|
||||
LaTeX2e <2021-06-01> patch level 1
|
||||
L3 programming layer <2021-06-18>
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrartcl.cls
|
||||
Document Class: scrartcl 2021/03/17 v3.33 KOMA-Script document class (article)
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrkbase.sty
|
||||
Package: scrkbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-dependent b
|
||||
asics and keyval usage)
|
||||
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrbase.sty
|
||||
Package: scrbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-independent
|
||||
basics and keyval usage)
|
||||
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile.sty
|
||||
Package: scrlfile 2021/03/17 v3.33 KOMA-Script package (file load hooks)
|
||||
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
|
||||
Package: scrlfile-hook 2021/03/17 v3.33 KOMA-Script package (using LaTeX hooks)
|
||||
|
||||
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlogo.sty
|
||||
Package: scrlogo 2021/03/17 v3.33 KOMA-Script package (logo)
|
||||
)))
|
||||
(/texlive/2021/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks16
|
||||
)
|
||||
Applying: [2021/05/01] Usage of raw option list on input line 252.
|
||||
Already applied: [0000/00/00] compatibility for LaTeX before 2021/05/01 on inpu
|
||||
t line 337.
|
||||
))
|
||||
==> First Aid for scrkbase.sty no longer applied!
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/tocbasic.sty
|
||||
Package: tocbasic 2021/03/17 v3.33 KOMA-Script package (handling toc-files)
|
||||
\scr@dte@tocline@numberwidth=\skip47
|
||||
\scr@dte@tocline@numbox=\box50
|
||||
)
|
||||
Package tocbasic Info: babel extension for `toc' omitted
|
||||
(tocbasic) because of missing \bbl@set@language on input line 135.
|
||||
Class scrartcl Info: File `scrsize11pt.clo' used instead of
|
||||
(scrartcl) file `scrsize11.clo' to setup font sizes on input line 223
|
||||
9.
|
||||
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
|
||||
File: scrsize11pt.clo 2021/03/17 v3.33 KOMA-Script font size class option (11pt
|
||||
)
|
||||
)
|
||||
(/texlive/2021/texmf-dist/tex/latex/koma-script/typearea.sty
|
||||
Package: typearea 2021/03/17 v3.33 KOMA-Script package (type area)
|
||||
\ta@bcor=\skip48
|
||||
\ta@div=\count182
|
||||
\ta@hblk=\skip49
|
||||
\ta@vblk=\skip50
|
||||
\ta@temp=\skip51
|
||||
\footheight=\skip52
|
||||
Package typearea Info: These are the values describing the layout:
|
||||
(typearea) DIV = 10
|
||||
(typearea) BCOR = 0.0pt
|
||||
(typearea) \paperwidth = 597.50793pt
|
||||
(typearea) \textwidth = 418.25555pt
|
||||
(typearea) DIV departure = -6%
|
||||
(typearea) \evensidemargin = 17.3562pt
|
||||
(typearea) \oddsidemargin = 17.3562pt
|
||||
(typearea) \paperheight = 845.04694pt
|
||||
(typearea) \textheight = 595.80026pt
|
||||
(typearea) \topmargin = -25.16531pt
|
||||
(typearea) \headheight = 17.0pt
|
||||
(typearea) \headsep = 20.40001pt
|
||||
(typearea) \topskip = 11.0pt
|
||||
(typearea) \footskip = 47.6pt
|
||||
(typearea) \baselineskip = 13.6pt
|
||||
(typearea) on input line 1741.
|
||||
)
|
||||
\c@part=\count183
|
||||
\c@section=\count184
|
||||
\c@subsection=\count185
|
||||
\c@subsubsection=\count186
|
||||
\c@paragraph=\count187
|
||||
\c@subparagraph=\count188
|
||||
\scr@dte@section@maxnumwidth=\skip53
|
||||
Class scrartcl Info: using compatibility default `runin=bysign'
|
||||
(scrartcl) for `\section on input line 4846.
|
||||
Class scrartcl Info: using compatibility default `afterindent=bysign'
|
||||
(scrartcl) for `\section on input line 4846.
|
||||
\scr@dte@part@maxnumwidth=\skip54
|
||||
Class scrartcl Info: using compatibility default `afterindent=false'
|
||||
(scrartcl) for `\part on input line 4854.
|
||||
\scr@dte@subsection@maxnumwidth=\skip55
|
||||
Class scrartcl Info: using compatibility default `runin=bysign'
|
||||
(scrartcl) for `\subsection on input line 4864.
|
||||
Class scrartcl Info: using compatibility default `afterindent=bysign'
|
||||
(scrartcl) for `\subsection on input line 4864.
|
||||
\scr@dte@subsubsection@maxnumwidth=\skip56
|
||||
Class scrartcl Info: using compatibility default `runin=bysign'
|
||||
(scrartcl) for `\subsubsection on input line 4874.
|
||||
Class scrartcl Info: using compatibility default `afterindent=bysign'
|
||||
(scrartcl) for `\subsubsection on input line 4874.
|
||||
\scr@dte@paragraph@maxnumwidth=\skip57
|
||||
Class scrartcl Info: using compatibility default `runin=bysign'
|
||||
(scrartcl) for `\paragraph on input line 4885.
|
||||
Class scrartcl Info: using compatibility default `afterindent=bysign'
|
||||
(scrartcl) for `\paragraph on input line 4885.
|
||||
\scr@dte@subparagraph@maxnumwidth=\skip58
|
||||
Class scrartcl Info: using compatibility default `runin=bysign'
|
||||
(scrartcl) for `\subparagraph on input line 4895.
|
||||
Class scrartcl Info: using compatibility default `afterindent=bysign'
|
||||
(scrartcl) for `\subparagraph on input line 4895.
|
||||
\abovecaptionskip=\skip59
|
||||
\belowcaptionskip=\skip60
|
||||
\c@pti@nb@sid@b@x=\box51
|
||||
Package tocbasic Info: babel extension for `lof' omitted
|
||||
(tocbasic) because of missing \bbl@set@language on input line 6127.
|
||||
|
||||
\scr@dte@figure@maxnumwidth=\skip61
|
||||
\c@figure=\count189
|
||||
Package tocbasic Info: babel extension for `lot' omitted
|
||||
(tocbasic) because of missing \bbl@set@language on input line 6139.
|
||||
|
||||
\scr@dte@table@maxnumwidth=\skip62
|
||||
\c@table=\count190
|
||||
Class scrartcl Info: Redefining `\numberline' on input line 6303.
|
||||
\bibindent=\dimen138
|
||||
)
|
||||
(/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
File: l3backend-pdftex.def 2021-05-07 L3 backend support: PDF output (pdfTeX)
|
||||
\l__color_backend_stack_int=\count191
|
||||
\l__pdf_internal_box=\box52
|
||||
) (./a.aux)
|
||||
\openout1 = `a.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3.
|
||||
LaTeX Font Info: ... okay on input line 3.
|
||||
Package scrbase Info: activating english \contentsname on input line 3.
|
||||
Package scrbase Info: activating english \listfigurename on input line 3.
|
||||
Package scrbase Info: activating english \listtablename on input line 3.
|
||||
! Undefined control sequence.
|
||||
l.4 \lsdkfjlskdfj
|
||||
|
||||
The control sequence at the end of the top line
|
||||
of your error message was never \def'ed. If you have
|
||||
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||
and I'll forget about whatever was undefined.
|
||||
|
||||
(./a.aux) )
|
||||
Here is how much of TeX's memory you used:
|
||||
3199 strings out of 478510
|
||||
74549 string characters out of 5853586
|
||||
510929 words of memory out of 5000000
|
||||
21227 multiletter control sequences out of 15000+600000
|
||||
403730 words of font info for 28 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
108i,1n,108p,10625b,270s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
No pages of output.
|
||||
PDF statistics:
|
||||
0 PDF objects out of 1000 (max. 8388607)
|
||||
0 named destinations out of 1000 (max. 500000)
|
||||
1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
|
||||
};
|
||||
|
||||
assert_debug_snapshot!(parse(&log).errors);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
source: src/syntax/build_log.rs
|
||||
expression: parse(&log).errors
|
||||
|
||||
---
|
||||
[
|
||||
BuildError {
|
||||
relative_path: "/some/folder/a.tex",
|
||||
level: Error,
|
||||
message: "Undefined control sequence.",
|
||||
line: Some(
|
||||
3,
|
||||
),
|
||||
},
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue