<div dir="ltr"><div>Hi Maxim<br></div><div><br>The `js` issue is not new. It is an old issue.<br><br>Here is an example, please look at line 53:<br><a href="https://www.flickr.com/photos/othree/25460998766/">https://www.flickr.com/photos/othree/25460998766/</a><br></div><div><br></div><div>Every keywords are highlighted.<br></div><div><br></div><div>My change made `location` and other `ngxDirectiveBlock` are same as other directive.<br></div><div>So the issue appear on `ngxDirectiveBlock` groups also.<br></div><div>I think I can fix this by highlight regexp (plan to use same color as string).<br></div>But will need more test.<br><div>Do you know where I can get samples of complex nginx conf?<br></div><div><br><br></div><div>The last part you talk about is to detect blocks  explicitly.<br></div><div>Actually, the old `ngxBloxk` is a fake block.<br></div><div>It start at beginning of a line `^` and ends at `{` .<br></div><div>So I decide to remove it.<br><br></div><div>I don't think we really need to detect block.<br></div><div>At lease I don't see real benefit for now.<br></div><div><br></div><div>If we really do detect blocks.<br></div><div>The major advantage is more strict directive definition.<br></div><div>For example:<br></div><div>* server block should not contain server directive<br></div><div>* location block should not place on root level (I even can mark them as Error)<br></div><div><br></div><div>But nginx conf can include other conf file anywhere(in any block).<br></div><div>So conf files like uwsgi.conf[1] will not have correct syntax highlight.<br></div><div><br><br></div><div>And last thing is I plan to support lua, brotli and maybe njs module.<br></div><div>So I will send another patch.<br></div><div><br>[1]:<a href="https://github.com/nginx/nginx/blob/master/conf/uwsgi_params">https://github.com/nginx/nginx/blob/master/conf/uwsgi_params</a><br></div><div><br><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-03-04 1:48 GMT+08:00 Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<span class=""><br>
On Thu, Mar 03, 2016 at 11:21:51PM +0800, OOO wrote:<br>
<br>
> More info about this patch.<br>
><br>
> Before the patch<br>
> <a href="https://www.flickr.com/photos/othree/24844596133/" rel="noreferrer" target="_blank">https://www.flickr.com/photos/othree/24844596133/</a><br>
><br>
> After the patch<br>
> <a href="https://www.flickr.com/photos/othree/25471327825/" rel="noreferrer" target="_blank">https://www.flickr.com/photos/othree/25471327825/</a><br>
><br>
> The major difference is the `rewrite ` directives are correct now.<br>
> Old syntax had wrong syntax on rewrite if following regexp have character<br>
> `{`.<br>
> Which have special function in regexp.<br>
<br>
</span>Another difference is the "js" string now incorrectly highlited<br>
now in the regexp location.  That's clearly a regression.<br>
<span class=""><br>
> The easiest way to solve this issue is to remove the `ngxBlock` definition.<br>
><br>
> Cons of this patch:<br>
><br>
> Old syntax have some debug feature. (incorrect directive follow by `{}`<br>
> block will not highlight)<br>
> New syntax don't have this feature.<br>
><br>
> If want to have both correct syntax and debug feature.<br>
> Will lead to more complete syntax definition.<br>
> And will be slower.<br>
<br>
</span>I tend to think that explicit detection of blocks is a good<br>
feature, and it would be wrong to remove it.  Especially as it<br>
causes other problems.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" rel="noreferrer" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">OOO</div>
</div>