(partly) solution for the Tab-Problem:
codehelp.pas Line 2820 ff
case Result[p] of
' ',#255: Result:=copy(Result,1,p-1)+' '+copy(Result,p+1,length(Result));
#9: //<- handling of Tab
begin
po := p;
while (po>1) and not (result[po] in [#10,#13]) do
dec(po); // <- Todo: Maybe a second loop to recount with tab.
po := 8-((p-po-1) mod 8) ; // <- Todo: replace tab with the Actual.configured Tabsize
Result:=copy(Result,1,p-1)+StringReplace(StringOfChar(' ',po),' ',' ',[rfReplaceAll])+copy(Result,p+1,length(Result));
end;
'<': Result:=copy(Result,1,p-1)+'<'+copy(Result,p+1,length(Result));
One Tab per line is ok,
ToDo: more than one tab & actual configured tabsize