mirror of
https://github.com/typst/typst
synced 2025-05-14 17:15:28 +08:00
74 lines
1.7 KiB
YAML
74 lines
1.7 KiB
YAML
%YAML 1.2
|
|
---
|
|
name: S Expressions
|
|
file_extensions: ["sexp"]
|
|
scope: source.sexpr
|
|
|
|
contexts:
|
|
main:
|
|
- match: '(;+).*$'
|
|
scope: comment.line.sexpr
|
|
captures:
|
|
1: punctuation.definition.comment.sexpr
|
|
- match: '#;'
|
|
scope: punctuation.definition.comment.sexpr
|
|
push: comment
|
|
- match: '#\|'
|
|
scope: punctuation.definition.comment.sexpr
|
|
push: block_comment
|
|
|
|
- match: '"'
|
|
scope: punctuation.definition.string.begin.sexpr
|
|
push: string_unquote
|
|
- match: '\d+\.\d+'
|
|
scope: constant.numeric.float.sexpr
|
|
- match: '\d+'
|
|
scope: constant.numeric.integer.sexpr
|
|
- match: '\w+'
|
|
scope: constant.other.sexpr
|
|
- match: '\('
|
|
scope: punctuation.section.parens.begin.sexpr
|
|
push: main_rparen
|
|
- match: '\)'
|
|
scope: invalid.illegal.stray-paren-end
|
|
|
|
string_unquote:
|
|
- meta_scope: string.quoted.double.sexpr
|
|
- match: '""'
|
|
scope: constant.character.escape.sexpr
|
|
- match: '"'
|
|
scope: punctuation.definition.string.end.sexpr
|
|
pop: true
|
|
|
|
main_rparen:
|
|
- match: '\)'
|
|
scope: punctuation.section.parens.end.sexpr
|
|
pop: true
|
|
- include: main
|
|
|
|
comment:
|
|
- meta_scope: comment.block.sexpr
|
|
- match: '\('
|
|
set: comment_rparen
|
|
|
|
comment_lparen:
|
|
- meta_scope: comment.block.sexpr
|
|
- match: '\('
|
|
push: comment_rparen
|
|
- match: '\)'
|
|
scope: invalid.illegal.stray-paren-end
|
|
|
|
comment_rparen:
|
|
- meta_scope: comment.block.sexpr
|
|
- match: '\)'
|
|
pop: true
|
|
- include: comment
|
|
|
|
block_comment:
|
|
- meta_scope: comment.block.sexpr
|
|
- match: '#\|'
|
|
push: block_comment
|
|
- match: '\|#'
|
|
scope: punctuation.definition.comment.sexpr
|
|
pop: true
|