From 282fa65c0d547c89eac6cd4c7e91496a280bece7 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 26 Apr 2026 02:00:18 +0200 Subject: Curses: support arbitrary RGB colors * Instead of supporting only 16 predefined RGB placeholder values in Scintilla messages and styles, you can now use arbitrary RGB values and colors are allocated via the terminal on the fly. You no longer need to call 3EJ to change the default color palette. * The placeholder RGB values are still available. Since you will usually want exact RGB values when using anything outside of the range of 16 default colors and the RGB placeholders will not always exactly correspond to their RGB value, you can now call `0,3EJ` to ignore the default palette and allocate all colors dynamically. * Allows for more than 16 colors on the screen simultaneously. Also simplifies the solarized.tes color scheme. Since both Scinterm and SciTECO try not to touch the 16 default colors, you also no longer have to deal with restoring the palette after program termination (which was never reliable anyway). * Color schemes with non-default colors (solarized.tes) may now be broken on TERM=linux-16color (Linux VT) since Scinterm will get only 8 colors, but solarized.tes needs 16. --- TODO | 8 -------- 1 file changed, 8 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 6d6c581..678121d 100644 --- a/TODO +++ b/TODO @@ -769,14 +769,6 @@ Features: To format a hex byte, you would write 16^R 2,Qa\ ^D. The same extension might not be desirable for =/==/===, unless they are colon-modified?. - * Curses: allow freely using RGB colors instead of only the constants - corresponding with the 16 default curses colors. - Scinterm v5.5 supports that. This means we also need a hash map for - mapping RGB color values to curses color numbers, analoguous to what - Scinterm does. - The problem of Scinterm reusing the same color namespace both for - arbitrary RGB values and for predefined special constants however - hasn't been solved yet. * Scinterm: INDIC_PLAIN and INDIC_STRIKE could theoretically be supported. PDCurses has A_STRIKETHROUGH. This would require Scintilla API changes, though, as it currently calls SurfaceImpl::FillRectangle(), -- cgit v1.2.3