Scinterm is a curses platform for Scintilla that supports ncurses, PDCurses, and X/Open Curses.
It is highly recommended to run Scinterm in a UTF-8-aware terminal with a font that supports many UTF-8 characters (“DejaVu Sans Mono” is one of them), since Scinterm makes use of UTF-8 characters when drawing wrap symbols, some marker symbols, and call tip arrows.
Scinterm releases can be found here.
After downloading Scinterm, it is recommended to unzip it into the top-level directory of an
instance of Scintilla, similar to other Scintilla platforms like gtk/ and win32/. After
that, go into the Scinterm directory and run make patch
followed by make
to build the usual
../bin/scintilla.a.
You can optionally build the demo application, jinx, by going into jinx/ and running
make
. Pressing the q
key quits the demo. Note that the demo assumes lexilla
is a sibling to the ../../../scintilla directory, and that it has been built
(i.e. ../../../lexilla/bin/liblexilla.so exists).
Scinterm’s Application Programming Interface (API) documentation is located in the project’s docs/ directory and covers how to create and interact with a Scintilla widget in a terminal application.
If your terminal emulator supports RGB colors, you may use them freely in Scintilla messages.
If you prefer to use your terminal emulator’s palette of up to 16 colors, you must use the colors from the following table, which are listed in Scintilla’s “0xBBGGRR” format.
0x000000 |
Black | 0x404040 |
Light black |
0x000080 |
Red | 0x0000FF |
Light red |
0x008000 |
Green | 0x00FF00 |
Light green |
0x800000 |
Blue | 0xFF0000 |
Light blue |
0x800080 |
Magenta | 0xFF00FF |
Light magenta |
0x808000 |
Cyan | 0xFFFF00 |
Light cyan |
0xC0C0C0 |
White | 0xFFFFFF |
Light white |
Your terminal will map these colors to its palette for display. In some terminals, you may need to set a style’s bold attribute in order to use the light color variant.
Scinterm lacks some Scintilla features due to the terminal’s constraints:
SCI_REGISTERIMAGE
.surface->FillRectangle()
is not supported).INDIC_ROUNDBOX
and INDIC_STRAIGHTBOX
are not drawn (surface->LineTo()
and surface->FillRectangle()
are not supported for drawing indicator shapes and pixmap
surfaces are not supported). Translucent drawing and rounded corners are not supported either.surface->LineTo()
is not supported for drawing some marker shapes).You can contact me personally at code att foicica.com.