summaryrefslogtreecommitdiff
path: root/support/texlab/src/parser/build_log.rs
diff options
context:
space:
mode:
Diffstat (limited to 'support/texlab/src/parser/build_log.rs')
-rw-r--r--support/texlab/src/parser/build_log.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/support/texlab/src/parser/build_log.rs b/support/texlab/src/parser/build_log.rs
index 5f99129cdb..1e5eca26f8 100644
--- a/support/texlab/src/parser/build_log.rs
+++ b/support/texlab/src/parser/build_log.rs
@@ -17,8 +17,9 @@ static TEX_ERROR_REGEX: Lazy<Regex> = Lazy::new(|| {
Regex::new("(?m)^! ((?P<msg1>(.|\r|\n)*?)\r?\nl\\.(?P<line>\\d+)( (\\.\\.\\.)?(?P<hint>[^\r\n]+))?|(?P<msg2>[^\r\n]*))").unwrap()
});
-static WARNING_REGEX: Lazy<Regex> =
- Lazy::new(|| Regex::new("(LaTeX|Package [a-zA-Z_\\-]+) Warning: (?P<msg>[^\r\n]*)").unwrap());
+static WARNING_REGEX: Lazy<Regex> = Lazy::new(|| {
+ Regex::new("(?P<msg>(LaTeX|Package [a-zA-Z_\\-]+) Warning: [^\r\n]*?(on input line (?P<line>\\d+))?\\.)[\r\n]").unwrap()
+});
static BAD_BOX_REGEX: Lazy<Regex> = Lazy::new(|| {
Regex::new("(?P<msg>(Ov|Und)erfull \\\\[hv]box[^\r\n]*lines? (?P<line>\\d+)[^\r\n]*)").unwrap()
@@ -104,8 +105,11 @@ fn prepare_log(log: &str) -> String {
} else if line.chars().count() == MAX_LINE_LENGTH {
let mut new_line = String::new();
new_line.push_str(line);
- if let Some(old_line) = old_lines.next() {
- new_line.push_str(old_line);
+ while let Some(old_line) = old_lines.next() {
+ new_line.push_str(old_line);
+ if old_line.chars().count() != MAX_LINE_LENGTH {
+ break;
+ }
}
new_lines.push(new_line);
} else {