From d10135e2c47c998457716667e8429942d39ace7a Mon Sep 17 00:00:00 2001 From: Nick Treleaven Date: Sun, 3 Apr 2022 21:41:02 +0100 Subject: [PATCH] vdoc: HTML highlight generic function as function, not name (#13923) --- cmd/tools/vdoc/html.v | 3 ++- cmd/tools/vdoc/utils.v | 4 ++-- vlib/builtin/int.v | 1 + vlib/builtin/string.v | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/cmd/tools/vdoc/html.v b/cmd/tools/vdoc/html.v index 4a2e8f4133..efba062bb4 100644 --- a/cmd/tools/vdoc/html.v +++ b/cmd/tools/vdoc/html.v @@ -326,7 +326,8 @@ fn html_highlight(code string, tb &ast.Table) string { tok_typ = .builtin } else if next_tok.kind == .lcbr { tok_typ = .symbol - } else if next_tok.kind == .lpar { + } else if next_tok.kind == .lpar + || (!tok.lit[0].is_capital() && next_tok.kind == .lt) { tok_typ = .function } else { tok_typ = .name diff --git a/cmd/tools/vdoc/utils.v b/cmd/tools/vdoc/utils.v index 63f5aa0325..08f800abd6 100644 --- a/cmd/tools/vdoc/utils.v +++ b/cmd/tools/vdoc/utils.v @@ -206,7 +206,7 @@ fn color_highlight(code string, tb &ast.Table) string { } else if next_tok.kind in [.lcbr, .rpar, .eof, .comma, .pipe, .name, .rcbr, .assign, .key_pub, .key_mut, .pipe, .comma] && prev.kind in [.name, .amp, .rsbr, .key_type, .assign, .dot, .question, .rpar, .key_struct, .key_enum, .pipe, .key_interface] - && (tok.lit[0].ascii_str().is_upper() || prev_prev.lit in ['C', 'JS']) { + && (tok.lit[0].is_capital() || prev_prev.lit in ['C', 'JS']) { tok_typ = .symbol } else if next_tok.kind in [.lpar, .lt] { tok_typ = .function @@ -214,7 +214,7 @@ fn color_highlight(code string, tb &ast.Table) string { if tok.lit in ['C', 'JS'] { tok_typ = .prefix } else { - if tok.lit[0].ascii_str().is_upper() { + if tok.lit[0].is_capital() { tok_typ = .symbol } else { tok_typ = .module_ diff --git a/vlib/builtin/int.v b/vlib/builtin/int.v index efd93a47ad..236448bcd1 100644 --- a/vlib/builtin/int.v +++ b/vlib/builtin/int.v @@ -449,6 +449,7 @@ pub fn (nn u64) hex_full() string { } // str returns the contents of `byte` as a zero terminated `string`. +// See also: [`byte.ascii_str`](#byte.ascii_str) // Example: assert byte(111).str() == '111' pub fn (b byte) str() string { return int(b).str_l(7) diff --git a/vlib/builtin/string.v b/vlib/builtin/string.v index 70bbd013dc..c1a8f81ab2 100644 --- a/vlib/builtin/string.v +++ b/vlib/builtin/string.v @@ -1208,6 +1208,7 @@ pub fn (s string) to_upper() string { } // is_upper returns `true` if all characters in the string is uppercase. +// See also: [`byte.is_capital`](#byte.is_capital) // Example: assert 'HELLO V'.is_upper() == true [direct_array_access] pub fn (s string) is_upper() bool {