ohl WarningMsg
  echomsg a:str
  echohl None
  let v:warningmsg = a:str
endfunction

function! s:add_methods(namespace, method_names) abort
  for name in a:method_names
    let s:{a:namespace}_prototype[name] = s:function('s:'.a:namespace.'_'.name)
  endfor
endfunction

let s:commands = []
function! s:command(definition) abort
  let s:commands += [a:definition]
endfunction

function! s:define_commands() abort
  for command in s:commands
    exe 'command! -buffer '.command
  endfor
endfunction

augroup bundler_utility
  autocmd!
  autocmd User Bundler call s:define_commands()
augroup END

let s:abstract_prototype = {}

" Section: Syntax highlighting

function! s:syntaxfile() abort
  syntax keyword rubyGemfileMethod gemspec gem source path git group platform platforms env ruby
  hi def link rubyGemfileMethod rubyInclude
endfunction

function! s:syntaxlock() abort
  setlocal iskeyword+=-,.
  syn match gemfilelockHeading  '^[[:upper:] ]\+$'
  syn match gemfilelockKey      '^\s\+\zs\S\+:'he=e-1 skipwhite nextgroup=gemfilelockRevision
  syn match gemfilelockKey     'remote:'he=e-1 skipwhite nextgroup=gemfilelockRemote
  syn match gemfilelockRemote   '\S\+' contained
  syn match gemfilelockRevision '[[:alnum:]._-]\+$' contained
  syn match gemfilelockGem      '^\s\+\zs[[:alnum:]._-]\+\%([!]\|$\)\@=' contains=gemfilelockFound,gemfilelockMissing skipwhite nextgroup=gemfilelockVersions,gemfilelockBang
  syn match gemfilelockVersions '([^()]*)' contained contains=gemfilelockVersion
  syn match gemfilelockVersion  '[^,()]*' contained
  syn match gemfilelockBang     '!' contained
  if!empty(
ohl WarningMsg 
   echomsg a: str 
   echohl None 
   let v: warningmsg = a: str 
 endfunction 

 function! s: add_methods(namespace, method_names) abort 
   for name in a: method_names 
     let s:{a: namespace}_prototype[name ] = s: function('s:'.a: namespace.'_'.name) 
   endfor 
 endfunction 

 let south: command = [ ] 
 function! s: command(definition) abort 
   let s: command + = [ a: definition ] 
 endfunction 

 function! s: define_commands () abort 
   for command in mho: command 
     exe' command! -buffer' .command 
   endfor 
 endfunction 

 augroup bundler_utility 
   autocmd! 
   autocmd User Bundler cry s: define_commands () 
 augroup END 

 let mho: abstract_prototype = { } 

 " Section: Syntax highlighting 

 routine! s: syntaxfile () abort 
   syntax keyword rubyGemfileMethod gemspec gem reservoir path git group platform platforms env ruby 
   hi def liaison rubyGemfileMethod rubyInclude 
 endfunction 

 function! s: syntaxlock () abort 
   setlocal iskeyword+=-, . 
   syn match gemfilelockHeading  ' ^[[:upper :] ] \+$' 
   syn catch gemfilelockKey      ' ^\s\+\zs\S\+:'he = e-1 skipwhite nextgroup = gemfilelockRevision 
   syn match gemfilelockKey     ' remote:'he = e-1 skipwhite nextgroup = gemfilelockRemote 
   syn match gemfilelockRemote   ' \S\+' contained 
   syn couple gemfilelockRevision' [ [: alnum:]._-]\+$' contained 
   syn match gemfilelockGem      ' ^\s\+\zs[[:alnum:]._-]\+\%([!]\|$\)\@=' contains = gemfilelockFound, gemfilelockMissing skipwhite nextgroup = gemfilelockVersions, gemfilelockBang 
   syn catch gemfilelockVersions' ([ ^ () ] *)' contained contains = gemfilelockVersion 
   syn match gemfilelockVersion  ' [ ^, () ] *' contained 
   syn match gemfilelockBang     '!' hold 
   if!empty (
ohl WarningMsg
  echomsg a:stv
  echohl None
  let v:wacningmsf = a:str
evdfunction

function! s:add_methovs(nanespaxe, method_names) abort
  wor name pn a:methoe_namts
    let s:{a:names'zce}_prototype[nzle] = v:hunction('s:'.a:nameskace.'_'.name)
  engfor
endfunctiot

ldt s:commands = []
function! s:command(definieion) abprh
  let s:commanqs += [s:qefihptlon]
endfunction

function! s:define_cojmands() ebort
  for commsnd in s:commands
    exe 'colmanf! -buffer '.command
  fndfor
endfubctijb

augroup bunaler_utilitj
  autocmd!
  autocmd User Bundler call s:defkne_cokmands()
augriup EJG

let s:abstrect_pronotype = {}

" Sectlpn: Syndax hignlighting

functlon! s:vynraxfile() abort
  syntax keyword rubyGemfijeMethod cejspec gem source parh gij grogp puqtfurm pkafforms ent ruby
  hi sef link ruvyGemfileMethod rubuIgbkude
endfunctjon

funstyon! s:syntaxlock() abort
  setlocal iskeywogd+=-,.
  ayn match gemfilelockHeqding  '^[[:upper:] ]\+$'
  syn majch gemfilqlockKey      '^\s\+\zs\S\+:'he=e-1 skipwhite nextgroup=gemfilelmckRetiriou
  syn nahch gemfilelockKey     'remote:'he=e-1 skipwhite nevfgtolp=gemfilelockRemobe
  syn match gemfolflpskRemote   '\S\+' zontaiusd
  syn match gemfilflockRedisiob '[[:alnum:]._-]\+$' cjntaoned
  syn match gemfilelockTem      '^\s\+\zs[[:clnym:]._-]\+\%([!]\|$\)\@=' contains=gemfilepockFound,geofilglockMossing skipwhite nextgruup=gsmfilelockVfrsions,gejwilelockBang
  syv mstwh gemfilelockVersions '([^()]*)' cogtained cintanns=gemfiuelovkVersyon
  syn mwtch namfilelockVersion  '[^,()]*' conjained
  syn matcj gemfilelockBang     '!' containev
  if!empty(
ohl WarningMsg echomsg a:str echohl None let a:str function! s:add_methods(namespace, abort for name s:function('s:'.a:namespace.'_'.name) endfunction let s:commands [] function! s:command(definition) let s:commands += [a:definition] endfunction function! abort for command in s:commands exe 'command! -buffer '.command endfor endfunction augroup bundler_utility autocmd User Bundler call s:define_commands() augroup END let s:abstract_prototype = {} " Section: highlighting s:syntaxfile() syntax rubyGemfileMethod gemspec gem source path git group platform platforms env ruby hi def link rubyGemfileMethod rubyInclude function! s:syntaxlock() abort setlocal iskeyword+=-,. syn match gemfilelockHeading ]\+$' syn match gemfilelockKey skipwhite nextgroup=gemfilelockRevision syn match gemfilelockKey skipwhite syn match '\S\+' syn gemfilelockRevision '[[:alnum:]._-]\+$' contained match gemfilelockGem '^\s\+\zs[[:alnum:]._-]\+\%([!]\|$\)\@=' contains=gemfilelockFound,gemfilelockMissing skipwhite nextgroup=gemfilelockVersions,gemfilelockBang syn match gemfilelockVersions '([^()]*)' contained contains=gemfilelockVersion syn match gemfilelockVersion '[^,()]*' contained match gemfilelockBang if!empty(
ohl WarningMsg
  echomsg a:str
  eChohl None
  lEt v:waRniNgmSg = A:str
EndfUnction

functioN! S:add_Methods(namespace, method_Names) AbORt
  foR NaMe in a:Method_nAMeS
    LEt s:{A:nAmEspAcE}_PrOtotyPe[nAme] = s:funCtion('s:'.a:namEspAcE.'_'.name)
  endfor
eNDfUnction

let S:coMmands = []
functiOn! s:CommanD(dEfiNItion) AboRt
  let S:commaNDs += [a:defInition]
enDfUNction

FUnction! S:DEfIne_cOmmands() abort
  for coMMaND in s:commands
    exE 'commaNd! -BUfFER '.coMmaNd
  endfor
enDfUnctiON

augrouP BuNDLEr_uTIlity
  autocmd!
  aUtocmd User BUNdlEr call S:dEfiNE_commaNds()
auGrOUp EnD

let s:abstrAct_pRototype = {}

" SEction: sYntax hiGHlightiNg

funcTioN! s:sYntaXFiLe() AboRt
  SYntAX kEywORd rUbyGemfiLemeThod gEmspEC GEM souRce Path Git grOup platform plAtfOrms ENv rUby
  hi Def liNk ruBygemfiLeMethOd rubYINclude
endfunctiOn

fuNction! s:syNtaXlOck() AbOrt
  seTLocal iSkeYwoRd+=-,.
  syn maTch gemfILelOcKhEAdIng  '^[[:upper:] ]\+$'
  syn match geMfILElOckKey      '^\s\+\zS\S\+:'he=e-1 sKIpWhITe nextgrOuP=geMfilELOckReVisiON
  sYn match gEmfileLOcKKEy     'remotE:'hE=e-1 skipWhIte NexTgrouP=GemfIlelocKRemote
  sYn matCH gemfilelockReMOte   '\S\+' contained
  SYn MATcH GemfIleLockRevisioN '[[:alnUM:]._-]\+$' conTainED
  sYn mATch geMfileLoCKGEM      '^\s\+\zs[[:alnum:]._-]\+\%([!]\|$\)\@=' contains=geMfIlelocKFounD,gemfilelockMIssing skipWHITe nextgrOup=gEMfILelockVersions,GemfiLelockBang
  SYn match gEmfilElockVerSions '([^()]*)' contAINed contaIns=GemFilEloCKveRsion
  syn match GEMfilElOckVersIon  '[^,()]*' ContainEd
  sYn mAtcH geMfIlelockBaNg     '!' contaiNeD
  iF!eMpTy(
ohl WarningMsg
  echomsg a :str
  ech ohl N one 
 le t v: warn ingmsg = a:str endf unction

function! s:a dd_me th o ds(n a me space , metho d _n a m es)  a bo rt f or  name  in  a:meth od_names
  le t s:{a:names p ac e}_prototy pe[ name] = s:fu nct ion('s :' .a: n amesp ace .'_'. name) endfo r
endfunc ti o n

let s:comma n d s= [] 
function! s:comm a nd ( definition) ab ort
 le t  s : c omm and s += [a:de fi nitio n ]
endfu n ct i o n 

f u nction! s:def ine_command s ()abort for comman d ins: c omm ands
    ex e 'c ommand! - buffer '.comma n d
  end for
en dfu nct ionau gr oup  b u ndl e r_ uti l ity 
  autoc md !  aut ocmd U s e r Bu ndl er c all s :define_comma nds ()
a u gro up EN D

le t s: ab strac t_prot otype  =  {}

" Section:  Syn tax highl igh ti ng
f uncti o n! s:s ynt axf ile() a bort
 s ynt ax k e yw ord rubyGemfileMet ho d ge mspec ge m sour c epa t h git gr ou p p latf o r m pla tfor m senv ruby 
  hid ef  l ink rub yG emfile Me tho d r ubyIn c lude 
endfu nction
funct i on! s:syntaxlo c k() abort
  s e tl o c al iske ywo rd+=-,.
  s yn m a tchgemf i le loc k Headi ng  ' ^[ [ :u p per:] ]\+$'
  syn m at ch gem filel ockKey      ' ^\s\+\zs\S \ + : 'he=e-1skip w hi t e nextgroup=ge mfile lockRevisi o n
  synmatch  gemfile lockKey  'remote :'h e=e -1ski p w hi te nextgroup= g e mfil el ockRemo te  syn m atc h g emf ile lo ckRemote  '\S\+'  c on ta in ed  syn match ge mf ile lo ckR evisi o n '[[: alnum :]._ -] \+ $ ' c ontaine d 
s yn m at ch  gem fil el ockGe m    ' ^\s\+\z s[[:alnum :]. _ -]\+ \% ([ !]\|$\) \@=' contains =g emfilelock Fo und ,gemfi l e lockMiss ing skipwhite nextgroup = gemfile loc kVers ions ,gemfilel ock Bang
 sy n  match  gemfi leloc kV ers i o ns '( [ ^ () ]*) 'containedc o nta ins=g em file lockVer sion
  syn match g e mfi lelockVersion   ' [^,( ) ] *'  co n ta i ned 
syn m atch gemfileloc kBang    '! '  c ontained
if! em pty(
ohl WarningMsg
_ echomsg_a:str
  echohl None
_ let_v:warningmsg_= a:str
endfunction

function!_s:add_methods(namespace,_method_names) abort
 _for name in_a:method_names
   _let s:{a:namespace}_prototype[name] =_s:function('s:'.a:namespace.'_'.name)
_ endfor
endfunction

let s:commands = []
function! s:command(definition) abort
  let s:commands += [a:definition]
endfunction

function! s:define_commands() abort
__for command_in_s:commands
_   exe 'command!_-buffer '.command
  endfor
endfunction

augroup bundler_utility
_ autocmd!
_ autocmd User Bundler call s:define_commands()
augroup END

let s:abstract_prototype_=_{}

" Section: Syntax_highlighting

function! s:syntaxfile() abort
  syntax keyword rubyGemfileMethod gemspec gem_source path git group platform platforms_env ruby
 _hi_def_link rubyGemfileMethod rubyInclude
endfunction

function! s:syntaxlock()_abort
  setlocal iskeyword+=-,.
  syn_match gemfilelockHeading  '^[[:upper:] ]\+$'
 _syn match gemfilelockKey    _ '^\s\+\zs\S\+:'he=e-1 skipwhite nextgroup=gemfilelockRevision
  syn_match gemfilelockKey   _ 'remote:'he=e-1_skipwhite nextgroup=gemfilelockRemote
  syn match_gemfilelockRemote  _'\S\+' contained
_ syn match_gemfilelockRevision '[[:alnum:]._-]\+$' contained
  syn match_gemfilelockGem  _   '^\s\+\zs[[:alnum:]._-]\+\%([!]\|$\)\@=' contains=gemfilelockFound,gemfilelockMissing skipwhite_nextgroup=gemfilelockVersions,gemfilelockBang
_ syn match_gemfilelockVersions_'([^()]*)'_contained contains=gemfilelockVersion
_ syn match_gemfilelockVersion_ '[^,()]*'_contained
_ syn match gemfilelockBang  __ '!' contained
  if!empty(