1
0
mirror of https://github.com/sharkdp/bat.git synced 2025-07-25 16:29:41 +01:00
Files
.github
assets
completions
manual
patches
syntaxes
01_Packages
02_Extra
AWK
Apache
AsciiDoc
Assembly (ARM)
CMake
CSV
CoffeeScript
Crystal
Dart
Docker
DotENV
Elixir
Elm
Email
FSharp
Fish
Fortran
GLSL
GraphQL
HTML (Twig)
INI
JavaScript (Babel)
Jinja2
Jsonnet
Julia
Kotlin
LESS
Lean
Nginx
Ninja
Nix
Org mode
PowerShell
Protobuf
Puppet
PureScript
QML
Robot
SCSS_Sass
SLS
Strace
Stylus
Svelte
Swift
Syslog
TOML
Terraform
TypeScript
Verilog
VimL
Vue
Zig
gnuplot
hosts
requirementstxt
ssh-config
varlink
Apache.sublime-syntax
AsciiDoc.sublime-syntax
Assembly (ARM).sublime-syntax
Assembly (x86_64).sublime-syntax
CSV.sublime-syntax
Cabal.sublime-syntax
CoffeeScript.sublime-syntax
CpuInfo.sublime-syntax
Crystal.sublime-syntax
Dart.sublime-syntax
DotENV.sublime-syntax
Fstab.sublime-syntax
Group.sublime-syntax
HTML (Twig).sublime-syntax
Hosts.sublime-syntax
INI.sublime-syntax
JavaScript (Babel).sublime-syntax
Kotlin.sublime-syntax
Lean.sublime-syntax
Manpage.sublime-syntax
MemInfo.sublime-syntax
Nim.sublime-syntax
Ninja.sublime-syntax
Nix.sublime-syntax
Org mode.sublime-syntax
Passwd.sublime-syntax
PowerShell.sublime-syntax
QML.sublime-syntax
Rego.sublime-syntax
Resolv.sublime-syntax
Robot.sublime-syntax
SML.sublime-syntax
Stylus.sublime-syntax
Swift.sublime-syntax
TypeScript.sublime-syntax
TypsecriptReact.sublime-syntax
Verilog.sublime-syntax
gnuplot.sublime-syntax
requirementstxt.sublime-syntax
show-nonprintable.sublime-syntax
syntax_test_man.man
themes
.gitattributes
.ignore
create.sh
syntaxes.bin
theme_preview.rs
themes.bin
diagnostics
doc
examples
src
tests
.gitignore
.gitmodules
CHANGELOG.md
CONTRIBUTING.md
Cargo.lock
Cargo.toml
LICENSE-APACHE
LICENSE-MIT
README.md
build.rs
bat/assets/syntaxes/02_Extra/Manpage.sublime-syntax

164 lines
4.2 KiB
YAML
Vendored

%YAML 1.2
---
# http://www.sublimetext.com/docs/3/syntax.html
name: Manpage
file_extensions:
- man
scope: source.man
variables:
section_heading: '^(?!#)\S.*$'
command_line_option: '(--?[A-Za-z0-9][_A-Za-z0-9-]*)'
contexts:
prototype:
# ignore syntax test lines
- match: '^#'
push:
- meta_scope: comment.syntax-test.man
- match: $\n?
pop: true
main:
- match: ^
push: first_line
first_line:
- match: '([A-Z0-9_\-]+)(\()([^)]+)(\))\s*'
captures:
1: meta.preprocessor.man
2: keyword.operator.man
3: string.quoted.other.man
4: keyword.operator.man
push:
- match: (?:[\w'-]+|\s(?!\s))
scope: markup.heading.title.man
- match: \s\s
pop: true
- match: '(?=\S|$)'
pop: true
- match: '$'
set: body
body:
# English, ..., ..., ..., Russian, ...
- match: '^(?:SYNOPSIS|SYNTAX|SINTASSI|SKŁADNIA|СИНТАКСИС|書式)'
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}})'
function-call:
- match: '\b([A-Za-z0-9_\-]+)(\()([^)]*)(\))'
captures:
1: entity.name.function.man
2: keyword.operator.man
3: constant.numeric.man
4: keyword.operator.man
options:
# command-line options like --option=value, --some-flag, or -x
- match: '^[ ]{7}(?=-)'
push: expect-command-line-option
- match: '(?:[^a-zA-Z0-9_-]|^|\s){{command_line_option}}'
captures:
1: entity.name.command-line-option
push:
- match: '='
scope: keyword.operator.man
set:
- match: '[^],.() ]+'
scope: variable.parameter.man
pop: true
- match: $
pop: true
- match: ''
pop: true
- include: function-call
- include: c-code
expect-command-line-option:
- match: '[A-Za-z0-9-]+'
scope: entity.name.command-line-option.man
- match: '(\[)(=)'
captures:
1: punctuation.section.brackets.begin.man
2: keyword.operator.man
push: [command-line-option-or-pipe, expect-parameter]
- match: '\['
push:
- meta_scope: entity.name.command-line-option.man
- match: '\]'
pop: true
- match: '='
scope: keyword.operator.man
push: expect-parameter
- match: (?=.*\.)
pop: true
- match: '\s'
push: expect-parameter
- match: '(,)\s*'
captures:
1: punctuation.separator.man
- match: $|(?=\])
pop: true
expect-parameter:
- match: '[A-Za-z0-9-]+'
scope: variable.parameter.man
- match: (?=\s+\|)
pop: true
- match: \|
scope: keyword.operator.logical.man
- match: '\['
scope: punctuation.section.brackets.begin.man
push:
- match: '\]'
scope: punctuation.section.brackets.end.man
pop: true
- include: expect-parameter
- match: '$|(?=[],]|{{command_line_option}})'
pop: true
c-code:
- 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
- match: \[
scope: punctuation.section.brackets.begin.man
push: command-line-option-or-pipe
- include: options
command-line-option-or-pipe:
- match: (\|)\s*
captures:
1: keyword.operator.logical.man
#- match: (?={{command_line_option}})
- match: \w+-\w+
- match: (?=-)
push:
- match: (?=\s*\|)
pop: true
- include: expect-command-line-option
- match: \]
scope: punctuation.section.brackets.end.man
pop: true
- match: \[
scope: punctuation.section.brackets.begin.man
push: command-line-option-or-pipe