mirror of
https://github.com/sharkdp/bat.git
synced 2025-07-25 16:29:41 +01:00
.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
164 lines
4.2 KiB
YAML
Vendored
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
|