Module: reefvision.syntax

Source: ./reefvision/syntax.reef


Overview

Kate-style syntax coloring: TOML language files + theme roles. Unknown files stay LANG_NONE (plain). Multiline state is a context stack.


Types

SyntaxScheme

Fields:

Name Type
name string
bg cell.Color
fg cell.Color
keyword cell.Color
type_fg cell.Color
string_fg cell.Color
comment cell.Color
number cell.Color
operator cell.Color
function cell.Color
preprocessor cell.Color
variable cell.Color
constant cell.Color
alert cell.Color
error cell.Color
others cell.Color
special cell.Color
attribute cell.Color
builtin cell.Color
gutter_fg cell.Color
gutter_bg cell.Color
keyword_bold bool

Rule

Fields:

Name Type
kind int
needle string
list string
attribute string
next string

Ctx

Fields:

Name Type
name string
attribute string
line_end string
rules [Rule]
rule_n int

Lang

Fields:

Name Type
id string
title string
casesensitive bool
extensions [string]
ext_n int
filenames [string]
file_n int
list_name [string]
list_pack [string]
list_n int
item_name [string]
item_role [string]
item_n int
ctxs [Ctx]
ctx_n int

HlStack

Fields:

Name Type
ids [int]
n int

Functions

fn rgb(r: int, g: int, b: int): cell.Color

fn scheme_make(name: string, bg: cell.Color, fg: cell.Color, kw: cell.Color, ty: cell.Color, strc: cell.Color, com: cell.Color, num: cell.Color, op: cell.Color, fun: cell.Color, pp: cell.Color, varc: cell.Color, cst: cell.Color, al: cell.Color, err: cell.Color, oth: cell.Color, sp: cell.Color, attr: cell.Color, bi: cell.Color, gfg: cell.Color, gbg: cell.Color, bold: bool): SyntaxScheme

fn scheme_default(): SyntaxScheme

fn scheme_darcula(): SyntaxScheme

fn scheme_highcontrast(): SyntaxScheme

fn scheme_paper(): SyntaxScheme

fn scheme_monokai(): SyntaxScheme

fn scheme_solarized_dark(): SyntaxScheme

fn scheme_solarized_light(): SyntaxScheme

fn scheme_twilight(): SyntaxScheme

fn scheme_vibrant_ink(): SyntaxScheme

fn scheme_dracula(): SyntaxScheme

fn scheme_one_dark(): SyntaxScheme

fn scheme_tokyo_night(): SyntaxScheme

fn scheme_gruvbox(): SyntaxScheme

fn scheme_catppuccin(): SyntaxScheme

fn scheme_everforest(): SyntaxScheme

fn scheme_gruvbox_light(): SyntaxScheme

fn scheme_synthwave(): SyntaxScheme

fn scheme_count(): int

fn scheme_at(idx: int): SyntaxScheme

fn scheme_by_name(name: string): SyntaxScheme

fn scheme_title(sc: SyntaxScheme): string

fn scheme_next(name: string): SyntaxScheme

fn scheme_style(sc: SyntaxScheme, role: string): cell.Style

fn LANG_NONE(): int

fn LANG_REEF(): int

fn LANG_TOML(): int

fn LANG_SH(): int

fn LANG_C(): int

fn RK_CHAR(): int

fn RK_DETECT2(): int

fn RK_STRING(): int

fn RK_KEYWORD(): int

fn RK_IDENT(): int

fn RK_NUMBER(): int

fn RK_HEX(): int

fn max_langs(): int

fn max_ctx(): int

fn max_rules(): int

fn max_lists(): int

fn max_items(): int

fn max_ext(): int

fn max_stack(): int

fn empty_rule(): Rule

fn empty_stack(): HlStack

fn find_id(id: string): int

fn find_ctx(lang: Lang, name: string): option.Option[int]

C16: index of the named context, or None. Returned -1, and lang.ctxs[-1] is a bounds violation rather than a miss.

fn find_list(lang: Lang, name: string): option.Option[int]

fn item_role(lang: Lang, attr: string): string

fn list_has(lang: Lang, list: string, word: string): bool

fn pack_list(doc: toml.TomlDoc, key: string): string

fn load_string_array(doc: toml.TomlDoc, key: string, out: [string], cap: int): int

fn kind_of(t: string): int

fn parse_lang(text: string): Lang

fn load_language_text(text: string): bool

fn lang_id(lang: int): option.Option[string]

The language's id string, or None if lang names no language. C16 / ROADMAP 8.2b: "" was indistinguishable from a language whose id is empty.

fn lang_id_or(lang: int, fallback: string): string

fn lang_title(lang: int): string

fn base_name(path: string): string

fn lang_from_path(path: string): int

fn starts_at(line: string, i: int, needle: string): bool

fn ident_len(line: string, i: int): int

fn hex_len(line: string, i: int): int

fn number_len(line: string, i: int): int

fn match_rule(lang: Lang, rule: Rule, line: string, i: int): int

fn stack_top(st: HlStack): int

fn stack_apply(st: HlStack, lang: Lang, next: string): HlStack

fn apply_line(lang: Lang, line: string, st0: HlStack, buf: cell.CellBuffer, x: int, y: int, sc: SyntaxScheme, clip: cell.Rect, do_paint: bool): HlStack


Procedures

proc register_lang(lang: Lang)

proc load_dir(dir: string)

proc add_syntax_dir(dir: string)

proc ensure_catalog()

proc paint_span(buf: cell.CellBuffer, x: int, y: int, line: string, a: int, b: int, st: cell.Style, clip: cell.Rect)

proc paint_line(buf: cell.CellBuffer, x: int, y: int, line: string, lang: int, sc: SyntaxScheme, clip: cell.Rect)

proc paint_lines(buf: cell.CellBuffer, lines: [string], line_count: int, first: int, vis: int, x: int, y: int, lang: int, sc: SyntaxScheme, clip: cell.Rect)


Generated by reefc doc