From 9b65c090d21dc9da6f9bdda2d41a3f9435efda2b Mon Sep 17 00:00:00 2001 From: Joursoir Date: Sat, 26 Jun 2021 20:17:41 +0000 Subject: init project --- man.sublime-syntax | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 man.sublime-syntax (limited to 'man.sublime-syntax') diff --git a/man.sublime-syntax b/man.sublime-syntax new file mode 100644 index 0000000..ba2de71 --- /dev/null +++ b/man.sublime-syntax @@ -0,0 +1,77 @@ +%YAML 1.2 +--- +name: Man (*roff) +scope: text.man +file_extensions: \d +first_line_match: ^([.'])TH\b + +variables: + # Requests always have a period (‘.’) or an apostrophe (‘'’) + # as the first character of the input line. + cc: ^([.']) # cc - control character + macro: (TH|SH|SS|TP|LP|PP|P|HP|RS|RE)\b + numeric: '\b(-)?[0-9.]+\b' + font_size: (SM|SB)\b + font_alt: (BI|IB|RI|IR|BR|RB)\b + font_style: ([BRI]) + +contexts: + main: + - match: '{{cc}}{{macro}}' + scope: keyword.control.man + push: macros + + - match: '{{cc}}(?={{font_style}})\b' + scope: keyword.control.man + push: font_styles + with_prototype: + - match: $ + pop: true + + - match: (\\f){{font_style}} + captures: + 1: keyword.control.man + 2: constant.character.escape.man + + # Comments begin and finish at the end of the line + - match: \\["#] + scope: comment.man + push: line_comment + + + macros: + - match: '"' + scope: punctuation.definition.string.begin.man + push: string + + - match: '{{numeric}}' + scope: constant.numeric.man + + - match: $ + pop: true + + + font_styles: + - match: B + scope: keyword.control.man + push: + - meta_content_scope: markup.bold.man + - match: R + scope: keyword.control.man + - match: I + scope: keyword.control.man + push: + - meta_content_scope: markup.italic.man + + + line_comment: + - meta_scope: comment.line.man + - match: $ + pop: true + + + string: + - meta_scope: string.quoted.double.man + - match: '"' + scope: punctuation.definition.string.end.man + pop: true -- cgit v1.2.3-18-g5258