[PATCH] Contrib: vim syntax, support block region

OOO othree at gmail.com
Fri Apr 21 08:39:03 UTC 2017


Actually nginx.vim supports on and off[1] before.
And some option also been highlighted because there are directives
with the same name, ex: ssl.
So if we complete remove this.
It will looks like the function is missing.

[1]:https://github.com/nginx/nginx/blob/73d27510c0d7022384a611269af22ff01634c6d0/contrib/vim/syntax/nginx.vim#L19-L20
[2]:https://github.com/nginx/nginx/blob/73d27510c0d7022384a611269af22ff01634c6d0/contrib/vim/syntax/nginx.vim#L416

2017-04-19 23:10 GMT+08:00 Maxim Dounin <mdounin at mdounin.ru>:
> Hello!
>
> On Wed, Apr 19, 2017 at 05:52:36PM +0800, OOO wrote:
>
>> Hi Dounin
>>
>> I have looked into your POC.
>> I use this approach in yajs.vim too.
>> The major problem of this approach is: It creates (sort of) redundant
>> syntax group.
>> For the listen directive:
>>
>> > syn keyword ngxDirectiveImportantListen listen
>> >     \ nextgroup=@ngxListenParams skipwhite skipempty
>> > syn match ngxListenParam '\([^;{ \t\\]\|\\.\)\+'
>> >     \ contained
>> >     \ nextgroup=@ngxListenParams skipwhite skipempty
>> > syn region ngxListenString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+
>> >     \ contained
>> >     \ nextgroup=@ngxListenParams skipwhite skipempty
>> > syn match ngxListenComment '#.*$'
>> >     \ contained
>> >     \ nextgroup=@ngxListenParams skipwhite skipempty
>> > syn keyword ngxListenOptions contained
>> >     \ default_server ssl http2 spdy proxy_protocol
>> >     \ setfib fastopen backlog rcvbuf sndbuf accept_filter deferred bind
>> >     \ ipv6only reuseport so_keepalive keepidle
>> >     \ nextgroup=@ngxListenParams skipwhite skipempty
>> > syn cluster ngxListenParams
>> >     \ contains=ngxListenParam,ngxListenString,ngxListenComment
>> >     \ add=ngxListenOptions
>>
>> The ngxListenParam, ngxListenString, ngxListenComment and
>> ngxListenParams are the redundant groups.
>> For every directive we want to highlight params.
>> We will have to add four more syntax group like this one.
>
> Yes, this is exactly what I mean when I wrote that "this
> approach doesn't allow to extend things easily
> with highlighting of directive-specific parameters" in the
> previous messages.  The most simple solution would be to avoid
> directive-specific parameters highlighting at all - nginx.vim
> never did this in the past, so probably this is a good enough
> solution.
>
> --
> Maxim Dounin
> http://nginx.org/
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel



-- 
OOO


More information about the nginx-devel mailing list