mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-02 03:12:25 +01:00
End highlighting of C code in man pages when no longer relevant
This commit is contained in:
21
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
21
assets/syntaxes/02_Extra/Manpage.sublime-syntax
vendored
@@ -34,28 +34,30 @@ contexts:
|
||||
scope: markup.heading.title.man
|
||||
- match: \s\s
|
||||
pop: true
|
||||
- match: '(?=\S)'
|
||||
- match: '(?=\S|$)'
|
||||
pop: true
|
||||
|
||||
- match: '$'
|
||||
push: body
|
||||
set: body
|
||||
|
||||
body:
|
||||
# English, ..., ..., ..., Russian, ...
|
||||
|
||||
- match: '^(?:SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
|
||||
- match: '^(?:SYNOPSIS|SYNTAX|SINTASSI|SK\u0141ADNIA|\u0421\u0418\u041d\u0422\u0410\u041a\u0421\u0418\u0421|\u66f8\u5f0f)'
|
||||
scope: markup.heading.synopsis.man
|
||||
embed: synopsis
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
- match: '^(?:USAGE)'
|
||||
scope: markup.heading.synopsis.man
|
||||
embed: synopsis
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
- match: '{{section_heading}}'
|
||||
scope: markup.heading.other.man
|
||||
embed: options # some man pages put command line options under the description heading
|
||||
escape: '(?={{section_heading}})'
|
||||
|
||||
- include: function-call
|
||||
|
||||
function-call:
|
||||
- match: '\b([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
|
||||
captures:
|
||||
@@ -129,8 +131,12 @@ contexts:
|
||||
pop: true
|
||||
|
||||
c-code:
|
||||
- match: '^(?=\s+(?:#include|/\*))'
|
||||
push: scope:source.c
|
||||
#- match: '^(\s+)(?=#include\b|#define\b|/\*|struct\s+\w+\s*\{)'
|
||||
- match: '^(?=\s+(?:#include\b|#define\b|/\*|struct\s+(\w+\s*)?\{))'
|
||||
embed: scope:source.c
|
||||
#embed_scope: source.c.embedded.man
|
||||
#escape: ^(?!#|\1|\s*(?:$|/\*|#include\b|#define\b))
|
||||
escape: ^(?=\s*(?:\(.*\.\)\s*$|[A-Z](?![A-Z])))
|
||||
|
||||
synopsis:
|
||||
- include: c-code
|
||||
@@ -144,6 +150,7 @@ contexts:
|
||||
captures:
|
||||
1: keyword.operator.logical.man
|
||||
#- match: (?={{command_line_option}})
|
||||
- match: \w+-\w+
|
||||
- match: (?=-)
|
||||
push:
|
||||
- match: (?=\s*\|)
|
||||
|
30
assets/syntaxes/02_Extra/syntax_test_man.man
vendored
30
assets/syntaxes/02_Extra/syntax_test_man.man
vendored
@@ -5,7 +5,7 @@ SOMETHING(8) System Manager's Manual SOMETHING(8)
|
||||
# ^^^^^^^ meta.preprocessor
|
||||
|
||||
NAME
|
||||
#^^^ markup.heading.title
|
||||
#^^^ markup.heading.other
|
||||
example - do something useful
|
||||
|
||||
SYNOPSIS
|
||||
@@ -45,9 +45,16 @@ SYNOPSIS
|
||||
[--quiet] [--debug] [--help|-h] [--version] [--conf FILE]
|
||||
|
||||
/* According to POSIX.1-2001, POSIX.1-2008 */
|
||||
# ^^ source comment.block punctuation.definition.comment
|
||||
# ^^ source.c comment.block punctuation.definition.comment
|
||||
#include <sys/select.h>
|
||||
# ^^^^^^^^ source meta.preprocessor.include keyword.control.import.include
|
||||
# ^^^^^^^^ source.c meta.preprocessor.include keyword.control.import.include
|
||||
struct timeval {
|
||||
# ^^^^^^ source.c storage.type
|
||||
|
||||
time_t tv_sec; /* seconds */
|
||||
suseconds_t tv_usec; /* microseconds */
|
||||
};
|
||||
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
@@ -126,4 +133,19 @@ OPTIONS
|
||||
|
||||
EXAMPLE
|
||||
#include <stdio.h>
|
||||
# ^^^^^^^^ source meta.preprocessor.include keyword.control.import.include
|
||||
# ^^^^^^^^ source.c meta.preprocessor.include keyword.control.import.include
|
||||
|
||||
(This is not C code.)
|
||||
# ^^^^^^^^^^^^^^^^^^^^^^ - source.c
|
||||
|
||||
struct timeval {
|
||||
time_t tv_sec; /* seconds */
|
||||
suseconds_t tv_usec; /* microseconds */
|
||||
};
|
||||
# ^ source.c punctuation.terminator
|
||||
|
||||
The corresponding argument for pselect() has the following type:
|
||||
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - source.c
|
||||
#define POLLIN_SET (EPOLLRDNORM | EPOLLRDBAND | EPOLLIN |
|
||||
EPOLLHUP | EPOLLERR)
|
||||
# ^ source.c meta.preprocessor.macro meta.group punctuation.section.group.end
|
||||
|
Reference in New Issue
Block a user