Nessuna descrizione

sls.vim 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. " Vim syntax file
  2. " Language: Salt States template
  3. " Maintainer: Seth House <seth@eseth.com>
  4. " Last Change: 2012 June 20
  5. "
  6. if exists("b:current_syntax")
  7. finish
  8. endif
  9. if !exists("main_syntax")
  10. let main_syntax = 'yaml'
  11. endif
  12. let b:current_syntax = ''
  13. unlet b:current_syntax
  14. runtime! syntax/yaml.vim
  15. let b:current_syntax = ''
  16. unlet b:current_syntax
  17. syntax include @Yaml syntax/yaml.vim
  18. let b:current_syntax = ''
  19. unlet b:current_syntax
  20. " Default to look for Jinja syntax file
  21. let s:load_jinja_syntax = 0
  22. let s:search_for_jinja_syntax = 1
  23. if exists("g:sls_use_jinja_syntax")
  24. let s:search_for_jinja_syntax = 0
  25. let s:load_jinja_syntax = g:sls_use_jinja_syntax
  26. endif
  27. if s:search_for_jinja_syntax
  28. let s:jinja_path = findfile("syntax/jinja.vim", &rtp, 1)
  29. if s:jinja_path != ""
  30. let s:load_jinja_syntax = 1
  31. endif
  32. endif
  33. if s:load_jinja_syntax
  34. syntax include @Jinja syntax/jinja.vim
  35. syn cluster jinjaSLSBlocks add=jinjaTagBlock,jinjaVarBlock,jinjaComment
  36. " Mostly copy/pasted from
  37. " https://github.com/mitsuhiko/jinja2/blob/6b7c0c23/ext/Vim/jinja.vim
  38. syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
  39. syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment,@jinjaSLSBlocks
  40. syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,@jinjaSLSBlocks
  41. else
  42. " Fall back to Django template syntax
  43. syntax include @Jinja syntax/django.vim
  44. syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock
  45. syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks
  46. syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks
  47. syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
  48. endif
  49. syn keyword salt_stateInclude include extend containedin=yamlBlockMappingKey
  50. highlight link salt_stateInclude Include
  51. syn keyword salt_stateSpecialArgs name names check_cmd listen listen_in onchanges onchanges_in onfail onfail_in onlyif prereq prereq_in require require_in unless use use_in watch watch_in containedin=yamlBlockMappingKey
  52. highlight link salt_stateSpecialArgs Special
  53. syn keyword salt_stateErrors requires requires_in watches watches_in includes extends containedin=yamlBlockMappingKey
  54. highlight link salt_stateErrors Error
  55. let g:NERDCustomDelimiters = {
  56. \ 'sls': { 'left': '#' },
  57. \ }
  58. let b:current_syntax = "sls"