summaryrefslogtreecommitdiffstats
path: root/tools/syntax/nano/icinga2.nanorc
blob: cff78be3b640765677cc9f76405316c5b806cbfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
### Nano synteax file
### Icinga2 object configuration file 

syntax 	"icinga2" "/etc/icinga2/.*\.conf$" "/usr/share/icinga2/include/(plugin|itl|.*\.conf$)"

## objects types
icolor brightgreen 		"object[ \t]+(host|hostgroup|service|servicegroup|user|usergroup)"
icolor brightgreen 		"object[ \t]+(checkcommand|notificationcommand|eventcommand|notification)"
icolor brightgreen 		"object[ \t]+(timeperiod|scheduleddowntime|dependency|perfdatawriter)"
icolor brightgreen 		"object[ \t]+(graphitewriter|idomysqlconnection|idomysqlconnection)"
icolor brightgreen 		"object[ \t]+(livestatuslistener|externalcommandlistener)"
icolor brightgreen 		"object[ \t]+(compatlogger|checkcomponent|notificationcomponent)"
icolor brightgreen 		"object[ \t]+(filelogger|sysloglogger|journaldlogger|apilistener|endpoint|zone)"

## apply def
icolor brightgreen 		"apply[ \t]+(Service|Dependency|Notification|ScheduledDowntime)"


## objects attributes
icolor red 		"(^|^\s+)(accept_commands|accept_config|action_url|address|address6|arguments|author|bind_host)"
icolor red 		"(^|^\s+)(bind_port|ca_path|categories|cert_path|check_command|check_interval)"
icolor red 		"(^|^\s+)(check_period|child_host_name|child_service_name|cleanup|command|command_endpoint|command_path)"
icolor red 		"(^|^\s+)(comment|compat_log_path|crl_path|database|disable_checks|disable_notifications)"
icolor red 		"(^|^\s+)(display_name|duration|email|enable_active_checks|enable_event_handler)"
icolor red 		"(^|^\s+)(enable_flapping|enable_ha|enable_notifications|enable_passive_checks|enable_perfdata)"
icolor red 		"(^|^\s+)(endpoints|env|event_command|failover_timeout|fixed|flapping_threshold|groups|host)"
icolor red 		"(^|^\s+)(host_format_template|host_name|host_name_template|host_perfdata_path|host_temp_path|icon_image)"
icolor red 		"(^|^\s+)(icon_image_alt|instance_description|instance_name|interval|key_path|log_dir)"
icolor red 		"(^|^\s+)(log_duration|max_check_attempts|methods|name|notes|notes_url|objects_path)"
icolor red 		"(^|^\s+)(pager|parent|parent_host_name|parent_service_name|password|path|period)"
icolor red 		"(^|^\s+)(port|ranges|retry_interval|rotation_interval|rotation_method)"
icolor red 		"(^|^\s+)(service_format_template|service_name|service_name_template|service_perfdata_path|service_temp_path)"
icolor red 		"(^|^\s+)(severity|socket_path|socket_type|spool_dir|states|status_path|table_prefix)"
icolor red 		"(^|^\s+)(timeout|times|types|update_interval|user|user_groups|users|volatile|zone)"
icolor red 		"(^|^\s+)(vars\.\w+)"


## keywords
icolor red 		"(^|^\s+)|(icinga2Keyword|template|const|import|include|include_recursive|var|function|return|to|use|locals|globals|this)\s+"

## Assign conditions
icolor magenta 	"(assign|ignore)[ \t]+where"

## Global functions
icolor white 	"(regex|match|len|union|intersection|keys|string|number|bool|random|log|typeof|get_time|exit)"

## Accessor Functions
icolor white 	"(get_host|get_service|get_user|get_check_command|get_event_command|get_notification_command)"
icolor white 	"(get_host_group|get_service_group|get_user_group|get_time_period)"


## Math functions
icolor white	"(Math.E|Math.LN2|Math.LN10|Math.LOG2E|Math.PI|Math.SQRT1_2|Math.SQRT2)"
icolor white	"(Math.abs|Math.acos|Math.asin|Math.atan|Math.atan2|Math.ceil|Math.cos)"
icolor white	"(Math.exp|Math.floor|Math.isinf|Math.isnan|Math.log|Math.max|Math.min)"
icolor white	"(Math.pow|Math.random|Math.round|Math.sign|Math.sin|Math.sqrt|Math.tan)"

## Json functions
icolor white 	"(Json.encode|Json.decode)"

## String functions
icolor white	"(\.to_string)"
icolor white	"(\.find)"
icolor white	"(\.contains)"
icolor white	"(\.len)"
icolor white	"(\.lower)"
icolor white	"(\.upper)"
icolor white	"(\.replace)"
icolor white	"(\.split)"
icolor white	"(\.substr)"

## Array and Dict  Functions
icolor white	"(\.add)"
icolor white	"(\.clear)"
icolor white	"(\.clone)"
icolor white	"(\.contains)"
icolor white	"(\.len)"
icolor white	"(\.remove)"
icolor white	"(\.set)"
icolor white	"(\.remove)"
icolor white	"(\.sort)"
icolor white	"(\.join)"
icolor white	"(\.clone)"
icolor white	"(\.call)"
icolor white	"(\.callv)"


## Conditional statements
icolor white	"(if|else)"

## Loops
icolor white	"(while|for|break|continue)"

## Operators
icolor green		"\s(\.)\s"
icolor green		"\s(!)\s"
icolor green		"\s(\~)\s"
icolor green		"\s(\+)\s"
icolor green		"\s(-)\s"
icolor green		"\s(\*)\s"
icolor green		"\s(/)\s"
icolor green		"\s(%)\s"
icolor green		"\s(=)\s"
icolor green		"\s(<)\s"
icolor green		"\s(>)\s"
icolor green		"\s(<<)\s"
icolor green		"\s(>>)\s"
icolor green		"\s(<=)\s"
icolor green		"\s(>=)\s"
icolor green		"\s(in)\s"
icolor green		"\s(!in)\s"
icolor green		"\s(==)\s"
icolor green		"\s(!=)\s"
icolor green		"\s(&)\s"
icolor green		"\s(\^)\s"
icolor green		"\s(|)\s"
icolor green		"\s(&&)\s"
icolor green		"\s(||)\s"
icolor green		"\s(=>)\s"
icolor green		"\s(\+=)\s"
icolor green		"\s(-=)\s"
icolor green		"\s(\*=)\s"
icolor green		"\s(/=)\s"

## Global constats
icolor yellow 	"(PrefixDir|SysconfDir|ZonesDir|LocalStateDir|RunDir|PkgDataDir|StatePath|ObjectsPath)"
icolor yellow 	"(PidPath|NodeName|ApplicationType|EnableNotifications|EnableEventHandlers|EnableFlapping)"
icolor yellow 	"(EnableHostChecks|EnableServiceChecks|EnablePerfdata|UseVfork|RunAsUser|RunAsGroup|PluginDir)"
icolor yellow 	"(Vars\s+)"

## Boolean
icolor blue 	"(true|false)"

# Null
icolor blue  	"(null)"


## comments
color brightblue 	"\/\/.*"
color brightblue  	"^[ \t]*\*\($\|[ \t]\+\)"
color brightblue 	start="/\*"  end="\*/"

## Braces and Parens definition
# - Braces are used in dictionary definition

color magenta 	"(\(|\))"
color magenta 	"(\[|\])"
color magenta 	"(\{|\})"

## type definitions
# - double quotes "
# - single quotes '
# - brackets <>

color brightyellow		"'"
color brightyellow		"""
color brightyellow  	start="<"   end=">"