vdoc: highlight `..`, `...` as punctuation & postfix ops as operators (#13924)

pull/13930/head
Nick Treleaven 2022-04-04 07:21:54 +01:00 committed by GitHub
parent 1211b2e941
commit 91b40304b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View File

@ -348,14 +348,15 @@ fn html_highlight(code string, tb &ast.Table) string {
.key_true, .key_false {
tok_typ = .boolean
}
.lpar, .lcbr, .rpar, .rcbr, .lsbr, .rsbr, .semicolon, .colon, .comma, .dot {
.lpar, .lcbr, .rpar, .rcbr, .lsbr, .rsbr, .semicolon, .colon, .comma, .dot,
.dotdot, .ellipsis {
tok_typ = .punctuation
}
else {
if token.is_key(tok.lit) || token.is_decl(tok.kind) {
tok_typ = .keyword
} else if tok.kind == .decl_assign || tok.kind.is_assign() || tok.is_unary()
|| tok.kind.is_relational() || tok.kind.is_infix() {
|| tok.kind.is_relational() || tok.kind.is_infix() || tok.kind.is_postfix() {
tok_typ = .operator
}
}

View File

@ -241,7 +241,8 @@ fn color_highlight(code string, tb &ast.Table) string {
.key_true, .key_false {
tok_typ = .boolean
}
.lpar, .lcbr, .rpar, .rcbr, .lsbr, .rsbr, .semicolon, .colon, .comma, .dot {
.lpar, .lcbr, .rpar, .rcbr, .lsbr, .rsbr, .semicolon, .colon, .comma, .dot,
.dotdot, .ellipsis {
tok_typ = .punctuation
}
.key_none {
@ -251,7 +252,7 @@ fn color_highlight(code string, tb &ast.Table) string {
if token.is_key(tok.lit) || token.is_decl(tok.kind) {
tok_typ = .keyword
} else if tok.kind == .decl_assign || tok.kind.is_assign() || tok.is_unary()
|| tok.kind.is_relational() || tok.kind.is_infix() {
|| tok.kind.is_relational() || tok.kind.is_infix() || tok.kind.is_postfix() {
tok_typ = .operator
}
}

View File

@ -494,6 +494,11 @@ pub fn (kind Kind) is_infix() bool {
.right_shift, .unsigned_right_shift, .arrow]
}
[inline]
pub fn (kind Kind) is_postfix() bool {
return kind in [.inc, .dec, .question]
}
pub fn kind_to_string(k Kind) string {
return match k {
.unknown { 'unknown' }