On 26/05/2010 13:24, Mattias Gärtner wrote:
Zitat von Graeme Geldenhuys <graemeg.li...@gmail.com>:
2010/5/26 Zaher Dirkey :
I meant the mechanism of SynEdit not SynEdit it self, Let us call "Line
Feeding Highlighting", LFH if you like :P
LFH normally comes with a line state (some booleans or counters). Same
as synedit. But synedit supports arbitrary states (the default
implementation implements one stack). You need a stack for different
keyword sets. For example for the method modifiers. This is not fully
used in the synedit pascal highlighter, because IMO highlighting some
variables as keywords is not a big deal and because IFDEFs and macros
make it hard to implement fully.
For example:
procedure DoIt(
{$IFNDEF FPC} );
{$ELSE} i: integer = 0); inline; macro_modifier;
{$ENDIF}
IFDEF pose a bigger problem
if foo then begin
bar();
{$IFDEF a} end; {$endif}
xyz();
{$IFnDEF a} end; {$endif}
The ifdef maynot be possible to evaluate (within the highlighter,
codetool could)
for xyz => 2 states are possible, and would need to be maintained.
with more ifdef, any number of states for a single line are possible.
So IFDEf should always balance egin/end correctly => otherwise there is
currently no way to deal with them.
----
As for using special colors for "inactive" code => that isn't something
the highlighte would do (because the highlighter is per file => it does
have no way to know)
A special IDE specific SynEdit extension (that combines info from the
highlighter and codetools) will one day deal with this
Martin
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus