view runtime/syntax/initng.vim @ 34633:45d13860879a v9.1.0203

patch 9.1.0203: build-error on GNU/Hurd Commit: https://github.com/vim/vim/commit/4a95377593d06599a88670fcb6b49041a4b47abe Author: James McCoy <jamessan@jamessan.com> Date: Mon Mar 25 16:22:23 2024 +0100 patch 9.1.0203: build-error on GNU/Hurd Problem: build-error on GNU HURD Solution: Define _XOPEN_SOURCE like for Android and Cygwin (James McCoy) strptime() requires _XOPEN_SOURCE to be defined for its declaration to be visible. This is already done for non-Android Linux and Cygwin, but also needs to be exposed for GNU/Hurd. closes: #14285 Signed-off-by: James McCoy <jamessan@jamessan.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Mon, 25 Mar 2024 16:30:12 +0100
parents 1e9e9d89f0ee
children
line wrap: on
line source

" Vim syntax file
" Language:	initng .i files
" Maintainer:	Elan Ruusamäe <glen@pld-linux.org>
" URL:		http://glen.alkohol.ee/pld/initng/
" License:	GPL v2
" Version:	0.13
" Last Change:	$Date: 2007/05/05 17:17:40 $
"
" Syntax highlighting for initng .i files. Inherits from sh.vim and adds
" in the hiliting to start/stop {} blocks. Requires vim 6.3 or later.

if &compatible || v:version < 603
	finish
endif

if exists("b:current_syntax")
	finish
endif

syn case match

let is_bash = 1
syn include @shTop syntax/sh.vim

syn region	initngService			matchgroup=initngServiceHeader start="^\s*\(service\|virtual\|daemon\|class\|cron\)\s\+\(\(\w\|[-/*]\)\+\(\s\+:\s\+\(\w\|[-/*]\)\+\)\?\)\s\+{" end="}" contains=@initngServiceCluster
syn cluster initngServiceCluster	contains=initngComment,initngAction,initngServiceOption,initngServiceHeader,initngDelim,initngVariable

syn region	initngAction			matchgroup=initngActionHeader start="^\s*\(script start\|script stop\|script run\)\s*=\s*{" end="}" contains=@initngActionCluster
syn cluster initngActionCluster		contains=@shTop

syn match	initngDelim				/[{}]/	contained

syn region	initngString			start=/"/ end=/"/ skip=/\\"/

" option = value
syn match	initngServiceOption		/.\+\s*=.\+;/ contains=initngServiceKeywords,initngSubstMacro contained
" option without value
syn match	initngServiceOption		/\w\+;/ contains=initngServiceKeywords,initngSubstMacro contained

" options with value
syn keyword	initngServiceKeywords	also_stop need use nice setuid contained
syn keyword	initngServiceKeywords	delay chdir suid sgid start_pause env_file env_parse pid_file pidfile contained
syn keyword	initngServiceKeywords	pid_of up_when_pid_set stdout stderr syncron just_before contained
syn keyword	initngServiceKeywords	provide lockfile daemon_stops_badly contained
syn match	initngServiceKeywords	/\(script\|exec\(_args\)\?\) \(start\|stop\|daemon\)/ contained
syn match	initngServiceKeywords	/env\s\+\w\+/ contained

" rlimits
syn keyword	initngServiceKeywords	rlimit_cpu_hard rlimit_core_soft contained

" single options
syn keyword	initngServiceKeywords	last respawn network_provider require_network require_file critical forks contained
" cron options
syn keyword	initngServiceKeywords	hourly contained
syn match	initngVariable			/\${\?\w\+\}\?/

" Substituted @foo@ macros:
" ==========
syn match	initngSubstMacro		/@[^@]\+@/	contained
syn cluster initngActionCluster		add=initngSubstMacro
syn cluster shCommandSubList		add=initngSubstMacro

" Comments:
" ==========
syn cluster	initngCommentGroup		contains=initngTodo,@Spell
syn keyword	initngTodo				TODO FIXME XXX contained
syn match	initngComment			/#.*$/ contains=@initngCommentGroup

" install_service #macros
" TODO: syntax check for ifd-endd pairs
" ==========
syn region	initngDefine			start="^#\(endd\|elsed\|exec\|ifd\|endexec\|endd\)\>" skip="\\$" end="$" end="#"me=s-1
syn cluster shCommentGroup			add=initngDefine
syn cluster initngCommentGroup		add=initngDefine

hi def link	initngComment			Comment
hi def link initngTodo				Todo

hi def link	initngString			String
hi def link initngServiceKeywords	Define

hi def link	initngServiceHeader		Keyword
hi def link	initngActionHeader		Type
hi def link initngDelim				Delimiter

hi def link	initngVariable			PreProc
hi def link	initngSubstMacro		Comment
hi def link	initngDefine			Macro

let b:current_syntax = "initng"