1
0
mirror of https://github.com/sharkdp/bat synced 2026-08-10 20:01:45 +00:00

Merge pull request #3876 from Matei02355/fix-log-syntax-performance-3866

fix(syntax): avoid repeated log level scans
This commit is contained in:
Keith Hall
2026-08-10 21:30:13 +03:00
committed by GitHub
3 changed files with 35 additions and 5 deletions
+1
View File
@@ -24,6 +24,7 @@
- Syntax highlighting for Python files using uv as script runner in shebang #3689 (@janlarres)
## Bugfixes
- Avoid repeated scans of long lines in Log syntax highlighting, see #3876 (@Matei02355)
- Fix `--list-languages` respecting `--paging=never`, see #3828 (@cyphercodes)
- Fix `--sanitize` passing through the bidi control characters U+200E, U+200F and U+061C, see #3862 (@lenamonj)
- `--strip-ansi`: also strip 8-bit C1 introducers (U+0090, U+0098, U+009B, U+009D, U+009E, U+009F) and DCS/SOS/PM/APC sequence bodies, which previously passed through. See #3729 (@curious-rabbit)
+23 -4
View File
@@ -38,22 +38,41 @@ contexts:
scope: markup.underline.link.scheme.log
push: url-host
log_level_lines:
- match: (?=.*{{error}})
# Prevent retrying each lookahead at every position.
- match: ^(?=.*{{error}})
push:
- error_line_meta
- main_pop_at_eol
- match: (?=.*{{warning}})
- match: ^(?=.*{{warning}})
push:
- warning_line_meta
- main_pop_at_eol
- match: (?=.*{{info}})
- match: ^(?=.*{{info}})
push:
- info_line_meta
- main_pop_at_eol
- match: (?=.*{{debug}})
- match: ^(?=.*{{debug}})
push:
- debug_line_meta
- main_pop_at_eol
# For syntaxes that embed Log after consuming a prefix. Call this context once.
log_level_lines_at_current_position:
- match: (?=.*{{error}})
set:
- error_line_meta
- main_pop_at_eol
- match: (?=.*{{warning}})
set:
- warning_line_meta
- main_pop_at_eol
- match: (?=.*{{info}})
set:
- info_line_meta
- main_pop_at_eol
- match: (?=.*{{debug}})
set:
- debug_line_meta
- main_pop_at_eol
log_levels:
- match: '{{error}}'
scope: markup.error.log
+11 -1
View File
@@ -50,6 +50,17 @@ contexts:
- match: (?=\])
pop: true
text:
- include: text_special
- match: ''
set: classify_log_text
classify_log_text:
- include: scope:text.log#log_level_lines_at_current_position
- match: ''
set: text_body
text_body:
- include: text_special
- include: scope:text.log
text_special:
- match: $
pop: true
- match: '<\w+>'
@@ -62,4 +73,3 @@ contexts:
escape: \)$
escape_captures:
0: punctuation.section.block.end.syslog
- include: scope:text.log