mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	closes: #14619 Signed-off-by: Vito <vito.blog@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
		
			
				
	
	
		
			131 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim compiler file
 | |
| " Language:	jq
 | |
| " Maintainer:	Vito <vito.blog@gmail.com>
 | |
| " Last Change:	2024 Apr 17
 | |
| " Upstream: https://github.com/vito-c/jq.vim
 | |
| "
 | |
| " Quit when a (custom) syntax file was already loaded
 | |
| if exists('b:current_syntax')
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " syn include @jqHtml syntax/html.vim  " Doc comment HTML
 | |
| 
 | |
| " jqTodo
 | |
| syntax keyword jqTodo contained TODO FIXME NOTE XXX
 | |
| 
 | |
| " jqKeywords
 | |
| syntax keyword jqKeywords and or not empty
 | |
| syntax keyword jqKeywords try catch
 | |
| syntax keyword jqKeywords reduce as label break foreach
 | |
| syntax keyword jqKeywords import include module modulemeta
 | |
| syntax keyword jqKeywords env nth has in while error stderr debug
 | |
| 
 | |
| " jqConditional
 | |
| syntax keyword jqConditional if then elif else end
 | |
| 
 | |
| " jqConditions
 | |
| syntax keyword jqCondtions true false null
 | |
| 
 | |
| " jqSpecials
 | |
| syntax keyword jqType type
 | |
| syntax match jqType /[\|;]/ " not really a type I did this for coloring reasons though :help group-name
 | |
| syntax region jqParentheses start=+(+ end=+)+ fold transparent
 | |
| 
 | |
| " jq Functions
 | |
| syntax keyword jqFunction add all any arrays ascii_downcase floor
 | |
| syntax keyword jqFunction ascii_upcase booleans bsearch builtins capture combinations
 | |
| syntax keyword jqFunction \contains del delpaths endswith explode
 | |
| syntax keyword jqFunction finites first flatten format from_entries
 | |
| syntax keyword jqFunction fromdate fromdateiso8601 fromjson fromstream get_jq_origin
 | |
| syntax keyword jqFunction get_prog_origin get_search_list getpath gmtime group_by
 | |
| syntax keyword jqFunction gsub halt halt_error implode index indices infinite
 | |
| syntax keyword jqFunction input input_filename input_line_number inputs inside
 | |
| syntax keyword jqFunction isempty isfinite isinfinite isnan isnormal iterables
 | |
| syntax keyword jqFunction join keys keys_unsorted last leaf_paths
 | |
| syntax keyword jqFunction length limit localtime ltrimstr map map_values
 | |
| syntax keyword jqFunction match max max_by min min_by
 | |
| syntax keyword jqFunction mktime nan normals now
 | |
| syntax keyword jqFunction nulls numbers objects path paths range
 | |
| syntax keyword jqFunction recurse recurse_down repeat reverse rindex
 | |
| syntax keyword jqFunction rtrimstr scalars scalars_or_empty scan select
 | |
| syntax keyword jqFunction setpath sort sort_by split splits with_entries
 | |
| syntax keyword jqFunction startswith strflocaltime strftime strings strptime sub
 | |
| syntax keyword jqFunction test to_entries todate todateiso8601 tojson __loc__
 | |
| syntax keyword jqFunction tonumber tostream tostring transpose truncate_stream
 | |
| syntax keyword jqFunction unique unique_by until utf8bytelength values walk
 | |
| " TODO: $__loc__ is going to be a pain
 | |
| 
 | |
| " jq Math Functions
 | |
| syntax keyword jqFunction acos acosh asin asinh atan atanh cbrt ceil cos cosh
 | |
| syntax keyword jqFunction erf erfc exp exp10 exp2 expm1 fabs floor gamma j0 j1
 | |
| syntax keyword jqFunction lgamma lgamma_r log log10 log1p log2 logb nearbyint
 | |
| syntax keyword jqFunction pow10 rint round significand sin sinh sqrt tan tanh
 | |
