From 27903c5b8656c796564ef073c1ebe77a2f0154e1 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Thu, 28 Sep 2017 22:18:09 +0200 Subject: Revert inlining basic language pack --- syntax/sh.vim | 729 ---------------------------------------------------------- 1 file changed, 729 deletions(-) delete mode 100644 syntax/sh.vim (limited to 'syntax/sh.vim') diff --git a/syntax/sh.vim b/syntax/sh.vim deleted file mode 100644 index ca916400..00000000 --- a/syntax/sh.vim +++ /dev/null @@ -1,729 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim syntax file -" Language: shell (sh) Korn shell (ksh) bash (sh) -" Maintainer: Charles E. Campbell -" Previous Maintainer: Lennart Schultz -" Last Change: Jan 30, 2017 -" Version: 168 -" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH -" For options and settings, please use: :help ft-sh-syntax -" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) - -" quit when a syntax file was already loaded {{{1 -if exists("b:current_syntax") - finish -endif - -" trying to answer the question: which shell is /bin/sh, really? -" If the user has not specified any of g:is_kornshell, g:is_bash, g:is_posix, g:is_sh, then guess. -if getline(1) =~ '\ fold -else - com! -nargs=* ShFoldFunctions -endif -if s:sh_fold_heredoc - com! -nargs=* ShFoldHereDoc fold -else - com! -nargs=* ShFoldHereDoc -endif -if s:sh_fold_ifdofor - com! -nargs=* ShFoldIfDoFor fold -else - com! -nargs=* ShFoldIfDoFor -endif - -" sh syntax is case sensitive {{{1 -syn case match - -" Clusters: contains=@... clusters {{{1 -"================================== -syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK -if exists("b:is_kornshell") - syn cluster ErrorList add=shDTestError -endif -syn cluster shArithParenList contains=shArithmetic,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor -syn cluster shArithList contains=@shArithParenList,shParenError -syn cluster shCaseEsacList contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange -syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq -syn cluster shCommandSubList contains=shAlias,shArithmetic,shComment,shCmdParenRegion,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable -syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial -syn cluster shDblQuoteList contains=shCommandSub,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial -syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS -syn cluster shDerefVarList contains=shDerefOff,shDerefOp,shDerefVarArray,shDerefOpError -syn cluster shEchoList contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shEscape,shExpr,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote -syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq -syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest -syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq -if exists("b:is_kornshell") || exists("b:is_bash") - syn cluster shFunctionList add=shRepeat - syn cluster shFunctionList add=shDblBrace,shDblParen -endif -syn cluster shHereBeginList contains=@shCommandSubList -syn cluster shHereList contains=shBeginHere,shHerePayload -syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload -syn cluster shIdList contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shHereString,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr -syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo -syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shForPP,shIf,shOption,shSet,shTest,shTestOpr,shTouch -syn cluster shPPSRightList contains=shComment,shDeref,shDerefSimple,shEscape,shPosnParm -syn cluster shSubShList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator -syn cluster shTestList contains=shCharClass,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr - -" Echo: {{{1 -" ==== -" This one is needed INSIDE a CommandSub, so that `echo bla` be correct -syn region shEcho matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment -syn region shEcho matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment -syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]' - -" This must be after the strings, so that ... \" will be correct -syn region shEmbeddedEcho contained matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shExDoubleQuote,shDoubleQuote,shCharClass,shCtrlSeq - -" Alias: {{{1 -" ===== -if exists("b:is_kornshell") || exists("b:is_bash") - syn match shStatement "\" - syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`" - syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="=" - - " Touch: {{{1 - " ===== - syn match shTouch '\[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple - syn match shTouchCmd '\' contained -endif - -" Error Codes: {{{1 -" ============ -if !exists("g:sh_no_error") - syn match shDoError "\" - syn match shIfError "\" - syn match shInError "\" - syn match shCaseError ";;" - syn match shEsacError "\" - syn match shCurlyError "}" - syn match shParenError ")" - syn match shOK '\.\(done\|fi\|in\|esac\)' - if exists("b:is_kornshell") - syn match shDTestError "]]" - endif - syn match shTestError "]" -endif - -" Options: {{{1 -" ==================== -syn match shOption "\s\zs[-+][-_a-zA-Z#@]\+" -syn match shOption "\s\zs--[^ \t$`'"|);]\+" - -" File Redirection Highlighted As Operators: {{{1 -"=========================================== -syn match shRedir "\d\=>\(&[-0-9]\)\=" -syn match shRedir "\d\=>>-\=" -syn match shRedir "\d\=<\(&[-0-9]\)\=" -syn match shRedir "\d<<-\=" - -" Operators: {{{1 -" ========== -syn match shOperator "<<\|>>" contained -syn match shOperator "[!&;|]" contained -syn match shOperator "\[[[^:]\|\]]" contained -syn match shOperator "[-=/*+%]\==" skipwhite nextgroup=shPattern -syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shDeref - -" Subshells: {{{1 -" ========== -syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shSpecialNxt -syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")" contains=@shSubShList nextgroup=shSpecialNxt - -" Tests: {{{1 -"======= -syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial -syn region shTest transparent matchgroup=shStatement start="\+ end="\<;\_s*then\>" end="\" contains=@shIfList -ShFoldIfDoFor syn region shFor matchgroup=shLoop start="\#\=" -syn match shNumber "\<-\=\.\=\d\+\>#\=" -syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained -if exists("b:is_bash") - syn match shSpecial "[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained - syn match shSpecial "^\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained -endif -if exists("b:is_bash") - syn region shExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial nextgroup=shSpecialNxt - syn region shExDoubleQuote matchgroup=shQuote start=+\$"+ skip=+\\\\\|\\.\|\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,shSpecial nextgroup=shSpecialNxt -elseif !exists("g:sh_no_error") - syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial - syn region shExDoubleQuote matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+ contains=shStringSpecial -endif -syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell -syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@" -else - syn keyword shTodo contained COMBAK FIXME TODO XXX -endif -syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup -syn match shComment "\s\zs#.*$" contains=@shCommentGroup -syn match shComment contained "#.*$" contains=@shCommentGroup -syn match shQuickComment contained "#.*$" - -" Here Documents: {{{1 -" ========================================= -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\\\=\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1\s*$" contains=@shDblQuoteList -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc02 end="^\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\s*\z1\s*$" contains=@shDblQuoteList -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc04 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc05 end="^\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc06 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc07 end="^\z1\s*$" contains=@shDblQuoteList -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc08 end="^\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc09 end="^\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*'\z([^ \t|>]\+\)'" matchgroup=shHereDoc12 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<-\s*\\\_$\_s*\"\z([^ \t|>]\+\)\"" matchgroup=shHereDoc13 end="^\s*\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<\\\z([^ \t|>]\+\)" matchgroup=shHereDoc14 end="^\z1\s*$" -ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc15 end="^\s*\z1\s*$" - -" Here Strings: {{{1 -" ============= -" available for: bash; ksh (really should be ksh93 only) but not if its a posix -if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("b:is_posix")) - syn match shHereString "<<<" skipwhite nextgroup=shCmdParenRegion -endif - -" Identifiers: {{{1 -"============= -syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained -syn match shVariable "\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze=" nextgroup=shVarAssign -syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote -syn region shAtExpr contained start="@(" end=")" contains=@shIdList -if exists("b:is_bash") - syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList - syn region shSetList oneline matchgroup=shSet start="\\ze[^/]" end="\ze[;|)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList -elseif exists("b:is_kornshell") - syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList - syn region shSetList oneline matchgroup=shSet start="\\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList -else - syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList -endif - -" Functions: {{{1 -if !exists("b:is_posix") - syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo -endif - -if exists("b:is_bash") - ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment -else - ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment - ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment -endif - -" Parameter Dereferencing: {{{1 -" ======================== -if !exists("g:sh_no_error") - syn match shDerefWordError "[^}$[~]" contained -endif -syn match shDerefSimple "\$\%(\h\w*\|\d\)" -syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray -syn match shDerefSimple "\$[-#*@!?]" -syn match shDerefSimple "\$\$" -syn match shDerefSimple "\${\d}" -if exists("b:is_bash") || exists("b:is_kornshell") - syn region shDeref matchgroup=PreProc start="\${##\=" end="}" contains=@shDerefList - syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList -endif - -" ksh: ${!var[*]} array index list syntax: {{{1 -" ======================================== -if exists("b:is_kornshell") - syn region shDeref matchgroup=PreProc start="\${!" end="}" contains=@shDerefVarArray -endif - -" bash: ${!prefix*} and ${#parameter}: {{{1 -" ==================================== -if exists("b:is_bash") - syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOff - syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList -endif -if exists("b:is_kornshell") - syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList -endif - -syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOpError -syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp -syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList -syn match shDerefVar contained '\d' nextgroup=@shDerefVarList -if exists("b:is_kornshell") - syn match shDerefVar contained "{\@<=\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList -endif - -" sh ksh bash : ${var[... ]...} array reference: {{{1 -syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError - -" Special ${parameter OPERATOR word} handling: {{{1 -" sh ksh bash : ${parameter:-word} word is default value -" sh ksh bash : ${parameter:=word} assign word as default value -" sh ksh bash : ${parameter:?word} display word if parameter is null -" sh ksh bash : ${parameter:+word} use word if parameter is not null, otherwise nothing -" ksh bash : ${parameter#pattern} remove small left pattern -" ksh bash : ${parameter##pattern} remove large left pattern -" ksh bash : ${parameter%pattern} remove small right pattern -" ksh bash : ${parameter%%pattern} remove large right pattern -" bash : ${parameter^pattern} Case modification -" bash : ${parameter^^pattern} Case modification -" bash : ${parameter,pattern} Case modification -" bash : ${parameter,,pattern} Case modification -syn cluster shDerefPatternList contains=shDerefPattern,shDerefString -if !exists("g:sh_no_error") - syn match shDerefOpError contained ":[[:punct:]]" -endif -syn match shDerefOp contained ":\=[-=?]" nextgroup=@shDerefPatternList -syn match shDerefOp contained ":\=+" nextgroup=@shDerefPatternList -if exists("b:is_bash") || exists("b:is_kornshell") - syn match shDerefOp contained "#\{1,2}" nextgroup=@shDerefPatternList - syn match shDerefOp contained "%\{1,2}" nextgroup=@shDerefPatternList - syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern - syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern - syn match shDerefEscape contained '\%(\\\\\)*\\.' -endif -if exists("b:is_bash") - syn match shDerefOp contained "[,^]\{1,2}" nextgroup=@shDerefPatternList -endif -syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@" -syn sync match shCaseEsacSync groupthere shCaseEsac "\" -syn sync match shDoSync grouphere shDo "\" -syn sync match shDoSync groupthere shDo "\" -syn sync match shForSync grouphere shFor "\" -syn sync match shForSync groupthere shFor "\" -syn sync match shIfSync grouphere shIf "\" -syn sync match shIfSync groupthere shIf "\" -syn sync match shUntilSync grouphere shRepeat "\" -syn sync match shWhileSync grouphere shRepeat "\" - -" Default Highlighting: {{{1 -" ===================== -if !exists("skip_sh_syntax_inits") - hi def link shArithRegion shShellVariables - hi def link shAstQuote shDoubleQuote - hi def link shAtExpr shSetList - hi def link shBeginHere shRedir - hi def link shCaseBar shConditional - hi def link shCaseCommandSub shCommandSub - hi def link shCaseDoubleQuote shDoubleQuote - hi def link shCaseIn shConditional - hi def link shQuote shOperator - hi def link shCaseSingleQuote shSingleQuote - hi def link shCaseStart shConditional - hi def link shCmdSubRegion shShellVariables - hi def link shColon shComment - hi def link shDerefOp shOperator - hi def link shDerefPOL shDerefOp - hi def link shDerefPPS shDerefOp - hi def link shDerefPSR shDerefOp - hi def link shDeref shShellVariables - hi def link shDerefDelim shOperator - hi def link shDerefSimple shDeref - hi def link shDerefSpecial shDeref - hi def link shDerefString shDoubleQuote - hi def link shDerefVar shDeref - hi def link shDoubleQuote shString - hi def link shEcho shString - hi def link shEchoDelim shOperator - hi def link shEchoQuote shString - hi def link shForPP shLoop - hi def link shFunction Function - hi def link shEmbeddedEcho shString - hi def link shEscape shCommandSub - hi def link shExDoubleQuote shDoubleQuote - hi def link shExSingleQuote shSingleQuote - hi def link shHereDoc shString - hi def link shHereString shRedir - hi def link shHerePayload shHereDoc - hi def link shLoop shStatement - hi def link shSpecialNxt shSpecial - hi def link shNoQuote shDoubleQuote - hi def link shOption shCommandSub - hi def link shPattern shString - hi def link shParen shArithmetic - hi def link shPosnParm shShellVariables - hi def link shQuickComment shComment - hi def link shRange shOperator - hi def link shRedir shOperator - hi def link shSetListDelim shOperator - hi def link shSetOption shOption - hi def link shSingleQuote shString - hi def link shSource shOperator - hi def link shStringSpecial shSpecial - hi def link shSubShRegion shOperator - hi def link shTestOpr shConditional - hi def link shTestPattern shString - hi def link shTestDoubleQuote shString - hi def link shTestSingleQuote shString - hi def link shTouchCmd shStatement - hi def link shVariable shSetList - hi def link shWrapLineOperator shOperator - - if exists("b:is_bash") - hi def link bashAdminStatement shStatement - hi def link bashSpecialVariables shShellVariables - hi def link bashStatement shStatement - hi def link shCharClass shSpecial - hi def link shDerefOff shDerefOp - hi def link shDerefLen shDerefOff - endif - if exists("b:is_kornshell") - hi def link kshSpecialVariables shShellVariables - hi def link kshStatement shStatement - endif - - if !exists("g:sh_no_error") - hi def link shCaseError Error - hi def link shCondError Error - hi def link shCurlyError Error - hi def link shDerefOpError Error - hi def link shDerefWordError Error - hi def link shDoError Error - hi def link shEsacError Error - hi def link shIfError Error - hi def link shInError Error - hi def link shParenError Error - hi def link shTestError Error - if exists("b:is_kornshell") - hi def link shDTestError Error - endif - endif - - hi def link shArithmetic Special - hi def link shCharClass Identifier - hi def link shSnglCase Statement - hi def link shCommandSub Special - hi def link shComment Comment - hi def link shConditional Conditional - hi def link shCtrlSeq Special - hi def link shExprRegion Delimiter - hi def link shFunctionKey Function - hi def link shFunctionName Function - hi def link shNumber Number - hi def link shOperator Operator - hi def link shRepeat Repeat - hi def link shSet Statement - hi def link shSetList Identifier - hi def link shShellVariables PreProc - hi def link shSpecial Special - hi def link shStatement Statement - hi def link shString String - hi def link shTodo Todo - hi def link shAlias Identifier - hi def link shHereDoc01 shRedir - hi def link shHereDoc02 shRedir - hi def link shHereDoc03 shRedir - hi def link shHereDoc04 shRedir - hi def link shHereDoc05 shRedir - hi def link shHereDoc06 shRedir - hi def link shHereDoc07 shRedir - hi def link shHereDoc08 shRedir - hi def link shHereDoc09 shRedir - hi def link shHereDoc10 shRedir - hi def link shHereDoc11 shRedir - hi def link shHereDoc12 shRedir - hi def link shHereDoc13 shRedir - hi def link shHereDoc14 shRedir - hi def link shHereDoc15 shRedir -endif - -" Delete shell folding commands {{{1 -" ============================= -delc ShFoldFunctions -delc ShFoldHereDoc -delc ShFoldIfDoFor - -" Set Current Syntax: {{{1 -" =================== -if exists("b:is_bash") - let b:current_syntax = "bash" -elseif exists("b:is_kornshell") - let b:current_syntax = "ksh" -else - let b:current_syntax = "sh" -endif - -" vim: ts=16 fdm=marker - -endif -- cgit v1.2.3