diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-10-25 02:39:11 +0100 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-10-25 11:38:05 +0100 |
| commit | e0bf13622b0922252439e3fa8b43df9877678d75 (patch) | |
| tree | 629c040970a3c6869a10bf3c74a853e5eed2d908 /lib | |
| parent | c4146a9e57a897c5393e1c4999110fd95208f43f (diff) | |
numbers are separate parser states and there are syntactic octal and hexadecimal constants nowHEADmaster-fmsbw-cimaster
* Instead of every digit being a stack-modifying standalone
command, there is a single continuous parser state (teco_state_number)
now - even though it has certain unique characteristics.
They are consequently documented in the ARITHMETICS AND
EXPRESSIONS chapter of sciteco(7).
* A number will therefore be rubbed out entirely by CTRL+W,
including a possible @-modifier.
* (!) Spaces within constants are no longer ignored, but will push
separate numbers to the stack instead (`1 2 3` pushes 3 numbers).
The significance of the `,` operator is thus further reduced.
* (!) You can no longer "append" to numbers on the stack as in
`Qa001` - this was never actually used and caused more confusion.
* (!) Digits outside the current radix are no longer accepted.
E.g. digit 2 after `2^R`. This feature was also never used.
* (!) Octal constants are supported with leading zeros as in C.
This works regardless of the current radix set via `8^R` or `^O`.
It remains to see whether this is actually useful or is rather
annoying (since every constant beginning with 0 is automatically
octal, you cannot left-pad arbitrary numbers with 0).
* Hexadecimal constants are supported by at-modifying them as in
`@0ff`. They must still begin with a digit 0-9 and since A-F are
valid SciTECO commands, you may need additional spaces to separate
hexadecimal constants from regular commands as in `@0ff D`.
During syntax highlighting the number style is extended back to the
at-sign.
Note: Hexadecimal constants couldn't have been realized via
`16^R` (or some shortcut) since that depends on runtime state, but
we must know during parsing whether symbols A-F are part of the
number of regular SciTECO commands.
* The new hexadecimal constants are used in the color schemes now.
Thanks to them, we no longer need workarounds like the "color.rgb"
macro.
* Since numbers don't have a dedicated terminator character, but any
letter may terminate it, the number state must behave similar to a
start state. Consequently, hexadecimal constants will currently be
auto-case-folded if you enabled this feature.
I recommend not to write hex constants in upper-case, though.
Perhaps this should be worked around with a custom process_edit_cmd()
callback.
* Test suite updated
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/color.tes | 74 | ||||
| -rw-r--r-- | lib/colors/solarized.tes | 32 |
2 files changed, 50 insertions, 56 deletions
diff --git a/lib/color.tes b/lib/color.tes index a45c646..c2a8691 100644 --- a/lib/color.tes +++ b/lib/color.tes @@ -1,57 +1,51 @@ -!* <r,g,b>M[color.rgb] -> Scintilla color *! -@[color.rgb]{ - U.bU.gU.r - (Q.r # Q.g*256 # Q.b*256*256) -} - 0EJ-1"= !* - * The Curses RGB values are hardcoded by Scinterm + * The Curses BGR values are hardcoded by Scinterm * and do not necessarily correspond to the renditions by * terminal emulators. *! !* These 8 colors should be available on every system *! - 000,000,000:M[color.rgb]U[color.black] - 128,000,000:M[color.rgb]U[color.red] - 000,128,000:M[color.rgb]U[color.green] - 128,128,000:M[color.rgb]U[color.yellow] - 000,000,128:M[color.rgb]U[color.blue] - 128,000,128:M[color.rgb]U[color.magenta] - 000,128,128:M[color.rgb]U[color.cyan] - 192,192,192:M[color.rgb]U[color.white] + @0000000U[color.black] + @0000080U[color.red] + @0008000U[color.green] + @0008080U[color.yellow] + @0800000U[color.blue] + @0800080U[color.magenta] + @0808000U[color.cyan] + @0c0c0c0U[color.white] !* Light color variants, might not be available on every terminal *! - 064,064,064:M[color.rgb]U[color.lblack] - 255,000,000:M[color.rgb]U[color.lred] - 000,255,000:M[color.rgb]U[color.lgreen] - 255,255,000:M[color.rgb]U[color.lyellow] - 000,000,255:M[color.rgb]U[color.lblue] - 255,000,255:M[color.rgb]U[color.lmagenta] - 000,255,255:M[color.rgb]U[color.lcyan] - 255,255,255:M[color.rgb]U[color.lwhite] + @0404040U[color.lblack] + @00000ffU[color.lred] + @000ff00U[color.lgreen] + @000ffffU[color.lyellow] + @0ff0000U[color.lblue] + @0ff00ffU[color.lmagenta] + @0ffff00U[color.lcyan] + @0ffffffU[color.lwhite] | !* - * The GTK RGB values are the ones used by common terminal + * The GTK BGR values are the ones used by common terminal * emulators. This should ensure that color schemes based * on the 16 default colors look similar on Curses and GTK. *! - 000,000,000:M[color.rgb]U[color.black] - 205,000,000:M[color.rgb]U[color.red] - 000,205,000:M[color.rgb]U[color.green] - 205,205,000:M[color.rgb]U[color.yellow] - 000,000,238:M[color.rgb]U[color.blue] - 205,000,205:M[color.rgb]U[color.magenta] - 000,205,205:M[color.rgb]U[color.cyan] - 229,229,229:M[color.rgb]U[color.white] + @0000000U[color.black] + @00000cdU[color.red] + @000cd00U[color.green] + @000cdcdU[color.yellow] + @0ee0000U[color.blue] + @0cd00cdU[color.magenta] + @0cdcd00U[color.cyan] + @0e5e5e5U[color.white] - 127,127,127:M[color.rgb]U[color.lblack] - 255,000,000:M[color.rgb]U[color.lred] - 000,255,000:M[color.rgb]U[color.lgreen] - 255,255,000:M[color.rgb]U[color.lyellow] - 092,092,255:M[color.rgb]U[color.lblue] - 255,000,255:M[color.rgb]U[color.lmagenta] - 000,255,255:M[color.rgb]U[color.lcyan] - 255,255,255:M[color.rgb]U[color.lwhite] + @07f7f7fU[color.lblack] + @00000ffU[color.lred] + @000ff00U[color.lgreen] + @000ffffU[color.lyellow] + @0ff5c5cU[color.lblue] + @0ff00ffU[color.lmagenta] + @0ffff00U[color.lcyan] + @0ffffffU[color.lwhite] ' !* <[[flags,]bg,]fg,style>M[color.set] *! diff --git a/lib/colors/solarized.tes b/lib/colors/solarized.tes index aeb9cb9..529df74 100644 --- a/lib/colors/solarized.tes +++ b/lib/colors/solarized.tes @@ -19,22 +19,22 @@ *! 0,3EJ -1,-1,7EJ !* no palette & no default colors *! -000,043,054:M[color.rgb]U[color.base03] -007,054,066:M[color.rgb]U[color.base02] -088,110,117:M[color.rgb]U[color.base01] -101,123,131:M[color.rgb]U[color.base00] -131,148,150:M[color.rgb]U[color.base0] -147,161,161:M[color.rgb]U[color.base1] -238,232,213:M[color.rgb]U[color.base2] -253,246,227:M[color.rgb]U[color.base3] -181,137,000:M[color.rgb]U[color.yellow] -203,075,022:M[color.rgb]U[color.orange] -220,050,047:M[color.rgb]U[color.red] -211,054,130:M[color.rgb]U[color.magenta] -108,113,196:M[color.rgb]U[color.violet] -038,139,210:M[color.rgb]U[color.blue] -042,161,152:M[color.rgb]U[color.cyan] -133,153,000:M[color.rgb]U[color.green] +@0362b00U[color.base03] +@0423607U[color.base02] +@0756e58U[color.base01] +@0837b65U[color.base00] +@0969483U[color.base0] +@0a1a193U[color.base1] +@0d5e8eeU[color.base2] +@0e3f6fdU[color.base3] +@00089b5U[color.yellow] +@0164bcbU[color.orange] +@02f32dcU[color.red] +@08236d3U[color.magenta] +@0c4716cU[color.violet] +@0d28b26U[color.blue] +@098a12aU[color.cyan] +@0009985U[color.green] :Q[solarized.light]"< 0U[solarized.light] ' @[solarized.light]{ |
