In Terminals (seit Windows 10 auch bei M$) war es schon immer möglich Text mit Escape-Sequenzen zu formatieren.
In stark begrenztem Umfang ist das auch im SciTE-Output möglich. Es lassen sich 7 Textfarben (standard oder fett) auf einer etwas gewöhnungsbedürftigen Hintergrundfarbe setzen. Background ist nicht änderbar.
Voraussetzung: In der SciTEUser.properties der Eintrag lexer.errorlist.escape.sequences=1
Aber eigene Settings (k.A. welche) können den Erfolg verhindern. Ich habe es nur in einer nackten Installation von SciTE hinbekommen. Deshalb testet bitte mal in eurem SciTE.
EDIT: Fehler im AutoIt-Skript korrigiert.
Global Const $RED = '\27[31m'
Global Const $REDBOLD = '\27[31;1m'
Global Const $GREEN = '\27[32m'
Global Const $GREENBOLD = '\27[32;1m'
Global Const $YELLOW = '\27[33m'
Global Const $YELLOWBOLD = '\27[33;1m'
Global Const $BLUE = '\27[34m'
Global Const $BLUEBOLD = '\27[34;1m'
Global Const $PINK = '\27[35m'
Global Const $PINKBOLD = '\27[35;1m'
Global Const $CYAN = '\27[36m'
Global Const $CYANBOLD = '\27[36;1m'
Global Const $WHITE = '\27[37m'
Global Const $WHITEBOLD = '\27[37;1m'
Global Const $DEF = '\27[0m'
ConsoleWrite($RED & 'List ' & $CYAN & 'of ' & $BLUEBOLD & 'colors' & $PINKBOLD & '!' & $DEF & @CRLF)
Global $aColor[][2] = [[$RED,'RED'],[$REDBOLD,'REDBOLD'],[$GREEN,'GREEN'],[$GREENBOLD,'GREENBOLD'],[$YELLOW,'YELLOW'],[$YELLOWBOLD,'YELLOWBOLD'], _
[$BLUE,'BLUE'],[$BLUEBOLD,'BLUEBOLD'],[$PINK,'PINK'],[$PINKBOLD,'PINKBOLD'],[$CYAN,'CYAN'],[$CYANBOLD,'CYANBOLD'],[$WHITE,'WHITE'],[$WHITEBOLD,'WHITEBOLD']]
For $i = 0 To Ubound($aColor) -1
ConsoleWrite($aColor[$i][0] & $aColor[$i][1] & $DEF & @CRLF)
Next
Alles anzeigen
fg = {
red='\27[31m',
redbold='\27[31;1m',
green='\27[32m',
greenbold='\27[32;1m',
yellow='\27[33m',
yellowbold='\27[33;1m',
blue='\27[34m',
bluebold='\27[34;1m',
pink='\27[35m',
pinkbold='\27[35;1m',
cyan='\27[36m',
cyanbold='\27[36;1m',
white='\27[37m',
whitebold='\27[37;1m',
def='\27[0m'}
print('\n'..fg.red..' List '..fg.cyan..'of '..fg.bluebold..'colors'..fg.pinkbold..'!\n'..fg.def)
fg_idx = {}
for color, seq in pairs (fg) do
table.insert(fg_idx, {color, seq})
end
table.sort(fg_idx, function(a,b) return a[2] < b[2] end)
for i=1, #fg_idx do
if tostring(fg_idx[i][1]) ~= 'def' then print(' '..fg_idx[i][2]..tostring(fg_idx[i][1]):upper()..fg.def) end
end
Alles anzeigen
Wenn es klappt, sieht es so aus:
EDIT:
Ursache ist das verwendete Subsystem innerhalb von SciTE:
- AutoIt-Skripte verwenden 0 - windows
- Lua-Skripte verwenden 3 - lua / director
Und da Windows von Haus aus diese Esc-Sequenzen nicht erkennt (außer in der Terminal-Umgebung), werden diese als reiner Text behandelt.