Something went wrong. Try again.
Configuration for my NixOS based systems and Home Manager
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990" Vim syntax file" Language: Plan 9 rc shell" Maintainer: Noah
if version < 600 syntax clearelseif exists("b:current_syntax") finishendif
syn iskeyword @,48-57,_,*syn case match
syn cluster rcshTop contains=rcshComment,rcshString,rcshBackquote,rcshBlock,rcshVar,rcshCountVar,rcshFlatVar,rcshSubscript,rcshRedir,rcshPipe,rcshConditional,rcshOperator,rcshDelimiter,rcshKeyword,rcshBuiltin,rcshPatternClass,rcshPattern,rcshShebang,rcshContinuation
" rc only uses single quotes for strings. A literal quote is written as ''." Double quotes are deliberately not a string delimiter; $"var and $^var are" flattening operators.syn region rcshString matchgroup=rcshQuote keepend extend start="'" skip="''" end="'" contains=rcshQuoteQuote,@Spellsyn match rcshQuoteQuote contained "''"
syn match rcshComment "#.*" contains=rcshTodo,@Spell extendsyn keyword rcshTodo contained TODO TBD FIXME XXX NOTE BUG WARNING DEBUG OPTIMIZATION WORKAROUNDsyn match rcshShebang "^#!.*\<\%(env\s\+\)\?rc\>\%(\s\+.*\)\?$" contains=rcshOptionsyn match rcshOption contained "\s-\S\+"
" A backslash is ordinary in rc, except before a newline.syn match rcshContinuation "\\\n"
syn keyword rcshKeyword if else for in while switch case fnsyn keyword rcshBuiltin break builtin cd continue echo eval exec exit flag limit newpgrp return shift umask wait whatissyn match rcshBuiltin "\(^\|[ \t;|&(){}]\)\zs\.\ze\($\|[ \t;|&(){}]\)"
syn match rcshConditional "&&\|||"syn match rcshPipe "|\%(\[\d\+\%([=]\d*\)\?\]\)\?"syn match rcshRedir "\%(>>\|<<<\|<<\|<\|>\)\%(\[\d\+\%([=]\d*\)\?\]\)\?"syn match rcshOperator "[=^~!@`$]"syn match rcshDelimiter "[;&()]"
syn region rcshBlock matchgroup=rcshDelimiter keepend extend start="{" end="}" contains=@rcshTop,@NoSpellsyn region rcshBackquote matchgroup=rcshBackquoteDelimiter keepend extend start="`{" end="}" contains=@rcshTop,@NoSpellsyn match rcshBackquoteDelimiter "``"
syn match rcshCountVar "\$#\%([A-Za-z0-9_*]\+\|'[^']*\%(''[^']*\)*'\)"syn match rcshFlatVar "\$[\^"]\%([A-Za-z0-9_*]\+\|'[^']*\%(''[^']*\)*'\)"syn match rcshVar "\$[A-Za-z0-9_*]\+"syn match rcshVar "\$\ze'"syn region rcshSubscript matchgroup=rcshDelimiter keepend extend start="\%(\$[#\^"]\?\)\?[A-Za-z0-9_*]\+(" end=")" contains=@rcshTop,@NoSpell
syn region rcshPatternClass matchgroup=rcshPattern keepend extend oneline start="\[^\?" end="\]" contains=rcshPatternRangesyn match rcshPatternRange contained "\(\[^\?\)\@<!-\]\@!"syn match rcshPattern "[*?]"
if version >= 508 || !exists("did_rcsh_syn_inits") if version < 508 let did_rcsh_syn_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif
HiLink rcshBackquote PreProc HiLink rcshBackquoteDelimiter Include HiLink rcshBuiltin Statement HiLink rcshComment Comment HiLink rcshConditional Conditional HiLink rcshContinuation Special HiLink rcshCountVar Special HiLink rcshDelimiter Delimiter HiLink rcshFlatVar Special HiLink rcshKeyword Keyword HiLink rcshOperator Operator HiLink rcshOption PreProc HiLink rcshPattern SpecialChar HiLink rcshPatternRange SpecialChar HiLink rcshPipe Type HiLink rcshQuote String HiLink rcshQuoteQuote SpecialChar HiLink rcshRedir Type HiLink rcshShebang Comment HiLink rcshString String HiLink rcshSubscript Identifier HiLink rcshTodo Todo HiLink rcshVar Identifier
delcommand HiLinkendif
let b:current_syntax = "rcsh"