mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 ee26b227e1
			
		
	
	ee26b227e1
	
	
	
		
			
			Update runtime files.
938ae280c7
Partially skip autocmd.txt: needs patch 8.2.5011.
Partially skip builtin.txt: needs patch 9.0.0411.
Partially skip eval.txt: needs patch 8.2.3783.
Cherry-pick :map-meta-keys from patch 9.0.1276.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
		
	
		
			
				
	
	
		
			226 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			226 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:     fish
 | |
| " Maintainer:   Nicholas Boyle (github.com/nickeb96)
 | |
| " Repository:   https://github.com/nickeb96/fish.vim
 | |
| " Last Change:  February 1, 2023
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|     finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| 
 | |
| " Statements
 | |
| syn cluster fishStatement contains=fishKeywordAndOr,fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand,fishVariable
 | |
| 
 | |
| syn keyword fishKeywordAndOr and or nextgroup=fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
 | |
| hi def link fishKeywordAndOr fishOperator
 | |
| 
 | |
| syn keyword fishNot not skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
 | |
| syn match   fishNot /!/ skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand
 | |
| hi def link fishNot fishOperator
 | |
| 
 | |
| syn keyword fishSelectStatement command builtin skipwhite nextgroup=fishKeyword,fishKeywordIf,fishCommand,fishOption
 | |
| hi def link fishSelectStatement fishKeyword
 | |
| 
 | |
| syn keyword fishKeyword end skipwhite nextgroup=@fishTerminator
 | |
| 
 | |
| syn keyword fishKeywordIf if skipwhite nextgroup=@fishStatement
 | |
| syn keyword fishKeyword else skipwhite nextgroup=fishKeywordIf,fishSemicolon
 | |
| hi def link fishKeywordIf fishKeyword
 | |
| 
 | |
| syn keyword fishKeyword switch skipwhite nextgroup=@fishArgument
 | |
| syn keyword fishKeyword case skipwhite nextgroup=@fishArgument
 | |
| 
 | |
| syn keyword fishKeyword while skipwhite nextgroup=@fishStatement
 | |
| 
 | |
| syn keyword fishKeyword for skipwhite nextgroup=fishForVariable
 | |
| syn match   fishForVariable /[[:alnum:]_]\+/ contained skipwhite nextgroup=fishKeywordIn
 | |
| syn keyword fishKeywordIn in contained skipwhite nextgroup=@fishArgument
 | |
| hi def link fishForVariable fishParameter
 | |
| hi def link fishKeywordIn fishKeyword
 | |
| 
 | |
| syn keyword fishKeyword _ abbr argparse begin bg bind block break breakpoint cd commandline
 | |
|     \ complete continue count disown echo emit eval exec exit false fg function functions
 | |
|     \ history jobs math printf pwd random read realpath return set set_color source status
 | |
