[nginx] Contrib: proper syntax parsing in vim syntax highlighting.

Maxim Dounin mdounin at mdounin.ru
Mon May 22 13:44:40 UTC 2017


details:   http://hg.nginx.org/nginx/rev/7943298d4ac0
branches:  
changeset: 7003:7943298d4ac0
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Mon May 22 16:34:47 2017 +0300
description:
Contrib: proper syntax parsing in vim syntax highlighting.

Instead of highlighting directives in arbitrary positions, proper
parsing of nginx.conf syntax was implemented, matching what nginx does
internally.  This allows vim to correctly highlight various complex cases,
including:

    return 301 http://example.com/path#fragment";

and also avoids highlighting of parameters as directives, as in

    server_name missing.semicolon.example.com
    index index.php;

where "index" is not a directive but a parameter of the "server_name"
directive due to missing semicolon.

Most important downside of this approach seems to be that there is no
easy way to introduce directive-specific parameters.  As such, only "listen"
directive parameters were preserved.

diffstat:

 contrib/vim/syntax/nginx.vim |  3452 +++++++++++++++++++++--------------------
 1 files changed, 1741 insertions(+), 1711 deletions(-)

diffs (truncated from 3884 to 1000 lines):

diff --git a/contrib/vim/syntax/nginx.vim b/contrib/vim/syntax/nginx.vim
--- a/contrib/vim/syntax/nginx.vim
+++ b/contrib/vim/syntax/nginx.vim
@@ -5,2115 +5,2145 @@ if exists("b:current_syntax")
   finish
 end
 
