Configuration for my NixOS based systems and Home Manager
at misaki 133 lines 4.7 kB view raw
1" Vim syntax file 2" Language: OS Inferno sh 3" Maintainer: Alex Efros <powerman-asdf@ya.ru> 4" URL: http://powerman.name/download/vim/syntax/infsh.vim 5" Version: 1.10 6" Last Change: 2012-12-09 7 8if version < 600 9 syntax clear 10elseif exists("b:current_syntax") 11 finish 12endif 13 14 15syn cluster infshTOP contains=infshError 16" usual typo 17syn match infshError +"+ 18 19syn cluster infshTOP add=infshSubst,infshCmdOut,infshBlock 20" substitution command 21syn region infshSubst matchgroup=infshSubstDelimiter keepend extend start="\$["#]\?{\w\@=" end="}" contains=@infshTOP,@NoSpell 22syn match infshSubstName contained "\(\$["#]\?{\)\@<=\w\+" containedin=infshSubst 23" get command output 24syn region infshCmdOut matchgroup=infshCmdOutDelimiter keepend extend start="[`"]{" end="}" contains=@infshTOP,@NoSpell 25" command block 26syn region infshBlock matchgroup=infshDelimiter keepend extend start="{" end="}" contains=@infshTOP,@NoSpell 27 28syn cluster infshTOP add=infshDelimiter,infshRedir,infshConditional,infshOperator,infshPatternClass,infshPattern 29" top-level delimiters 30syn match infshDelimiter "[;&()]" 31syn match infshRedir "[|<>]\(\[\d\+\(=\d\+\)\?\]\)\?" 32syn match infshConditional "&&\|||" 33syn match infshOperator "\(:=\|=\|\^\)" 34syn region infshPatternClass matchgroup=infshPattern keepend extend oneline start="\[^\?" end="\]" contains=infshPatternInClass 35syn match infshPatternInClass contained "\(\[^\?\)\@<!-\]\@!" 36syn match infshPattern "[*?]" 37 38syn cluster infshTOP add=infshVar,infshSpecVar,infshError 39" references to variables 40syn match infshVar "\$["#]\?[$(']\@=" 41syn match infshVar "\$["#]\?\(`{\)\@=" 42syn match infshVar "\$["#]\(\"{\)\@=" 43" variables with single-char names (spec chars & unicode) 44syn match infshVar "\$["#]\?[!%+,\-./:?@\[\\\]~]" 45syn match infshVar "\$["#]\?[^\x0-\x7f]" 46" special variables 47syn match infshSpecVar "\$["#]\?[*]" 48syn match infshSpecVar "\$["#]\?[0]" 49syn match infshSpecVar "\$["#]\?[1-9][0-9]*" 50" variables with usual names 51syn match infshVar "\$["#]\?[a-zA-Z_][*0-9a-zA-Z_]*" 52syn match infshVar "\$["#]\?[*0][*0-9a-zA-Z_]\+" 53syn match infshVar "\$["#]\?[1-9][0-9]*[*a-zA-Z_][*0-9a-zA-Z_]*" 54" more special variables 55syn match infshSpecVar "\$["#]\?\(status\|apid\|ifs\|prompt\|autoload\)[*0-9a-zA-Z_]\@!" 56" bad variables 57syn match infshError "\$["#]\?[ \t\n&);<=>^|}]\@=" 58syn match infshError "\$["#]\?\((\s*)\)\@=" 59syn match infshError "\$["#]\?\(''[^']\@=\)\@=" 60syn match infshError "\$["#]\?\([`]{\@!\)\@=" 61syn match infshError "\$["#]\(["]{\@!\)\@=" 62syn match infshError "\$["#][#]\@=" 63 64syn cluster infshTOP add=infshStr,infshComment,infshShebang 65" quoted string 66syn region infshStr matchgroup=infshStrQ keepend extend start="'" skip="''" end="'" contains=infshStrQQ 67syn match infshStrQQ contained "''" 68" comment 69syn match infshComment "#.*" contains=infshTodo,@Spell extend 70syn keyword infshTodo contained TODO TBD FIXME XXX NOTE BUG WARNING DEBUG OPTIMIZATION WORKAROUND 71" shebang 72syn match infshShebang "^#!/dis/sh\(\.dis\)\?\(\s\+-[nlvx]\+\)*\s*$" contains=infshOpts 73syn match infshOpts contained "-[nlvx]\+" 74 75syn cluster infshTOP add=infshStatement,infshConditional,infshRepeat,infshOperator,infshKeyword,infshException,infshPctlType 76" keywords 77syn keyword infshStatement fn subfn 78syn keyword infshConditional and or if 79syn keyword infshRepeat apply getlines for in while 80syn keyword infshOperator run builtin exit load unload 81syn keyword infshOperator no pctl status 82syn match infshOperator "[@!~]" 83syn keyword infshKeyword flag loaded whatis 84syn keyword infshException raise rescue 85syn keyword infshPctlType newfd forkfd newns forkns newpgrp nodevs 86 87 88if version >= 508 || !exists("did_infsh_syn_inits") 89 if version < 508 90 let did_infsh_syn_inits = 1 91 command -nargs=+ HiLink hi link <args> 92 else 93 command -nargs=+ HiLink hi def link <args> 94 endif 95 96 HiLink infshSubstDelimiter Identifier 97 HiLink infshSubstName Operator 98 99 HiLink infshCmdOutDelimiter Include 100 101 HiLink infshDelimiter Delimiter 102 HiLink infshRedir Type 103 HiLink infshConditional Conditional 104 HiLink infshOperator Operator 105 HiLink infshPattern SpecialChar 106 HiLink infshPatternInClass SpecialChar 107 108 HiLink infshVar Identifier 109 HiLink infshSpecVar Special 110 111 HiLink infshError Error 112 113 HiLink infshStr String 114 HiLink infshStrQ String 115 HiLink infshStrQQ SpecialChar 116 117 HiLink infshComment Comment 118 HiLink infshTodo Todo 119 HiLink infshShebang Comment 120 HiLink infshOpts PreProc 121 122 HiLink infshStatement Statement 123 HiLink infshConditional Conditional 124 HiLink infshRepeat Repeat 125 HiLink infshOperator Operator 126 HiLink infshKeyword Keyword 127 HiLink infshException Exception 128 HiLink infshPctlType Type 129 130 delcommand HiLink 131endif 132 133let b:current_syntax = "infsh"