| syntax keyword jqFunction tgamma trunc y0 y1
 | |
| syntax keyword jqFunction atan2 copysign drem fdim fmax fmin fmod frexp hypot
 | |
| syntax keyword jqFunction jn ldexp modf nextafter nexttoward pow remainder
 | |
| syntax keyword jqFunction scalb scalbln yn
 | |
| syntax keyword jqFunction fma
 | |
| 
 | |
| " jq SQL-style Operators
 | |
| syntax keyword jqFunction INDEX JOIN IN
 | |
| 
 | |
| " Macro
 | |
| syntax match jqMacro "@\%(text\|json\|html\|uri\|[ct]sv\|sh\|base64d\?\)\>"
 | |
| 
 | |
| " Comments
 | |
| syntax match jqComment "#.*" contains=jqTodo
 | |
| 
 | |
| " Variables
 | |
| syn match jqVariables /$[_A-Za-z0-9]\+/
 | |
| 
 | |
| " Definition
 | |
| syntax keyword jqKeywords def nextgroup=jqNameDefinition skipwhite
 | |
| syn match jqNameDefinition /\<[_A-Za-z0-9]\+\>/ contained nextgroup=jqPostNameDefinition
 | |
| syn match jqNameDefinition /`[^`]\+`/ contained nextgroup=jqPostNameDefinition
 | |
| 
 | |
| " Strings
 | |
| syn region jqError start=+'+ end=+'\|$\|[;)]\@=+
 | |
| syn region jqString matchgroup=jqQuote
 | |
|             \ start=+"+ skip=+\\[\\"]+ end=+"+
 | |
|             \ contains=@Spell,jqInterpolation
 | |
| syn region jqInterpolation matchgroup=jqInterpolationDelimiter
 | |
|             \ start=+\%([^\\]\%(\\\\\)*\\\)\@<!\\(+ end=+)+
 | |
|             \ contained contains=TOP
 | |
| 
 | |
| " Operators
 | |
| syn match jqOperator /:\|\([-+*/%<>=]\|\/\/\)=\?\|[!|]=\|?\/\//
 | |
| "syn region jqRange matchgroup=jqSquareBracket start=+\[+ skip=+:+ end=+\]+
 | |
| 
 | |
| " Errors
 | |
| syn keyword jqError _assign _flatten _modify _nwise _plus _negate _minus _multiply
 | |
| syn keyword jqError _divide _mod _strindices _equal _notequal _less _greater _lesseq
 | |
| syn keyword jqError _greatereq _sort_by_impl _group_by_impl _min_by_impl _max_by_impl _match_impl _input
 | |
| " TODO: these errors should show up when doing def _flatten: as well
 | |
| 
 | |
| " Numbers
 | |
| syn match jqNumber /\<0[dDfFlL]\?\>/ " Just a bare 0
 | |
| syn match jqNumber /\<[1-9]\d*[dDfFlL]\?\>/  " A multi-digit number - octal numbers with leading 0's are deprecated in Scala
 | |
| 
 | |
| if !exists('jq_quote_highlight')
 | |
|     highlight def link jqQuote        String
 | |
| else
 | |
|     highlight def link jqQuote        Type
 | |
| endif
 | |
| 
 | |
| hi def link jqCondtions              Boolean
 | |
| hi def link jqVariables              Identifier
 | |
| hi def link jqNameDefinition         Function
 | |
| hi def link jqTodo                   Todo
 | |
| hi def link jqComment                Comment
 | |
| hi def link jqKeywords               Keyword
 | |
| hi def link jqType                   Type
 | |
| hi def link jqOperator               Operator
 | |
| hi def link jqFunction               Function
 | |
| hi def link jqMacro                  Macro
 | |
| hi def link jqError                  Error
 | |
| hi def link jqString                 String
 | |
| hi def link jqInterpolationDelimiter Delimiter
 | |
| hi def link jqConditional            Conditional
 | |
| hi def link jqNumber                 Number
 |