-setlocal iskeyword+=.
-setlocal iskeyword+=/
-setlocal iskeyword+=:
-
-syn match ngxVariable '\$\(\w\+\|{\w\+}\)'
-syn match ngxVariableBlock '\$\(\w\+\|{\w\+}\)' contained
-syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained
-syn region ngxBlock start=+^+ end=+{+ skip=+\${+ contains=ngxComment,ngxDirectiveBlock,ngxVariableBlock,ngxString oneline
-syn region ngxString start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString
-syn match ngxComment ' *#.*$'
-
-syn keyword ngxBoolean on
-syn keyword ngxBoolean off
-
-syn keyword ngxDirectiveBlock http         contained
-syn keyword ngxDirectiveBlock mail         contained
-syn keyword ngxDirectiveBlock events       contained
-syn keyword ngxDirectiveBlock server       contained
-syn keyword ngxDirectiveBlock types        contained
-syn keyword ngxDirectiveBlock location     contained
-syn keyword ngxDirectiveBlock upstream     contained
-syn keyword ngxDirectiveBlock charset_map  contained
-syn keyword ngxDirectiveBlock limit_except contained
-syn keyword ngxDirectiveBlock if           contained
-syn keyword ngxDirectiveBlock geo          contained
-syn keyword ngxDirectiveBlock map          contained
-syn keyword ngxDirectiveBlock split_clients contained
-
-syn keyword ngxDirectiveImportant include
-syn keyword ngxDirectiveImportant root
-syn keyword ngxDirectiveImportant server
-syn keyword ngxDirectiveImportant server_name
-syn keyword ngxDirectiveImportant listen contained
-syn region  ngxDirectiveImportantListen matchgroup=ngxDirectiveImportant start=+listen+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxListenOptions,ngxString
-syn keyword ngxDirectiveImportant internal
-syn keyword ngxDirectiveImportant proxy_pass
-syn keyword ngxDirectiveImportant memcached_pass
-syn keyword ngxDirectiveImportant fastcgi_pass
-syn keyword ngxDirectiveImportant scgi_pass
-syn keyword ngxDirectiveImportant uwsgi_pass
-syn keyword ngxDirectiveImportant try_files
-
-syn keyword ngxListenOptions default_server contained
-syn keyword ngxListenOptions ssl            contained
-syn keyword ngxListenOptions http2          contained
-syn keyword ngxListenOptions spdy           contained
-syn keyword ngxListenOptions proxy_protocol contained
-syn keyword ngxListenOptions setfib         contained
-syn keyword ngxListenOptions fastopen       contained
-syn keyword ngxListenOptions backlog        contained
-syn keyword ngxListenOptions rcvbuf         contained
-syn keyword ngxListenOptions sndbuf         contained
-syn keyword ngxListenOptions accept_filter  contained
-syn keyword ngxListenOptions deferred       contained
-syn keyword ngxListenOptions bind           contained
-syn keyword ngxListenOptions ipv6only       contained
-syn keyword ngxListenOptions reuseport      contained
-syn keyword ngxListenOptions so_keepalive   contained
-syn keyword ngxListenOptions keepidle       contained
-
-syn keyword ngxDirectiveControl break
-syn keyword ngxDirectiveControl return
-syn keyword ngxDirectiveControl rewrite
-syn keyword ngxDirectiveControl set
-
-syn keyword ngxDirectiveError error_page
-syn keyword ngxDirectiveError post_action
-
-syn keyword ngxDirectiveDeprecated connections
-syn keyword ngxDirectiveDeprecated imap
-syn keyword ngxDirectiveDeprecated limit_zone
-syn keyword ngxDirectiveDeprecated mysql_test
-syn keyword ngxDirectiveDeprecated open_file_cache_retest
-syn keyword ngxDirectiveDeprecated optimize_server_names
-syn keyword ngxDirectiveDeprecated satisfy_any
-syn keyword ngxDirectiveDeprecated so_keepalive
+" general syntax
 
-syn keyword ngxDirective absolute_redirect
-syn keyword ngxDirective accept_mutex
-syn keyword ngxDirective accept_mutex_delay
-syn keyword ngxDirective acceptex_read
-syn keyword ngxDirective access_log
-syn keyword ngxDirective add_after_body
-syn keyword ngxDirective add_before_body
-syn keyword ngxDirective add_header
-syn keyword ngxDirective addition_types
-syn keyword ngxDirective aio
-syn keyword ngxDirective aio_write
-syn keyword ngxDirective alias
-syn keyword ngxDirective allow
-syn keyword ngxDirective ancient_browser
-syn keyword ngxDirective ancient_browser_value
-syn keyword ngxDirective auth_basic
-syn keyword ngxDirective auth_basic_user_file
-syn keyword ngxDirective auth_http
-syn keyword ngxDirective auth_http_header
-syn keyword ngxDirective auth_http_pass_client_cert
-syn keyword ngxDirective auth_http_timeout
-syn keyword ngxDirective auth_jwt
-syn keyword ngxDirective auth_jwt_key_file
-syn keyword ngxDirective auth_request
-syn keyword ngxDirective auth_request_set
-syn keyword ngxDirective autoindex
-syn keyword ngxDirective autoindex_exact_size
-syn keyword ngxDirective autoindex_format
-syn keyword ngxDirective autoindex_localtime
-syn keyword ngxDirective charset
-syn keyword ngxDirective charset_map
-syn keyword ngxDirective charset_types
-syn keyword ngxDirective chunked_transfer_encoding
-syn keyword ngxDirective client_body_buffer_size
-syn keyword ngxDirective client_body_in_file_only
-syn keyword ngxDirective client_body_in_single_buffer
-syn keyword ngxDirective client_body_temp_path
-syn keyword ngxDirective client_body_timeout
-syn keyword ngxDirective client_header_buffer_size
-syn keyword ngxDirective client_header_timeout
-syn keyword ngxDirective client_max_body_size
-syn keyword ngxDirective connection_pool_size
-syn keyword ngxDirective create_full_put_path
-syn keyword ngxDirective daemon
-syn keyword ngxDirective dav_access
-syn keyword ngxDirective dav_methods
-syn keyword ngxDirective debug_connection
-syn keyword ngxDirective debug_points
-syn keyword ngxDirective default_type
-syn keyword ngxDirective degradation
-syn keyword ngxDirective degrade
-syn keyword ngxDirective deny
-syn keyword ngxDirective devpoll_changes
-syn keyword ngxDirective devpoll_events
-syn keyword ngxDirective directio
-syn keyword ngxDirective directio_alignment
-syn keyword ngxDirective disable_symlinks
-syn keyword ngxDirective empty_gif
-syn keyword ngxDirective env
-syn keyword ngxDirective epoll_events
-syn keyword ngxDirective error_log
-syn keyword ngxDirective etag
-syn keyword ngxDirective eventport_events
-syn keyword ngxDirective expires
-syn keyword ngxDirective f4f
-syn keyword ngxDirective f4f_buffer_size
-syn keyword ngxDirective fastcgi_bind
-syn keyword ngxDirective fastcgi_buffer_size
-syn keyword ngxDirective fastcgi_buffering
-syn keyword ngxDirective fastcgi_buffers
-syn keyword ngxDirective fastcgi_busy_buffers_size
-syn keyword ngxDirective fastcgi_cache
-syn keyword ngxDirective fastcgi_cache_bypass
-syn keyword ngxDirective fastcgi_cache_key
-syn keyword ngxDirective fastcgi_cache_lock
-syn keyword ngxDirective fastcgi_cache_lock_age
-syn keyword ngxDirective fastcgi_cache_lock_timeout
-syn keyword ngxDirective fastcgi_cache_max_range_offset
-syn keyword ngxDirective fastcgi_cache_methods
-syn keyword ngxDirective fastcgi_cache_min_uses
-syn keyword ngxDirective fastcgi_cache_path
-syn keyword ngxDirective fastcgi_cache_purge
-syn keyword ngxDirective fastcgi_cache_revalidate
-syn keyword ngxDirective fastcgi_cache_use_stale
-syn keyword ngxDirective fastcgi_cache_valid
-syn keyword ngxDirective fastcgi_catch_stderr
-syn keyword ngxDirective fastcgi_connect_timeout
-syn keyword ngxDirective fastcgi_force_ranges
-syn keyword ngxDirective fastcgi_hide_header
-syn keyword ngxDirective fastcgi_ignore_client_abort
-syn keyword ngxDirective fastcgi_ignore_headers
-syn keyword ngxDirective fastcgi_index
-syn keyword ngxDirective fastcgi_intercept_errors
-syn keyword ngxDirective fastcgi_keep_conn
-syn keyword ngxDirective fastcgi_limit_rate
-syn keyword ngxDirective fastcgi_max_temp_file_size
-syn keyword ngxDirective fastcgi_next_upstream
-syn keyword ngxDirective fastcgi_next_upstream_timeout
-syn keyword ngxDirective fastcgi_next_upstream_tries
-syn keyword ngxDirective fastcgi_no_cache
-syn keyword ngxDirective fastcgi_param
-syn keyword ngxDirective fastcgi_pass_header
-syn keyword ngxDirective fastcgi_pass_request_body
-syn keyword ngxDirective fastcgi_pass_request_headers
-syn keyword ngxDirective fastcgi_read_timeout
-syn keyword ngxDirective fastcgi_request_buffering
-syn keyword ngxDirective fastcgi_send_lowat
-syn keyword ngxDirective fastcgi_send_timeout
-syn keyword ngxDirective fastcgi_split_path_info
-syn keyword ngxDirective fastcgi_store
-syn keyword ngxDirective fastcgi_store_access
-syn keyword ngxDirective fastcgi_temp_file_write_size
-syn keyword ngxDirective fastcgi_temp_path
-syn keyword ngxDirective flv
-syn keyword ngxDirective geoip_city
-syn keyword ngxDirective geoip_country
-syn keyword ngxDirective geoip_org
-syn keyword ngxDirective geoip_proxy
-syn keyword ngxDirective geoip_proxy_recursive
-syn keyword ngxDirective google_perftools_profiles
-syn keyword ngxDirective gunzip
-syn keyword ngxDirective gunzip_buffers
-syn keyword ngxDirective gzip
-syn keyword ngxDirective gzip_buffers
-syn keyword ngxDirective gzip_comp_level
-syn keyword ngxDirective gzip_disable
-syn keyword ngxDirective gzip_hash
-syn keyword ngxDirective gzip_http_version
-syn keyword ngxDirective gzip_min_length
-syn keyword ngxDirective gzip_no_buffer
-syn keyword ngxDirective gzip_proxied
-syn keyword ngxDirective gzip_static
-syn keyword ngxDirective gzip_types
-syn keyword ngxDirective gzip_vary
-syn keyword ngxDirective gzip_window
-syn keyword ngxDirective hash
-syn keyword ngxDirective health_check
-syn keyword ngxDirective health_check_timeout
-syn keyword ngxDirective hls
-syn keyword ngxDirective hls_buffers
-syn keyword ngxDirective hls_forward_args
-syn keyword ngxDirective hls_fragment
-syn keyword ngxDirective hls_mp4_buffer_size
-syn keyword ngxDirective hls_mp4_max_buffer_size
-syn keyword ngxDirective http2_chunk_size
-syn keyword ngxDirective http2_body_preread_size
-syn keyword ngxDirective http2_idle_timeout
-syn keyword ngxDirective http2_max_concurrent_streams
-syn keyword ngxDirective http2_max_field_size
-syn keyword ngxDirective http2_max_header_size
-syn keyword ngxDirective http2_max_requests
-syn keyword ngxDirective http2_recv_buffer_size
-syn keyword ngxDirective http2_recv_timeout
-syn keyword ngxDirective if_modified_since
-syn keyword ngxDirective ignore_invalid_headers
-syn keyword ngxDirective image_filter
-syn keyword ngxDirective image_filter_buffer
-syn keyword ngxDirective image_filter_interlace
-syn keyword ngxDirective image_filter_jpeg_quality
-syn keyword ngxDirective image_filter_sharpen
-syn keyword ngxDirective image_filter_transparency
-syn keyword ngxDirective image_filter_webp_quality
-syn keyword ngxDirective imap_auth
-syn keyword ngxDirective imap_capabilities
-syn keyword ngxDirective imap_client_buffer
-syn keyword ngxDirective index
-syn keyword ngxDirective iocp_threads
-syn keyword ngxDirective ip_hash
-syn keyword ngxDirective js_access
-syn keyword ngxDirective js_content
-syn keyword ngxDirective js_filter
-syn keyword ngxDirective js_include
-syn keyword ngxDirective js_preread
-syn keyword ngxDirective js_set
-syn keyword ngxDirective keepalive
-syn keyword ngxDirective keepalive_disable
-syn keyword ngxDirective keepalive_requests
-syn keyword ngxDirective keepalive_timeout
-syn keyword ngxDirective kqueue_changes
-syn keyword ngxDirective kqueue_events
-syn keyword ngxDirective large_client_header_buffers
-syn keyword ngxDirective least_conn
-syn keyword ngxDirective least_time
-syn keyword ngxDirective limit_conn
-syn keyword ngxDirective limit_conn_log_level
-syn keyword ngxDirective limit_conn_status
-syn keyword ngxDirective limit_conn_zone
-syn keyword ngxDirective limit_rate
-syn keyword ngxDirective limit_rate_after
-syn keyword ngxDirective limit_req
-syn keyword ngxDirective limit_req_log_level
-syn keyword ngxDirective limit_req_status
-syn keyword ngxDirective limit_req_zone
-syn keyword ngxDirective lingering_close
-syn keyword ngxDirective lingering_time
-syn keyword ngxDirective lingering_timeout
-syn keyword ngxDirective load_module
-syn keyword ngxDirective lock_file
-syn keyword ngxDirective log_format
-syn keyword ngxDirective log_not_found
-syn keyword ngxDirective log_subrequest
-syn keyword ngxDirective map_hash_bucket_size
-syn keyword ngxDirective map_hash_max_size
-syn keyword ngxDirective match
-syn keyword ngxDirective master_process
-syn keyword ngxDirective max_ranges
-syn keyword ngxDirective memcached_bind
-syn keyword ngxDirective memcached_buffer_size
-syn keyword ngxDirective memcached_connect_timeout
-syn keyword ngxDirective memcached_force_ranges
-syn keyword ngxDirective memcached_gzip_flag
-syn keyword ngxDirective memcached_next_upstream
-syn keyword ngxDirective memcached_next_upstream_timeout
-syn keyword ngxDirective memcached_next_upstream_tries
-syn keyword ngxDirective memcached_read_timeout
-syn keyword ngxDirective memcached_send_timeout
-syn keyword ngxDirective merge_slashes
-syn keyword ngxDirective min_delete_depth
-syn keyword ngxDirective modern_browser
-syn keyword ngxDirective modern_browser_value
-syn keyword ngxDirective mp4
-syn keyword ngxDirective mp4_buffer_size
-syn keyword ngxDirective mp4_max_buffer_size
-syn keyword ngxDirective mp4_limit_rate
-syn keyword ngxDirective mp4_limit_rate_after
-syn keyword ngxDirective msie_padding
-syn keyword ngxDirective msie_refresh
-syn keyword ngxDirective multi_accept
-syn keyword ngxDirective ntlm
-syn keyword ngxDirective open_file_cache
-syn keyword ngxDirective open_file_cache_errors
-syn keyword ngxDirective open_file_cache_events
-syn keyword ngxDirective open_file_cache_min_uses
-syn keyword ngxDirective open_file_cache_valid
-syn keyword ngxDirective open_log_file_cache
-syn keyword ngxDirective output_buffers
-syn keyword ngxDirective override_charset
-syn keyword ngxDirective pcre_jit
-syn keyword ngxDirective perl
-syn keyword ngxDirective perl_modules
-syn keyword ngxDirective perl_require
-syn keyword ngxDirective perl_set
-syn keyword ngxDirective pid
-syn keyword ngxDirective pop3_auth
-syn keyword ngxDirective pop3_capabilities
-syn keyword ngxDirective port_in_redirect
-syn keyword ngxDirective post_acceptex
-syn keyword ngxDirective postpone_gzipping
-syn keyword ngxDirective postpone_output
-syn keyword ngxDirective preread_buffer_size
-syn keyword ngxDirective preread_timeout
-syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite
-syn keyword ngxMailProtocol imap pop3 smtp contained
-syn keyword ngxDirective proxy
-syn keyword ngxDirective proxy_bind
-syn keyword ngxDirective proxy_buffer
-syn keyword ngxDirective proxy_buffer_size
-syn keyword ngxDirective proxy_buffering
-syn keyword ngxDirective proxy_buffers
-syn keyword ngxDirective proxy_busy_buffers_size
-syn keyword ngxDirective proxy_cache
-syn keyword ngxDirective proxy_cache_bypass
-syn keyword ngxDirective proxy_cache_convert_head
-syn keyword ngxDirective proxy_cache_key
-syn keyword ngxDirective proxy_cache_lock
-syn keyword ngxDirective proxy_cache_lock_age
-syn keyword ngxDirective proxy_cache_lock_timeout
-syn keyword ngxDirective proxy_cache_max_range_offset
-syn keyword ngxDirective proxy_cache_methods
-syn keyword ngxDirective proxy_cache_min_uses
-syn keyword ngxDirective proxy_cache_path
-syn keyword ngxDirective proxy_cache_purge
-syn keyword ngxDirective proxy_cache_revalidate
-syn keyword ngxDirective proxy_cache_use_stale
-syn keyword ngxDirective proxy_cache_valid
-syn keyword ngxDirective proxy_connect_timeout
-syn keyword ngxDirective proxy_cookie_domain
-syn keyword ngxDirective proxy_cookie_path
-syn keyword ngxDirective proxy_download_rate
-syn keyword ngxDirective proxy_force_ranges
-syn keyword ngxDirective proxy_headers_hash_bucket_size
-syn keyword ngxDirective proxy_headers_hash_max_size
-syn keyword ngxDirective proxy_hide_header
-syn keyword ngxDirective proxy_http_version
-syn keyword ngxDirective proxy_ignore_client_abort
-syn keyword ngxDirective proxy_ignore_headers
-syn keyword ngxDirective proxy_intercept_errors
-syn keyword ngxDirective proxy_limit_rate
-syn keyword ngxDirective proxy_max_temp_file_size
-syn keyword ngxDirective proxy_method
-syn keyword ngxDirective proxy_next_upstream
-syn keyword ngxDirective proxy_next_upstream_timeout
-syn keyword ngxDirective proxy_next_upstream_tries
-syn keyword ngxDirective proxy_no_cache
-syn keyword ngxDirective proxy_pass_error_message
-syn keyword ngxDirective proxy_pass_header
-syn keyword ngxDirective proxy_pass_request_body
-syn keyword ngxDirective proxy_pass_request_headers
-syn keyword ngxDirective proxy_protocol
-syn keyword ngxDirective proxy_protocol_timeout
-syn keyword ngxDirective proxy_read_timeout
-syn keyword ngxDirective proxy_redirect
-syn keyword ngxDirective proxy_request_buffering
-syn keyword ngxDirective proxy_responses
-syn keyword ngxDirective proxy_send_lowat
-syn keyword ngxDirective proxy_send_timeout
-syn keyword ngxDirective proxy_set_body
-syn keyword ngxDirective proxy_set_header
-syn keyword ngxDirective proxy_ssl_certificate
-syn keyword ngxDirective proxy_ssl_certificate_key
-syn keyword ngxDirective proxy_ssl_ciphers
-syn keyword ngxDirective proxy_ssl_crl
-syn keyword ngxDirective proxy_ssl_name
-syn keyword ngxDirective proxy_ssl_password_file
-syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite
-syn keyword ngxDirective proxy_ssl_server_name
-syn keyword ngxDirective proxy_ssl_session_reuse
-syn keyword ngxDirective proxy_ssl_trusted_certificate
-syn keyword ngxDirective proxy_ssl_verify
-syn keyword ngxDirective proxy_ssl_verify_depth
-syn keyword ngxDirective proxy_store
-syn keyword ngxDirective proxy_store_access
-syn keyword ngxDirective proxy_temp_file_write_size
-syn keyword ngxDirective proxy_temp_path
-syn keyword ngxDirective proxy_timeout
-syn keyword ngxDirective proxy_upload_rate
-syn keyword ngxDirective queue
-syn keyword ngxDirective random_index
-syn keyword ngxDirective read_ahead
-syn keyword ngxDirective real_ip_header
-syn keyword ngxDirective real_ip_recursive
-syn keyword ngxDirective recursive_error_pages
-syn keyword ngxDirective referer_hash_bucket_size
-syn keyword ngxDirective referer_hash_max_size
-syn keyword ngxDirective request_pool_size
-syn keyword ngxDirective reset_timedout_connection
-syn keyword ngxDirective resolver
-syn keyword ngxDirective resolver_timeout
-syn keyword ngxDirective rewrite_log
-syn keyword ngxDirective rtsig_overflow_events
-syn keyword ngxDirective rtsig_overflow_test
-syn keyword ngxDirective rtsig_overflow_threshold
-syn keyword ngxDirective rtsig_signo
-syn keyword ngxDirective satisfy
-syn keyword ngxDirective scgi_bind
-syn keyword ngxDirective scgi_buffer_size
-syn keyword ngxDirective scgi_buffering
-syn keyword ngxDirective scgi_buffers
-syn keyword ngxDirective scgi_busy_buffers_size
-syn keyword ngxDirective scgi_cache
-syn keyword ngxDirective scgi_cache_bypass
-syn keyword ngxDirective scgi_cache_key
-syn keyword ngxDirective scgi_cache_lock
-syn keyword ngxDirective scgi_cache_lock_age
-syn keyword ngxDirective scgi_cache_lock_timeout
-syn keyword ngxDirective scgi_cache_max_range_offset
-syn keyword ngxDirective scgi_cache_methods
-syn keyword ngxDirective scgi_cache_min_uses
-syn keyword ngxDirective scgi_cache_path
-syn keyword ngxDirective scgi_cache_purge
-syn keyword ngxDirective scgi_cache_revalidate
-syn keyword ngxDirective scgi_cache_use_stale
-syn keyword ngxDirective scgi_cache_valid
-syn keyword ngxDirective scgi_connect_timeout
-syn keyword ngxDirective scgi_force_ranges
-syn keyword ngxDirective scgi_hide_header
-syn keyword ngxDirective scgi_ignore_client_abort
-syn keyword ngxDirective scgi_ignore_headers
-syn keyword ngxDirective scgi_intercept_errors
-syn keyword ngxDirective scgi_limit_rate
-syn keyword ngxDirective scgi_max_temp_file_size
-syn keyword ngxDirective scgi_next_upstream
-syn keyword ngxDirective scgi_next_upstream_timeout
-syn keyword ngxDirective scgi_next_upstream_tries
-syn keyword ngxDirective scgi_no_cache
-syn keyword ngxDirective scgi_param
-syn keyword ngxDirective scgi_pass_header
-syn keyword ngxDirective scgi_pass_request_body
-syn keyword ngxDirective scgi_pass_request_headers
-syn keyword ngxDirective scgi_read_timeout
-syn keyword ngxDirective scgi_request_buffering
-syn keyword ngxDirective scgi_send_timeout
-syn keyword ngxDirective scgi_store
-syn keyword ngxDirective scgi_store_access
-syn keyword ngxDirective scgi_temp_file_write_size
-syn keyword ngxDirective scgi_temp_path
-syn keyword ngxDirective secure_link
-syn keyword ngxDirective secure_link_md5
-syn keyword ngxDirective secure_link_secret
-syn keyword ngxDirective send_lowat
-syn keyword ngxDirective send_timeout
-syn keyword ngxDirective sendfile
-syn keyword ngxDirective sendfile_max_chunk
-syn keyword ngxDirective server_name_in_redirect
-syn keyword ngxDirective server_names_hash_bucket_size
-syn keyword ngxDirective server_names_hash_max_size
-syn keyword ngxDirective server_tokens
-syn keyword ngxDirective session_log
-syn keyword ngxDirective session_log_format
-syn keyword ngxDirective session_log_zone
-syn keyword ngxDirective set_real_ip_from
-syn keyword ngxDirective slice
-syn keyword ngxDirective smtp_auth
-syn keyword ngxDirective smtp_capabilities
-syn keyword ngxDirective smtp_client_buffer
-syn keyword ngxDirective smtp_greeting_delay
-syn keyword ngxDirective source_charset
-syn keyword ngxDirective spdy_chunk_size
-syn keyword ngxDirective spdy_headers_comp
-syn keyword ngxDirective spdy_keepalive_timeout
-syn keyword ngxDirective spdy_max_concurrent_streams
-syn keyword ngxDirective spdy_pool_size
-syn keyword ngxDirective spdy_recv_buffer_size
-syn keyword ngxDirective spdy_recv_timeout
-syn keyword ngxDirective spdy_streams_index_size
-syn keyword ngxDirective ssi
-syn keyword ngxDirective ssi_ignore_recycled_buffers
-syn keyword ngxDirective ssi_last_modified
-syn keyword ngxDirective ssi_min_file_chunk
-syn keyword ngxDirective ssi_silent_errors
-syn keyword ngxDirective ssi_types
-syn keyword ngxDirective ssi_value_length
-syn keyword ngxDirective ssl
-syn keyword ngxDirective ssl_buffer_size
-syn keyword ngxDirective ssl_certificate
-syn keyword ngxDirective ssl_certificate_key
-syn keyword ngxDirective ssl_ciphers
-syn keyword ngxDirective ssl_client_certificate
-syn keyword ngxDirective ssl_crl
-syn keyword ngxDirective ssl_dhparam
-syn keyword ngxDirective ssl_ecdh_curve
-syn keyword ngxDirective ssl_engine
-syn keyword ngxDirective ssl_handshake_timeout
-syn keyword ngxDirective ssl_password_file
-syn keyword ngxDirective ssl_prefer_server_ciphers
-syn keyword ngxDirective ssl_preread
-syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol skipwhite
-syn keyword ngxSSLProtocol SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 contained nextgroup=ngxSSLProtocol skipwhite
-syn keyword ngxDirective ssl_session_cache
-syn keyword ngxDirective ssl_session_ticket_key
-syn keyword ngxDirective ssl_session_tickets
-syn keyword ngxDirective ssl_session_timeout
-syn keyword ngxDirective ssl_stapling
-syn keyword ngxDirective ssl_stapling_file
-syn keyword ngxDirective ssl_stapling_responder
-syn keyword ngxDirective ssl_stapling_verify
-syn keyword ngxDirective ssl_trusted_certificate
-syn keyword ngxDirective ssl_verify_client
-syn keyword ngxDirective ssl_verify_depth
-syn keyword ngxDirective starttls
-syn keyword ngxDirective state
-syn keyword ngxDirective status
-syn keyword ngxDirective status_format
-syn keyword ngxDirective status_zone
-syn keyword ngxDirective sticky
-syn keyword ngxDirective sticky_cookie_insert
-syn keyword ngxDirective stub_status
-syn keyword ngxDirective sub_filter
-syn keyword ngxDirective sub_filter_last_modified
-syn keyword ngxDirective sub_filter_once
-syn keyword ngxDirective sub_filter_types
-syn keyword ngxDirective tcp_nodelay
-syn keyword ngxDirective tcp_nopush
-syn keyword ngxDirective thread_pool
-syn keyword ngxDirective thread_stack_size
-syn keyword ngxDirective timeout
-syn keyword ngxDirective timer_resolution
-syn keyword ngxDirective types_hash_bucket_size
-syn keyword ngxDirective types_hash_max_size
-syn keyword ngxDirective underscores_in_headers
-syn keyword ngxDirective uninitialized_variable_warn
-syn keyword ngxDirective upstream_conf
-syn keyword ngxDirective use
-syn keyword ngxDirective user
-syn keyword ngxDirective userid
-syn keyword ngxDirective userid_domain
-syn keyword ngxDirective userid_expires
-syn keyword ngxDirective userid_mark
-syn keyword ngxDirective userid_name
-syn keyword ngxDirective userid_p3p
-syn keyword ngxDirective userid_path
-syn keyword ngxDirective userid_service
-syn keyword ngxDirective uwsgi_bind
-syn keyword ngxDirective uwsgi_buffer_size
-syn keyword ngxDirective uwsgi_buffering
-syn keyword ngxDirective uwsgi_buffers
-syn keyword ngxDirective uwsgi_busy_buffers_size
-syn keyword ngxDirective uwsgi_cache
-syn keyword ngxDirective uwsgi_cache_bypass
-syn keyword ngxDirective uwsgi_cache_key
-syn keyword ngxDirective uwsgi_cache_lock
-syn keyword ngxDirective uwsgi_cache_lock_age
-syn keyword ngxDirective uwsgi_cache_lock_timeout
-syn keyword ngxDirective uwsgi_cache_methods
-syn keyword ngxDirective uwsgi_cache_min_uses
-syn keyword ngxDirective uwsgi_cache_path
-syn keyword ngxDirective uwsgi_cache_purge
-syn keyword ngxDirective uwsgi_cache_revalidate
-syn keyword ngxDirective uwsgi_cache_use_stale
-syn keyword ngxDirective uwsgi_cache_valid
-syn keyword ngxDirective uwsgi_connect_timeout
-syn keyword ngxDirective uwsgi_force_ranges
-syn keyword ngxDirective uwsgi_hide_header
-syn keyword ngxDirective uwsgi_ignore_client_abort
-syn keyword ngxDirective uwsgi_ignore_headers
-syn keyword ngxDirective uwsgi_intercept_errors
-syn keyword ngxDirective uwsgi_limit_rate
-syn keyword ngxDirective uwsgi_max_temp_file_size
-syn keyword ngxDirective uwsgi_modifier1
-syn keyword ngxDirective uwsgi_modifier2
-syn keyword ngxDirective uwsgi_next_upstream
-syn keyword ngxDirective uwsgi_next_upstream_timeout
-syn keyword ngxDirective uwsgi_next_upstream_tries
-syn keyword ngxDirective uwsgi_no_cache
-syn keyword ngxDirective uwsgi_param
-syn keyword ngxDirective uwsgi_pass
-syn keyword ngxDirective uwsgi_pass_header
-syn keyword ngxDirective uwsgi_pass_request_body
-syn keyword ngxDirective uwsgi_pass_request_headers
-syn keyword ngxDirective uwsgi_read_timeout
-syn keyword ngxDirective uwsgi_request_buffering
-syn keyword ngxDirective uwsgi_send_timeout
-syn keyword ngxDirective uwsgi_ssl_certificate
-syn keyword ngxDirective uwsgi_ssl_certificate_key
-syn keyword ngxDirective uwsgi_ssl_ciphers
-syn keyword ngxDirective uwsgi_ssl_crl
-syn keyword ngxDirective uwsgi_ssl_name
-syn keyword ngxDirective uwsgi_ssl_password_file
-syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite
-syn keyword ngxDirective uwsgi_ssl_server_name
-syn keyword ngxDirective uwsgi_ssl_session_reuse
-syn keyword ngxDirective uwsgi_ssl_trusted_certificate
-syn keyword ngxDirective uwsgi_ssl_verify
-syn keyword ngxDirective uwsgi_ssl_verify_depth
-syn keyword ngxDirective uwsgi_store
-syn keyword ngxDirective uwsgi_store_access
-syn keyword ngxDirective uwsgi_string
-syn keyword ngxDirective uwsgi_temp_file_write_size
-syn keyword ngxDirective uwsgi_temp_path
-syn keyword ngxDirective valid_referers
-syn keyword ngxDirective variables_hash_bucket_size
-syn keyword ngxDirective variables_hash_max_size
-syn keyword ngxDirective worker_aio_requests
-syn keyword ngxDirective worker_connections
-syn keyword ngxDirective worker_cpu_affinity
-syn keyword ngxDirective worker_priority
-syn keyword ngxDirective worker_processes
-syn keyword ngxDirective worker_rlimit_core
-syn keyword ngxDirective worker_rlimit_nofile
-syn keyword ngxDirective worker_rlimit_sigpending
-syn keyword ngxDirective worker_threads
-syn keyword ngxDirective working_directory
-syn keyword ngxDirective xclient
-syn keyword ngxDirective xml_entities
-syn keyword ngxDirective xslt_last_modified
-syn keyword ngxDirective xslt_param
-syn keyword ngxDirective xslt_string_param
-syn keyword ngxDirective xslt_stylesheet
-syn keyword ngxDirective xslt_types
-syn keyword ngxDirective zone
+if has("patch-7.4.1142")
+    " except control characters, ";", "{", and "}"
+    syn iskeyword 33-58,60-122,124,126-255
+endif
+
+syn match ngxName '\([^;{} \t\\]\|\\.\)\+'
+    \ contains=@ngxDirectives
+    \ nextgroup=@ngxParams skipwhite skipempty
+syn match ngxParam '\([^;{ \t\\]\|\\.\)\+'
+    \ contained
+    \ contains=ngxVariable
+    \ nextgroup=@ngxParams skipwhite skipempty
+syn region ngxString start=+\z(["']\)+ end=+\z1+ skip=+\\\\\|\\\z1+
+    \ contains=ngxVariableString
+    \ nextgroup=@ngxParams skipwhite skipempty
+syn match ngxParamComment '#.*$'
+    \ nextgroup=@ngxParams skipwhite skipempty
+syn match ngxSemicolon ';' contained
+syn region ngxBlock start=+{+ end=+}+ contained
+    \ contains=@ngxTopLevel
+syn match ngxComment '#.*$'
+
+syn match ngxVariable '\$\w\+' contained
+syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained
+
+syn cluster ngxTopLevel
+    \ contains=ngxName,ngxString,ngxComment
+syn cluster ngxDirectives
+    \ contains=ngxDirective,ngxDirectiveBlock,ngxDirectiveImportant
+    \ add=ngxDirectiveControl,ngxDirectiveError,ngxDirectiveDeprecated
+    \ add=ngxDirectiveThirdParty
+syn cluster ngxParams
+    \ contains=ngxParam,ngxString,ngxParamComment,ngxSemicolon,ngxBlock
+
+" boolean parameters
+
+syn keyword ngxBoolean contained on off
+    \ nextgroup=@ngxParams skipwhite skipempty
+syn cluster ngxParams add=ngxBoolean
+
+" listen directive
+
+syn cluster ngxTopLevel add=ngxDirectiveListen
+syn keyword ngxDirectiveListen 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
+
+syn keyword ngxDirectiveBlock contained http
+syn keyword ngxDirectiveBlock contained mail
+syn keyword ngxDirectiveBlock contained events
+syn keyword ngxDirectiveBlock contained server
+syn keyword ngxDirectiveBlock contained types
+syn keyword ngxDirectiveBlock contained location
+syn keyword ngxDirectiveBlock contained upstream
+syn keyword ngxDirectiveBlock contained charset_map
+syn keyword ngxDirectiveBlock contained limit_except
+syn keyword ngxDirectiveBlock contained if
+syn keyword ngxDirectiveBlock contained geo
+syn keyword ngxDirectiveBlock contained map
+syn keyword ngxDirectiveBlock contained split_clients
+
+syn keyword ngxDirectiveImportant contained include
+syn keyword ngxDirectiveImportant contained root
+"syn keyword ngxDirectiveImportant contained server
+syn keyword ngxDirectiveImportant contained server_name
+"syn keyword ngxDirectiveImportant contained listen
+syn keyword ngxDirectiveImportant contained internal
+syn keyword ngxDirectiveImportant contained proxy_pass
+syn keyword ngxDirectiveImportant contained memcached_pass
+syn keyword ngxDirectiveImportant contained fastcgi_pass
+syn keyword ngxDirectiveImportant contained scgi_pass
+syn keyword ngxDirectiveImportant contained uwsgi_pass
+syn keyword ngxDirectiveImportant contained try_files
+
+syn keyword ngxDirectiveControl contained break
+syn keyword ngxDirectiveControl contained return
+syn keyword ngxDirectiveControl contained rewrite
+syn keyword ngxDirectiveControl contained set
+
+syn keyword ngxDirectiveError contained error_page
+syn keyword ngxDirectiveError contained post_action
+
+syn keyword ngxDirectiveDeprecated contained connections
+syn keyword ngxDirectiveDeprecated contained imap
+syn keyword ngxDirectiveDeprecated contained limit_zone
+syn keyword ngxDirectiveDeprecated contained mysql_test
+syn keyword ngxDirectiveDeprecated contained open_file_cache_retest
+syn keyword ngxDirectiveDeprecated contained optimize_server_names
+syn keyword ngxDirectiveDeprecated contained satisfy_any
+syn keyword ngxDirectiveDeprecated contained so_keepalive
+
+syn keyword ngxDirective contained absolute_redirect
+syn keyword ngxDirective contained accept_mutex
+syn keyword ngxDirective contained accept_mutex_delay
+syn keyword ngxDirective contained acceptex_read
+syn keyword ngxDirective contained access_log
+syn keyword ngxDirective contained add_after_body
+syn keyword ngxDirective contained add_before_body
+syn keyword ngxDirective contained add_header
+syn keyword ngxDirective contained addition_types
+syn keyword ngxDirective contained aio
+syn keyword ngxDirective contained aio_write
+syn keyword ngxDirective contained alias
+syn keyword ngxDirective contained allow
+syn keyword ngxDirective contained ancient_browser
+syn keyword ngxDirective contained ancient_browser_value
+syn keyword ngxDirective contained auth_basic
+syn keyword ngxDirective contained auth_basic_user_file
+syn keyword ngxDirective contained auth_http
+syn keyword ngxDirective contained auth_http_header
+syn keyword ngxDirective contained auth_http_pass_client_cert
+syn keyword ngxDirective contained auth_http_timeout
+syn keyword ngxDirective contained auth_jwt
+syn keyword ngxDirective contained auth_jwt_key_file
+syn keyword ngxDirective contained auth_request
+syn keyword ngxDirective contained auth_request_set
+syn keyword ngxDirective contained autoindex
+syn keyword ngxDirective contained autoindex_exact_size
+syn keyword ngxDirective contained autoindex_format
+syn keyword ngxDirective contained autoindex_localtime
+syn keyword ngxDirective contained charset
+syn keyword ngxDirective contained charset_map
+syn keyword ngxDirective contained charset_types
+syn keyword ngxDirective contained chunked_transfer_encoding
+syn keyword ngxDirective contained client_body_buffer_size
+syn keyword ngxDirective contained client_body_in_file_only
+syn keyword ngxDirective contained client_body_in_single_buffer
+syn keyword ngxDirective contained client_body_temp_path
+syn keyword ngxDirective contained client_body_timeout
+syn keyword ngxDirective contained client_header_buffer_size
+syn keyword ngxDirective contained client_header_timeout
+syn keyword ngxDirective contained client_max_body_size
+syn keyword ngxDirective contained connection_pool_size
+syn keyword ngxDirective contained create_full_put_path
+syn keyword ngxDirective contained daemon
+syn keyword ngxDirective contained dav_access
+syn keyword ngxDirective contained dav_methods
+syn keyword ngxDirective contained debug_connection
+syn keyword ngxDirective contained debug_points
+syn keyword ngxDirective contained default_type
+syn keyword ngxDirective contained degradation
+syn keyword ngxDirective contained degrade
+syn keyword ngxDirective contained deny
+syn keyword ngxDirective contained devpoll_changes
+syn keyword ngxDirective contained devpoll_events
+syn keyword ngxDirective contained directio
+syn keyword ngxDirective contained directio_alignment
+syn keyword ngxDirective contained disable_symlinks
+syn keyword ngxDirective contained empty_gif
+syn keyword ngxDirective contained env
+syn keyword ngxDirective contained epoll_events
+syn keyword ngxDirective contained error_log
+syn keyword ngxDirective contained etag
+syn keyword ngxDirective contained eventport_events
+syn keyword ngxDirective contained expires
+syn keyword ngxDirective contained f4f
+syn keyword ngxDirective contained f4f_buffer_size
+syn keyword ngxDirective contained fastcgi_bind
+syn keyword ngxDirective contained fastcgi_buffer_size
+syn keyword ngxDirective contained fastcgi_buffering
+syn keyword ngxDirective contained fastcgi_buffers
+syn keyword ngxDirective contained fastcgi_busy_buffers_size
+syn keyword ngxDirective contained fastcgi_cache
+syn keyword ngxDirective contained fastcgi_cache_bypass
+syn keyword ngxDirective contained fastcgi_cache_key
+syn keyword ngxDirective contained fastcgi_cache_lock
+syn keyword ngxDirective contained fastcgi_cache_lock_age
+syn keyword ngxDirective contained fastcgi_cache_lock_timeout
+syn keyword ngxDirective contained fastcgi_cache_max_range_offset
+syn keyword ngxDirective contained fastcgi_cache_methods
+syn keyword ngxDirective contained fastcgi_cache_min_uses
+syn keyword ngxDirective contained fastcgi_cache_path
+syn keyword ngxDirective contained fastcgi_cache_purge
+syn keyword ngxDirective contained fastcgi_cache_revalidate
+syn keyword ngxDirective contained fastcgi_cache_use_stale
+syn keyword ngxDirective contained fastcgi_cache_valid
+syn keyword ngxDirective contained fastcgi_catch_stderr
+syn keyword ngxDirective contained fastcgi_connect_timeout
+syn keyword ngxDirective contained fastcgi_force_ranges
+syn keyword ngxDirective contained fastcgi_hide_header
+syn keyword ngxDirective contained fastcgi_ignore_client_abort
+syn keyword ngxDirective contained fastcgi_ignore_headers
+syn keyword ngxDirective contained fastcgi_index
+syn keyword ngxDirective contained fastcgi_intercept_errors
+syn keyword ngxDirective contained fastcgi_keep_conn
+syn keyword ngxDirective contained fastcgi_limit_rate
+syn keyword ngxDirective contained fastcgi_max_temp_file_size
+syn keyword ngxDirective contained fastcgi_next_upstream
+syn keyword ngxDirective contained fastcgi_next_upstream_timeout
+syn keyword ngxDirective contained fastcgi_next_upstream_tries
+syn keyword ngxDirective contained fastcgi_no_cache
+syn keyword ngxDirective contained fastcgi_param
+syn keyword ngxDirective contained fastcgi_pass_header
+syn keyword ngxDirective contained fastcgi_pass_request_body
+syn keyword ngxDirective contained fastcgi_pass_request_headers
+syn keyword ngxDirective contained fastcgi_read_timeout
+syn keyword ngxDirective contained fastcgi_request_buffering
+syn keyword ngxDirective contained fastcgi_send_lowat
+syn keyword ngxDirective contained fastcgi_send_timeout
+syn keyword ngxDirective contained fastcgi_split_path_info
+syn keyword ngxDirective contained fastcgi_store
+syn keyword ngxDirective contained fastcgi_store_access
+syn keyword ngxDirective contained fastcgi_temp_file_write_size
+syn keyword ngxDirective contained fastcgi_temp_path
+syn keyword ngxDirective contained flv
+syn keyword ngxDirective contained geoip_city
+syn keyword ngxDirective contained geoip_country
+syn keyword ngxDirective contained geoip_org
+syn keyword ngxDirective contained geoip_proxy
+syn keyword ngxDirective contained geoip_proxy_recursive
+syn keyword ngxDirective contained google_perftools_profiles
+syn keyword ngxDirective contained gunzip
+syn keyword ngxDirective contained gunzip_buffers
+syn keyword ngxDirective contained gzip
+syn keyword ngxDirective contained gzip_buffers
+syn keyword ngxDirective contained gzip_comp_level
+syn keyword ngxDirective contained gzip_disable
+syn keyword ngxDirective contained gzip_hash
+syn keyword ngxDirective contained gzip_http_version
+syn keyword ngxDirective contained gzip_min_length
+syn keyword ngxDirective contained gzip_no_buffer
+syn keyword ngxDirective contained gzip_proxied
+syn keyword ngxDirective contained gzip_static
+syn keyword ngxDirective contained gzip_types
+syn keyword ngxDirective contained gzip_vary
+syn keyword ngxDirective contained gzip_window
+syn keyword ngxDirective contained hash
+syn keyword ngxDirective contained health_check
+syn keyword ngxDirective contained health_check_timeout
+syn keyword ngxDirective contained hls
+syn keyword ngxDirective contained hls_buffers
+syn keyword ngxDirective contained hls_forward_args
+syn keyword ngxDirective contained hls_fragment
+syn keyword ngxDirective contained hls_mp4_buffer_size
+syn keyword ngxDirective contained hls_mp4_max_buffer_size
+syn keyword ngxDirective contained http2_chunk_size
+syn keyword ngxDirective contained http2_body_preread_size
+syn keyword ngxDirective contained http2_idle_timeout
+syn keyword ngxDirective contained http2_max_concurrent_streams
+syn keyword ngxDirective contained http2_max_field_size
+syn keyword ngxDirective contained http2_max_header_size
+syn keyword ngxDirective contained http2_max_requests
+syn keyword ngxDirective contained http2_recv_buffer_size
+syn keyword ngxDirective contained http2_recv_timeout
+syn keyword ngxDirective contained if_modified_since
+syn keyword ngxDirective contained ignore_invalid_headers
+syn keyword ngxDirective contained image_filter
+syn keyword ngxDirective contained image_filter_buffer
+syn keyword ngxDirective contained image_filter_interlace
+syn keyword ngxDirective contained image_filter_jpeg_quality
+syn keyword ngxDirective contained image_filter_sharpen
+syn keyword ngxDirective contained image_filter_transparency
+syn keyword ngxDirective contained image_filter_webp_quality
+syn keyword ngxDirective contained imap_auth
+syn keyword ngxDirective contained imap_capabilities
+syn keyword ngxDirective contained imap_client_buffer
+syn keyword ngxDirective contained index
+syn keyword ngxDirective contained iocp_threads
+syn keyword ngxDirective contained ip_hash
+syn keyword ngxDirective contained js_access
+syn keyword ngxDirective contained js_content
+syn keyword ngxDirective contained js_filter
+syn keyword ngxDirective contained js_include
+syn keyword ngxDirective contained js_preread
+syn keyword ngxDirective contained js_set
+syn keyword ngxDirective contained keepalive
+syn keyword ngxDirective contained keepalive_disable
+syn keyword ngxDirective contained keepalive_requests
+syn keyword ngxDirective contained keepalive_timeout
+syn keyword ngxDirective contained kqueue_changes
+syn keyword ngxDirective contained kqueue_events
+syn keyword ngxDirective contained large_client_header_buffers
+syn keyword ngxDirective contained least_conn
+syn keyword ngxDirective contained least_time
+syn keyword ngxDirective contained limit_conn
+syn keyword ngxDirective contained limit_conn_log_level
+syn keyword ngxDirective contained limit_conn_status
+syn keyword ngxDirective contained limit_conn_zone
+syn keyword ngxDirective contained limit_rate
+syn keyword ngxDirective contained limit_rate_after
+syn keyword ngxDirective contained limit_req
+syn keyword ngxDirective contained limit_req_log_level
+syn keyword ngxDirective contained limit_req_status
+syn keyword ngxDirective contained limit_req_zone
+syn keyword ngxDirective contained lingering_close
+syn keyword ngxDirective contained lingering_time
+syn keyword ngxDirective contained lingering_timeout
+syn keyword ngxDirective contained load_module
+syn keyword ngxDirective contained lock_file
+syn keyword ngxDirective contained log_format
+syn keyword ngxDirective contained log_not_found
+syn keyword ngxDirective contained log_subrequest
+syn keyword ngxDirective contained map_hash_bucket_size
+syn keyword ngxDirective contained map_hash_max_size
+syn keyword ngxDirective contained match
+syn keyword ngxDirective contained master_process
+syn keyword ngxDirective contained max_ranges
+syn keyword ngxDirective contained memcached_bind
+syn keyword ngxDirective contained memcached_buffer_size
+syn keyword ngxDirective contained memcached_connect_timeout
+syn keyword ngxDirective contained memcached_force_ranges
+syn keyword ngxDirective contained memcached_gzip_flag
+syn keyword ngxDirective contained memcached_next_upstream
+syn keyword ngxDirective contained memcached_next_upstream_timeout
+syn keyword ngxDirective contained memcached_next_upstream_tries
+syn keyword ngxDirective contained memcached_read_timeout
+syn keyword ngxDirective contained memcached_send_timeout
+syn keyword ngxDirective contained merge_slashes
+syn keyword ngxDirective contained min_delete_depth
+syn keyword ngxDirective contained modern_browser
+syn keyword ngxDirective contained modern_browser_value
+syn keyword ngxDirective contained mp4
+syn keyword ngxDirective contained mp4_buffer_size
+syn keyword ngxDirective contained mp4_max_buffer_size
+syn keyword ngxDirective contained mp4_limit_rate
+syn keyword ngxDirective contained mp4_limit_rate_after
+syn keyword ngxDirective contained msie_padding
+syn keyword ngxDirective contained msie_refresh
+syn keyword ngxDirective contained multi_accept
+syn keyword ngxDirective contained ntlm
+syn keyword ngxDirective contained open_file_cache
+syn keyword ngxDirective contained open_file_cache_errors
+syn keyword ngxDirective contained open_file_cache_events
+syn keyword ngxDirective contained open_file_cache_min_uses
+syn keyword ngxDirective contained open_file_cache_valid
+syn keyword ngxDirective contained open_log_file_cache
+syn keyword ngxDirective contained output_buffers
+syn keyword ngxDirective contained override_charset
+syn keyword ngxDirective contained pcre_jit
+syn keyword ngxDirective contained perl
+syn keyword ngxDirective contained perl_modules
+syn keyword ngxDirective contained perl_require
+syn keyword ngxDirective contained perl_set
+syn keyword ngxDirective contained pid
+syn keyword ngxDirective contained pop3_auth
+syn keyword ngxDirective contained pop3_capabilities
+syn keyword ngxDirective contained port_in_redirect
+syn keyword ngxDirective contained post_acceptex
+syn keyword ngxDirective contained postpone_gzipping


More information about the nginx-devel mailing list