diff options
author | bptato <nincsnevem662@gmail.com> | 2022-07-29 22:54:51 +0200 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2022-07-29 22:54:51 +0200 |
commit | 0dfe2a310db3fb7492ed448235e0757042f0f5ca (patch) | |
tree | 676aaa8d37eeaf530a53224e4463976f6b6151bb | |
parent | 54f4d71325c4f12b23113c945625796bda78e3c6 (diff) | |
download | chawan-0dfe2a310db3fb7492ed448235e0757042f0f5ca.tar.gz |
Increase tokenizer buffer size, add mark color option
-rw-r--r-- | res/config.toml | 4 | ||||
-rw-r--r-- | src/client.nim | 1 | ||||
-rw-r--r-- | src/config/config.nim | 15 | ||||
-rw-r--r-- | src/html/htmltokenizer.nim | 2 | ||||
-rw-r--r-- | src/io/buffer.nim | 3 |
5 files changed, 23 insertions, 2 deletions
diff --git a/res/config.toml b/res/config.toml index 6d7cf81f..530247f4 100644 --- a/res/config.toml +++ b/res/config.toml @@ -1,6 +1,10 @@ [general] double-width-ambiguous = false +[display] +# Options: black, red, green, yellow, blue, magenta, cyan, white, terminal +mark-color = "cyan" + [page] q = 'QUIT' h = 'CURSOR_LEFT' diff --git a/src/client.nim b/src/client.nim index 5d033458..6d729572 100644 --- a/src/client.nim +++ b/src/client.nim @@ -122,6 +122,7 @@ proc discardBuffer(client: Client) = proc setupBuffer(client: Client) = let buffer = client.buffer buffer.userstyle = client.userstyle + buffer.markcolor = gconfig.markcolor buffer.load() buffer.render() buffer.gotoAnchor() diff --git a/src/config/config.nim b/src/config/config.nim index 97b344e2..b35b03f5 100644 --- a/src/config/config.nim +++ b/src/config/config.nim @@ -4,6 +4,7 @@ import strutils import streams import config/toml +import types/color import utils/twtstr type @@ -44,6 +45,7 @@ type lemap*: ActionMap stylesheet*: string ambiguous_double*: bool + markcolor*: CellColor func getRealKey(key: string): string = var realk: string @@ -153,6 +155,19 @@ proc parseConfig(config: var Config, dir: string, t: TomlValue) = else: discard if "inline" in css: config.stylesheet &= css["inline"].s + if "display" in t: + let display = t["display"] + if "mark-color" in display: + case display["mark-color"].s + of "black": config.markcolor = CellColor(rgb: false, color: 40u8) + of "red": config.markcolor = CellColor(rgb: false, color: 41u8) + of "green": config.markcolor = CellColor(rgb: false, color: 42u8) + of "yellow": config.markcolor = CellColor(rgb: false, color: 43u8) + of "blue": config.markcolor = CellColor(rgb: false, color: 44u8) + of "magenta": config.markcolor = CellColor(rgb: false, color: 45u8) + of "cyan": config.markcolor = CellColor(rgb: false, color: 46u8) + of "white": config.markcolor = CellColor(rgb: false, color: 47u8) + of "terminal": config.markcolor = defaultColor proc parseConfig(config: var Config, dir: string, stream: Stream) = config.parseConfig(dir, parseToml(stream)) diff --git a/src/html/htmltokenizer.nim b/src/html/htmltokenizer.nim index 4f81f6a6..a1c894c8 100644 --- a/src/html/htmltokenizer.nim +++ b/src/html/htmltokenizer.nim @@ -97,7 +97,7 @@ func `$`*(tok: Token): string = of COMMENT: fmt"{tok.t} {tok.data}" of EOF: fmt"{tok.t}" -const bufSize = 512 +const bufSize = 4096 const copyBufSize = 16 proc newTokenizer*(s: Stream): Tokenizer = result.sbuf = newString(bufSize) diff --git a/src/io/buffer.nim b/src/io/buffer.nim index dc8df009..7bc181a5 100644 --- a/src/io/buffer.nim +++ b/src/io/buffer.nim @@ -66,6 +66,7 @@ type next*: Buffer userstyle*: CSSStylesheet loader*: FileLoader + markcolor*: CellColor proc newBuffer*(): Buffer = new(result) @@ -704,7 +705,7 @@ proc gotoAnchor*(buffer: Buffer) = proc addMark*(buffer: Buffer, x, y, width: int): Mark = assert y < buffer.lines.len var format = newFormat() - format.reverse = true + format.bgcolor = buffer.markcolor result = Mark(x: x, width: width, format: format) buffer.lines[y].marks.add(result) |