|     \ string test time true type ulimit wait
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| syn match   fishKeyword /\<contains\>/ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishCommand /[[:alnum:]_\/[][[:alnum:]+._-]*/ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| 
 | |
| " Internally Nested Arguments
 | |
| 
 | |
| syn cluster fishSubscriptArgs contains=fishInnerVariable,fishIndexNum,fishIndexRange,fishInnerCommandSub
 | |
| 
 | |
| syn match   fishInnerVariable /\$\+[[:alnum:]_]\+/ contained
 | |
| syn match   fishInnerVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 contained nextgroup=fishInnerSubscript
 | |
| hi def link fishInnerVariable fishVariable
 | |
| 
 | |
| syn region  fishInnerSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained
 | |
|     \ keepend contains=@fishSubscriptArgs
 | |
| hi def link fishInnerSubscript fishSubscript
 | |
| 
 | |
| syn match   fishIndexNum /[+-]?[[:digit:]]\+/ contained
 | |
| hi def link fishIndexNum fishParameter
 | |
| 
 | |
| syn match   fishIndexRange /\.\./ contained
 | |
| hi def link fishIndexRange fishParameter
 | |
| 
 | |
| syn region  fishInnerCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained
 | |
|     \ contains=@fishStatement
 | |
| hi def link fishInnerCommandSub fishCommandSub
 | |
| 
 | |
| syn region  fishQuotedCommandSub matchgroup=fishOperator start=/\$(/ end=/)/ contained
 | |
|     \ contains=@fishStatement
 | |
| hi def link fishQuotedCommandSub fishCommandSub
 | |
| 
 | |
| syn match   fishBraceExpansionComma /,/ contained
 | |
| hi def link fishBraceExpansionComma fishOperator
 | |
| 
 | |
| syn match   fishBracedParameter '[[:alnum:]\u5b\u5d@:=+.%/!_-]\+' contained contains=fishInnerPathGlob
 | |
| hi def link fishBracedParameter fishParameter
 | |
| 
 | |
| syn region  fishBracedQuote start=/'/ skip=/\\'/ end=/'/ contained
 | |
|     \ contains=fishEscapedEscape,fishEscapedSQuote
 | |
| syn region  fishBracedQuote start=/"/ skip=/\\"/ end=/"/ contained
 | |
|     \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishInnerCommandSub
 | |
| hi def link fishBracedQuote fishQuote
 | |
| 
 | |
| 
 | |
| " Arguments
 | |
| 
 | |
| syn cluster fishArgument contains=fishParameter,fishOption,fishVariable,fishPathGlob,fishBraceExpansion,fishQuote,fishCharacter,fishCommandSub,fishRedirection,fishSelfPid
 | |
| 
 | |
| syn match   fishParameter '[[:alnum:]\u5b\u5d@:=+.,%/!_-]\+' contained skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishOption /-[[:alnum:]=_-]*/ contained skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishPathGlob /\(\~\|*\|?\)/ contained skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn region  fishBraceExpansion matchgroup=fishOperator start=/{/ end=/}/ contained
 | |
|     \ contains=fishBraceExpansionComma,fishInnerVariable,fishInnerCommandSub,fishBracedParameter,fishBracedQuote
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishVariable /\$\+[[:alnum:]_]\+/ skipwhite nextgroup=@fishNext
 | |
| syn match   fishVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 nextgroup=fishSubscript
 | |
| 
 | |
| syn region  fishSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained
 | |
|     \ keepend contains=@fishSubscriptArgs
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn region  fishCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained
 | |
|     \ contains=@fishStatement
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn region  fishQuote start=/'/ skip=/\\'/ end=/'/ contained
 | |
|     \ contains=fishEscapedEscape,fishEscapedSQuote
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| syn region  fishQuote start=/"/ skip=/\\"/ end=/"/ contained
 | |
|     \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishQuotedCommandSub
 | |
|     \ skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishEscapedEscape /\\\\/ contained
 | |
| syn match   fishEscapedSQuote /\\'/ contained
 | |
| syn match   fishEscapedDQuote /\\"/ contained
 | |
| syn match   fishEscapedDollar /\\\$/ contained
 | |
| hi def link fishEscapedEscape fishCharacter
 | |
| hi def link fishEscapedSQuote fishCharacter
 | |
| hi def link fishEscapedDQuote fishCharacter
 | |
| hi def link fishEscapedDollar fishCharacter
 | |
| 
 | |
| syn match   fishCharacter /\\[0-7]\{1,3}/                          contained skipwhite nextgroup=@fishNext
 | |
| syn match   fishCharacter /\\u[0-9a-fA-F]\{4}/                     contained skipwhite nextgroup=@fishNext
 | |
| syn match   fishCharacter /\\U[0-9a-fA-F]\{8}/                     contained skipwhite nextgroup=@fishNext
 | |
| syn match   fishCharacter /\\x[0-7][0-9a-fA-F]\|\\x[0-9a-fA-F]/    contained skipwhite nextgroup=@fishNext
 | |
| syn match   fishCharacter /\\X[0-9a-fA-F]\{1,2}/                   contained skipwhite nextgroup=@fishNext
 | |
| syn match   fishCharacter /\\[abcefnrtv[\](){}<>\\*?~%#$|&;'" ]/   contained skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishRedirection /</ contained skipwhite nextgroup=fishRedirectionTarget
 | |
| syn match   fishRedirection /[0-9&]\?>[>?]\?/ contained skipwhite nextgroup=fishRedirectionTarget
 | |
| syn match   fishRedirection /[0-9&]\?>&[0-9-]/ contained skipwhite nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishRedirectionTarget /[[:alnum:]$~*?{,}"'\/._-]\+/ contained contains=fishInnerVariable skipwhite nextgroup=@fishNext
 | |
| hi def link fishRedirectionTarget fishRedirection
 | |
| 
 | |
| syn match fishSelfPid /%self\>/ contained nextgroup=@fishNext
 | |
| hi def link fishSelfPid fishOperator
 | |
| 
 | |
| 
 | |
| " Terminators
 | |
| 
 | |
| syn cluster fishTerminator contains=fishPipe,fishBackgroundJob,fishSemicolon,fishSymbolicAndOr
 | |
| 
 | |
| syn match   fishPipe /\(1>\|2>\|&\)\?|/ contained skipwhite nextgroup=@fishStatement
 | |
| hi def link fishPipe fishEnd
 | |
| 
 | |
| syn match   fishBackgroundJob /&$/ contained skipwhite nextgroup=@fishStatement
 | |
| syn match   fishBackgroundJob /&[^<>&|]/me=s+1,he=s+1 contained skipwhite nextgroup=@fishStatement
 | |
| hi def link fishBackgroundJob fishEnd
 | |
| 
 | |
| syn match   fishSemicolon /;/ skipwhite nextgroup=@fishStatement
 | |
| hi def link fishSemicolon fishEnd
 | |
| 
 | |
| syn match   fishSymbolicAndOr /\(&&\|||\)/ contained skipwhite skipempty nextgroup=@fishStatement
 | |
| hi def link fishSymbolicAndOr fishOperator
 | |
| 
 | |
| 
 | |
| " Other
 | |
| 
 | |
| syn cluster fishNext contains=fishEscapedNl,@fishArgument,@fishTerminator
 | |
| 
 | |
| syn match   fishEscapedNl /\\$/ skipnl skipwhite contained nextgroup=@fishNext
 | |
| 
 | |
| syn match   fishComment /#.*/ contains=fishTodo,@Spell
 | |
| 
 | |
| syn keyword fishTodo TODO contained
 | |
| 
 | |
| 
 | |
| 
 | |
| syn sync minlines=200
 | |
| syn sync maxlines=300
 | |
| 
 | |
| 
 | |
| " Intermediate highlight groups matching $fish_color_* variables
 | |
| 
 | |
| hi def link fishCommand                 fish_color_command
 | |
| hi def link fishComment                 fish_color_comment
 | |
| hi def link fishEnd                     fish_color_end
 | |
| hi def link fishCharacter               fish_color_escape
 | |
| hi def link fishKeyword                 fish_color_keyword
 | |
| hi def link fishEscapedNl               fish_color_normal
 | |
| hi def link fishOperator                fish_color_operator
 | |
| hi def link fishVariable                fish_color_operator
 | |
| hi def link fishInnerVariable           fish_color_operator
 | |
| hi def link fishPathGlob                fish_color_operator
 | |
| hi def link fishOption                  fish_color_option
 | |
| hi def link fishParameter               fish_color_param
 | |
| hi def link fishQuote                   fish_color_quote
 | |
| hi def link fishRedirection             fish_color_redirection
 | |
| 
 | |
| 
 | |
| " Default highlight groups 
 | |
| 
 | |
| hi def link fish_color_param        Normal
 | |
| hi def link fish_color_normal       Normal
 | |
| hi def link fish_color_option       Normal
 | |
| hi def link fish_color_command      Function
 | |
| hi def link fish_color_keyword      Keyword
 | |
| hi def link fish_color_end          Delimiter
 | |
| hi def link fish_color_operator     Operator
 | |
| hi def link fish_color_redirection  Type
 | |
| hi def link fish_color_quote        String
 | |
| hi def link fish_color_escape       Character
 | |
| hi def link fish_color_comment      Comment
 | |
| 
 | |
| hi def link fishTodo                Todo
 | |
| 
 | |
| 
 | |
| let b:current_syntax = 'fish'
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |