Robert Roessler wrote:
You might look at the LexCaml source - specifically, the handling for the SCE_CAML_IDENTIFIER case element.

Whenever it looks like we have hit a token which *could* be either an identifier *or* a keyword, it is initially colored as an identifier. Then, when we come to the end of the token, we check to see if it has a match in any of the 3 keyword lists. If so, then we recolor it (by changing the state/color) as a keyword of the appropriate color.

Thank you, but for the quick look I took, it seems to be the classical sc.ChangeState() happening just after we quit the identifier state, ie. on first non-word char found after this identifier. ChangeState can only change the latest give state, on the current segment, ie. from the latest SetState.

I need to recolorize a full segment, which can have various styles already, often after meeting other styles as well:

MsgBox = value <--- We meet DEFAULT spaces before finding the = that tell to recolorize MsgBox from COMMAND (back) to IDENTIFIER.

This+Is*A.Legal/Label!:: <-- When I see the double colon, I must recolorize the whole segment as label...

--
Philippe Lhoste
--  (near) Paris -- France
--  http://Phi.Lho.free.fr
--  --  --  --  --  --  --  --  --  --  --  --  --  --
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to