From: Kazutoshi S. <k_s...@f2...> - 2008-03-02 07:23:36
|
kp...@us... wrote: > Revision: 12059 (snip) > Added regex highlight in javascript mode (#1042013) (snip) > --- jEdit/trunk/modes/javascript.xml 2008-03-01 21:25:12 UTC (rev 12058) > +++ jEdit/trunk/modes/javascript.xml 2008-03-01 22:20:41 UTC (rev 12059) > @@ -46,6 +46,7 @@ > <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS> > <SEQ TYPE="OPERATOR">)</SEQ> > > + <SEQ_REGEXP HASH_CHARS="/" TYPE="LITERAL4">/.*/</SEQ_REGEXP> > <SEQ TYPE="COMMENT2">//--></SEQ> > <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN> This causes spurious matches on beginning of comment ("//") or repeated divisions ("a /= b / c"). I made some workarounds in ruby mode, like the following. > <!-- /regexp?/ --> > <!-- If a regexp begins with a whitespace (including a newline), > the beginning "/" is wrongly treated as a division operator. > But such regexp is rare enough and one can use %r notations > or write like "/\ ..." to force jEdit to treat it as a > regexp. --> > <SEQ_REGEXP HASH_CHAR="/" TYPE="OPERATOR">/=?($|\s)</SEQ_REGEXP> > <!-- AT_WORD_START is TRUE not to handle "a/b/c". --> > <SPAN AT_WORD_START="TRUE" TYPE="LITERAL3" DELEGATE="RegexpLiteral"> > <BEGIN>/</BEGIN> > <END>/</END> > </SPAN> I don't know whether this also works or not for javascript. It will need additional care for "//" which doesn't exist in ruby. -- k_satoda |