1" Vim syntax file 2" Language: N1QL / Couchbase Server 3" Maintainer: Eugene Ciurana <n1ql AT cime.net> 4" Version: 1.0 5" Source: https://github.com/pr3d4t0r/n1ql-vim-syntax 6" 7" License: Vim is Charityware. n1ql.vim syntax is Charityware. 8" (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r. Licensed 9" under the standard VIM LICENSE - Vim command :help uganda.txt 10" for details. 11" 12" Questions, comments: <n1ql AT cime.net> 13" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r 14" 15" vim: set fileencoding=utf-8: 16 17 18if exists("b:current_syntax") 19 finish 20endif 21 22 23syn case ignore 24 25syn keyword n1qlSpecial DATASTORES 26syn keyword n1qlSpecial DUAL 27syn keyword n1qlSpecial FALSE 28syn keyword n1qlSpecial INDEXES 29syn keyword n1qlSpecial KEYSPACES 30syn keyword n1qlSpecial MISSING 31syn keyword n1qlSpecial NAMESPACES 32syn keyword n1qlSpecial NULL 33syn keyword n1qlSpecial TRUE 34 35 36" 37" *** keywords *** 38" 39syn keyword n1qlKeyword ALL 40syn keyword n1qlKeyword ANY 41syn keyword n1qlKeyword ASC 42syn keyword n1qlKeyword BEGIN 43syn keyword n1qlKeyword BETWEEN 44syn keyword n1qlKeyword BREAK 45syn keyword n1qlKeyword BUCKET 46syn keyword n1qlKeyword CALL 47syn keyword n1qlKeyword CASE 48syn keyword n1qlKeyword CAST 49syn keyword n1qlKeyword CLUSTER 50syn keyword n1qlKeyword COLLATE 51syn keyword n1qlKeyword COLLECTION 52syn keyword n1qlKeyword CONNECT 53syn keyword n1qlKeyword CONTINUE 54syn keyword n1qlKeyword CORRELATE 55syn keyword n1qlKeyword COVER 56syn keyword n1qlKeyword DATABASE 57syn keyword n1qlKeyword DATASET 58syn keyword n1qlKeyword DATASTORE 59syn keyword n1qlKeyword DECLARE 60syn keyword n1qlKeyword DECREMENT 61syn keyword n1qlKeyword DERIVED 62syn keyword n1qlKeyword DESC 63syn keyword n1qlKeyword DESCRIBE 64syn keyword n1qlKeyword DO 65syn keyword n1qlKeyword EACH 66syn keyword n1qlKeyword ELEMENT 67syn keyword n1qlKeyword ELSE 68syn keyword n1qlKeyword END 69syn keyword n1qlKeyword EVERY 70syn keyword n1qlKeyword EXCLUDE 71syn keyword n1qlKeyword EXISTS 72syn keyword n1qlKeyword FETCH 73syn keyword n1qlKeyword FIRST 74syn keyword n1qlKeyword FLATTEN 75syn keyword n1qlKeyword FOR 76syn keyword n1qlKeyword FORCE 77syn keyword n1qlKeyword FROM 78syn keyword n1qlKeyword FUNCTION 79syn keyword n1qlKeyword GROUP 80syn keyword n1qlKeyword GSI 81syn keyword n1qlKeyword HAVING 82syn keyword n1qlKeyword IF 83syn keyword n1qlKeyword IGNORE 84syn keyword n1qlKeyword INCLUDE 85syn keyword n1qlKeyword INCREMENT 86syn keyword n1qlKeyword INDEX 87syn keyword n1qlKeyword INITIAL 88syn keyword n1qlKeyword INLINE 89syn keyword n1qlKeyword INNER 90syn keyword n1qlKeyword INTO 91syn keyword n1qlKeyword KEY 92syn keyword n1qlKeyword KEYS 93syn keyword n1qlKeyword KEYSPACE 94syn keyword n1qlKeyword KNOWN 95syn keyword n1qlKeyword LAST 96syn keyword n1qlKeyword LET 97syn keyword n1qlKeyword LETTING 98syn keyword n1qlKeyword LIMIT 99syn keyword n1qlKeyword LOOP 100syn keyword n1qlKeyword LSM 101syn keyword n1qlKeyword MAP 102syn keyword n1qlKeyword MAPPING 103syn keyword n1qlKeyword MATCHED 104syn keyword n1qlKeyword MATERIALIZED 105syn keyword n1qlKeyword MERGE 106syn keyword n1qlKeyword NAMESPACE 107syn keyword n1qlKeyword NEST 108syn keyword n1qlKeyword OPTION 109syn keyword n1qlKeyword ORDER 110syn keyword n1qlKeyword OUTER 111syn keyword n1qlKeyword OVER 112syn keyword n1qlKeyword PARSE 113syn keyword n1qlKeyword PARTITION 114syn keyword n1qlKeyword PASSWORD 115syn keyword n1qlKeyword PATH 116syn keyword n1qlKeyword POOL 117syn keyword n1qlKeyword PRIMARY 118syn keyword n1qlKeyword PRIVATE 119syn keyword n1qlKeyword PRIVILEGE 120syn keyword n1qlKeyword PROCEDURE 121syn keyword n1qlKeyword PUBLIC 122syn keyword n1qlKeyword REALM 123syn keyword n1qlKeyword REDUCE 124syn keyword n1qlKeyword RETURN 125syn keyword n1qlKeyword RETURNING 126syn keyword n1qlKeyword ROLE 127syn keyword n1qlKeyword SATISFIES 128syn keyword n1qlKeyword SCHEMA 129syn keyword n1qlKeyword SELF 130syn keyword n1qlKeyword SEMI 131syn keyword n1qlKeyword SHOW 132syn keyword n1qlKeyword START 133syn keyword n1qlKeyword STATISTICS 134syn keyword n1qlKeyword SYSTEM 135syn keyword n1qlKeyword THEN 136syn keyword n1qlKeyword TRANSACTION 137syn keyword n1qlKeyword TRIGGER 138syn keyword n1qlKeyword UNDER 139syn keyword n1qlKeyword UNKNOWN 140syn keyword n1qlKeyword UNSET 141syn keyword n1qlKeyword USE 142syn keyword n1qlKeyword USER 143syn keyword n1qlKeyword USING 144syn keyword n1qlKeyword VALIDATE 145syn keyword n1qlKeyword VALUE 146syn keyword n1qlKeyword VALUED 147syn keyword n1qlKeyword VALUES 148syn keyword n1qlKeyword VIEW 149syn keyword n1qlKeyword WHEN 150syn keyword n1qlKeyword WHERE 151syn keyword n1qlKeyword WHILE 152syn keyword n1qlKeyword WITHIN 153syn keyword n1qlKeyword WORK 154 155 156" 157" *** functions *** 158" 159syn keyword n1qlOperator ABS 160syn keyword n1qlOperator ACOS 161syn keyword n1qlOperator ARRAY_AGG 162syn keyword n1qlOperator ARRAY_APPEND 163syn keyword n1qlOperator ARRAY_AVG 164syn keyword n1qlOperator ARRAY_CONCAT 165syn keyword n1qlOperator ARRAY_CONTAINS 166syn keyword n1qlOperator ARRAY_COUNT 167syn keyword n1qlOperator ARRAY_DISTINCT 168syn keyword n1qlOperator ARRAY_FLATTEN 169syn keyword n1qlOperator ARRAY_IFNULL 170syn keyword n1qlOperator ARRAY_INSERT 171syn keyword n1qlOperator ARRAY_INTERSECT 172syn keyword n1qlOperator ARRAY_LENGTH 173syn keyword n1qlOperator ARRAY_MAX 174syn keyword n1qlOperator ARRAY_MIN 175syn keyword n1qlOperator ARRAY_POSITION 176syn keyword n1qlOperator ARRAY_PREPEND 177syn keyword n1qlOperator ARRAY_PUT 178syn keyword n1qlOperator ARRAY_RANGE 179syn keyword n1qlOperator ARRAY_REMOVE 180syn keyword n1qlOperator ARRAY_REPEAT 181syn keyword n1qlOperator ARRAY_REPLACE 182syn keyword n1qlOperator ARRAY_REVERSE 183syn keyword n1qlOperator ARRAY_SORT 184syn keyword n1qlOperator ARRAY_START 185syn keyword n1qlOperator ARRAY_SUM 186syn keyword n1qlOperator ARRAY_SYMDIFF 187syn keyword n1qlOperator ARRAY_UNION 188syn keyword n1qlOperator ASIN 189syn keyword n1qlOperator ATAN 190syn keyword n1qlOperator ATAN2 191syn keyword n1qlOperator AVG 192syn keyword n1qlOperator BASE64 193syn keyword n1qlOperator BASE64_DECODE 194syn keyword n1qlOperator BASE64_ENCODE 195syn keyword n1qlOperator CEIL 196syn keyword n1qlOperator CLOCK_LOCAL 197syn keyword n1qlOperator CLOCK_STR 198syn keyword n1qlOperator CLOCK_TZ 199syn keyword n1qlOperator CLOCK_UTC 200syn keyword n1qlOperator CLOCL_MILLIS 201syn keyword n1qlOperator CONTAINS 202syn keyword n1qlOperator COS 203syn keyword n1qlOperator COUNT 204syn keyword n1qlOperator DATE_ADD_MILLIS 205syn keyword n1qlOperator DATE_ADD_STR 206syn keyword n1qlOperator DATE_DIFF_MILLIS 207syn keyword n1qlOperator DATE_DIFF_STR 208syn keyword n1qlOperator DATE_FORMAT_STR 209syn keyword n1qlOperator DATE_PART_MILLIS 210syn keyword n1qlOperator DATE_PART_STR 211syn keyword n1qlOperator DATE_RANGE_MILLIS 212syn keyword n1qlOperator DATE_RANGE_STR 213syn keyword n1qlOperator DATE_TRUC_STR 214syn keyword n1qlOperator DATE_TRUNC_MILLIS 215syn keyword n1qlOperator DECODE_JSON 216syn keyword n1qlOperator DEGREES 217syn keyword n1qlOperator DURATION_TO_STR 218syn keyword n1qlOperator E 219syn keyword n1qlOperator ENCODED_SIZE 220syn keyword n1qlOperator ENCODE_JSON 221syn keyword n1qlOperator EXP 222syn keyword n1qlOperator FLOOR 223syn keyword n1qlOperator GREATEST 224syn keyword n1qlOperator IFINF 225syn keyword n1qlOperator IFMISSING 226syn keyword n1qlOperator IFMISSINGORNULL 227syn keyword n1qlOperator IFNAN 228syn keyword n1qlOperator IFNANORINF 229syn keyword n1qlOperator IFNULL 230syn keyword n1qlOperator INITCAP 231syn keyword n1qlOperator ISARRAY 232syn keyword n1qlOperator ISATOM 233syn keyword n1qlOperator ISBOOLEAN 234syn keyword n1qlOperator ISNUMBER 235syn keyword n1qlOperator ISOBJECT 236syn keyword n1qlOperator ISSTRING 237syn keyword n1qlOperator LEAST 238syn keyword n1qlOperator LENGTH 239syn keyword n1qlOperator LN 240syn keyword n1qlOperator LOG 241syn keyword n1qlOperator LOWER 242syn keyword n1qlOperator LTRIM 243syn keyword n1qlOperator MAX 244syn keyword n1qlOperator META 245syn keyword n1qlOperator MILLIS 246syn keyword n1qlOperator MILLIS_TO_LOCAL 247syn keyword n1qlOperator MILLIS_TO_STR 248syn keyword n1qlOperator MILLIS_TO_TZ 249syn keyword n1qlOperator MILLIS_TO_UTC 250syn keyword n1qlOperator MILLIS_TO_ZONE_NAME 251syn keyword n1qlOperator MIN 252syn keyword n1qlOperator MISSINGIF 253syn keyword n1qlOperator NANIF 254syn keyword n1qlOperator NEGINFIF 255syn keyword n1qlOperator NOW_LOCAL 256syn keyword n1qlOperator NOW_MILLIS 257syn keyword n1qlOperator NOW_STR 258syn keyword n1qlOperator NOW_TZ 259syn keyword n1qlOperator NOW_UTC 260syn keyword n1qlOperator NULLIF 261syn keyword n1qlOperator OBJECT_ADD 262syn keyword n1qlOperator OBJECT_CONCAT 263syn keyword n1qlOperator OBJECT_INNER_PAIRS 264syn keyword n1qlOperator OBJECT_INNER_VALUES 265syn keyword n1qlOperator OBJECT_LENGTH 266syn keyword n1qlOperator OBJECT_NAMES 267syn keyword n1qlOperator OBJECT_PAIRS 268syn keyword n1qlOperator OBJECT_PUT 269syn keyword n1qlOperator OBJECT_REMOVE 270syn keyword n1qlOperator OBJECT_RENAME 271syn keyword n1qlOperator OBJECT_REPLACE 272syn keyword n1qlOperator OBJECT_UNWRAP 273syn keyword n1qlOperator OBJECT_VALUES 274syn keyword n1qlOperator PI 275syn keyword n1qlOperator POLY_LENGTH 276syn keyword n1qlOperator POSINIF 277syn keyword n1qlOperator POSITION 278syn keyword n1qlOperator POWER 279syn keyword n1qlOperator RADIANS 280syn keyword n1qlOperator RANDOM 281syn keyword n1qlOperator REGEXP_CONTAINS 282syn keyword n1qlOperator REGEXP_LIKE 283syn keyword n1qlOperator REGEXP_POSITION 284syn keyword n1qlOperator REGEXP_REPLACE 285syn keyword n1qlOperator REPEAT 286syn keyword n1qlOperator REPLACE 287syn keyword n1qlOperator REVERSE 288syn keyword n1qlOperator ROUND 289syn keyword n1qlOperator RTRIM 290syn keyword n1qlOperator SIGN 291syn keyword n1qlOperator SIN 292syn keyword n1qlOperator SPLIT 293syn keyword n1qlOperator SQRT 294syn keyword n1qlOperator STR_TO_DURATION 295syn keyword n1qlOperator STR_TO_MILLIS 296syn keyword n1qlOperator STR_TO_TZ 297syn keyword n1qlOperator STR_TO_UTC 298syn keyword n1qlOperator STR_TO_ZONE_NAME 299syn keyword n1qlOperator SUBSTR 300syn keyword n1qlOperator SUFFIXES 301syn keyword n1qlOperator SUM 302syn keyword n1qlOperator TAN 303syn keyword n1qlOperator TITLE 304syn keyword n1qlOperator TOARRAY 305syn keyword n1qlOperator TOATOM 306syn keyword n1qlOperator TOBOOLEAN 307syn keyword n1qlOperator TOKENS 308syn keyword n1qlOperator TONUMBER 309syn keyword n1qlOperator TOOBJECT 310syn keyword n1qlOperator TOSTRING 311syn keyword n1qlOperator TRIM 312syn keyword n1qlOperator TRUNC 313syn keyword n1qlOperator TYPE 314syn keyword n1qlOperator UPPER 315syn keyword n1qlOperator UUID 316syn keyword n1qlOperator WEEKDAY_MILLIS 317syn keyword n1qlOperator WEEKDAY_STR 318 319 320" 321" *** operators *** 322" 323syn keyword n1qlOperator AND 324syn keyword n1qlOperator AS 325syn keyword n1qlOperator BY 326syn keyword n1qlOperator DISTINCT 327syn keyword n1qlOperator EXCEPT 328syn keyword n1qlOperator ILIKE 329syn keyword n1qlOperator IN 330syn keyword n1qlOperator INTERSECT 331syn keyword n1qlOperator IS 332syn keyword n1qlOperator JOIN 333syn keyword n1qlOperator LEFT 334syn keyword n1qlOperator LIKE 335syn keyword n1qlOperator MINUS 336syn keyword n1qlOperator NEST 337syn keyword n1qlOperator NESTING 338syn keyword n1qlOperator NOT 339syn keyword n1qlOperator OFFSET 340syn keyword n1qlOperator ON 341syn keyword n1qlOperator OR 342syn keyword n1qlOperator OUT 343syn keyword n1qlOperator RIGHT 344syn keyword n1qlOperator SOME 345syn keyword n1qlOperator TO 346syn keyword n1qlOperator UNION 347syn keyword n1qlOperator UNIQUE 348syn keyword n1qlOperator UNNEST 349syn keyword n1qlOperator VIA 350syn keyword n1qlOperator WITH 351syn keyword n1qlOperator XOR 352 353 354" 355" *** statements *** 356" 357syn keyword n1qlStatement ALTER 358syn keyword n1qlStatement ANALYZE 359syn keyword n1qlStatement BUILD 360syn keyword n1qlStatement COMMIT 361syn keyword n1qlStatement CREATE 362syn keyword n1qlStatement DELETE 363syn keyword n1qlStatement DROP 364syn keyword n1qlStatement EXECUTE 365syn keyword n1qlStatement EXPLAIN 366syn keyword n1qlStatement GRANT 367syn keyword n1qlStatement INFER 368syn keyword n1qlStatement INSERT 369syn keyword n1qlStatement MERGE 370syn keyword n1qlStatement PREPARE 371syn keyword n1qlStatement RENAME 372syn keyword n1qlStatement REVOKE 373syn keyword n1qlStatement ROLLBACK 374syn keyword n1qlStatement SELECT 375syn keyword n1qlStatement SET 376syn keyword n1qlStatement TRUNCATE 377syn keyword n1qlStatement UPDATE 378syn keyword n1qlStatement UPSERT 379 380 381" 382" *** types *** 383" 384syn keyword n1qlType ARRAY 385syn keyword n1qlType BINARY 386syn keyword n1qlType BOOLEAN 387syn keyword n1qlType NUMBER 388syn keyword n1qlType OBJECT 389syn keyword n1qlType RAW 390syn keyword n1qlType STRING 391 392 393" 394" *** strings and characters *** 395" 396syn region n1qlString start=+"+ skip=+\\\\\|\\"+ end=+"+ 397syn region n1qlString start=+'+ skip=+\\\\\|\\'+ end=+'+ 398syn region n1qlBucketSpec start=+`+ skip=+\\\\\|\\'+ end=+`+ 399 400 401" 402" *** numbers *** 403" 404syn match n1qlNumber "-\=\<\d*\.\=[0-9_]\>" 405 406 407" 408" *** comments *** 409" 410syn region n1qlComment start="/\*" end="\*/" contains=n1qlTODO 411syn match n1qlComment "--.*$" contains=n1qlTODO 412syn sync ccomment n1qlComment 413 414 415" 416" *** TODO *** 417" 418syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE 419 420 421" 422" *** enable *** 423" 424hi def link n1qlBucketSpec Underlined 425hi def link n1qlComment Comment 426hi def link n1qlKeyword Macro 427hi def link n1qlOperator Function 428hi def link n1qlSpecial Special 429hi def link n1qlStatement Statement 430hi def link n1qlString String 431hi def link n1qlTODO Todo 432hi def link n1qlType Type 433 434let b:current_syntax = "n1ql" 435