home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / unix / vim-6.2.tar.bz2 / vim-6.2.tar / vim62 / runtime / syntax / papp.vim < prev    next >
Encoding:
Text File  |  2003-05-11  |  4.0 KB  |  93 lines

  1. " Vim syntax file for the "papp" file format (_p_erl _app_lication)
  2. "
  3. " Language:    papp
  4. " Maintainer:    Marc Lehmann <pcg@goof.com>
  5. " Last Change:    2003 May 11
  6. " Filenames:    *.papp *.pxml *.pxsl
  7. " URL:        http://papp.plan9.de/
  8.  
  9. " You can set the "papp_include_html" variable so that html will be
  10. " rendered as such inside phtml sections (in case you actually put html
  11. " there - papp does not require that). Also, rendering html tends to keep
  12. " the clutter high on the screen - mixing three languages is difficult
  13. " enough(!). PS: it is also slow.
  14.  
  15. " pod is, btw, allowed everywhere, which is actually wrong :(
  16.  
  17. " For version 5.x: Clear all syntax items
  18. " For version 6.x: Quit when a syntax file was already loaded
  19. if version < 600
  20.   syntax clear
  21. elseif exists("b:current_syntax")
  22.   finish
  23. endif
  24.  
  25. " source is basically xml, with included html (this is common) and perl bits
  26. if version < 600
  27.   so <sfile>:p:h/xml.vim
  28. else
  29.   runtime! syntax/xml.vim
  30. endif
  31. unlet b:current_syntax
  32.  
  33. if exists("papp_include_html")
  34.   if version < 600
  35.     syn include @PAppHtml <sfile>:p:h/html.vim
  36.   else
  37.     syn include @PAppHtml syntax/html.vim
  38.   endif
  39.   unlet b:current_syntax
  40. endif
  41.  
  42. if version < 600
  43.   syn include @PAppPerl <sfile>:p:h/perl.vim
  44. else
  45.   syn include @PAppPerl syntax/perl.vim
  46. endif
  47.  
  48. if v:version >= 600
  49.    syn cluster xmlFoldCluster add=papp_perl,papp_xperl,papp_phtml,papp_pxml,papp_perlPOD
  50. endif
  51.  
  52. " preprocessor commands
  53. syn region papp_prep matchgroup=papp_prep start="^#\s*\(if\|elsif\)" end="$" keepend contains=@perlExpr contained
  54. syn match papp_prep /^#\s*\(else\|endif\|??\).*$/ contained
  55. " translation entries
  56. syn region papp_gettext start=/__"/ end=/"/ contained contains=@papp_perlInterpDQ
  57. syn cluster PAppHtml add=papp_gettext,papp_prep
  58.  
  59. " add special, paired xperl, perl and phtml tags
  60. syn region papp_perl  matchgroup=xmlTag start="<perl>"  end="</perl>"  contains=papp_CDATAp,@PAppPerl keepend
  61. syn region papp_xperl matchgroup=xmlTag start="<xperl>" end="</xperl>" contains=papp_CDATAp,@PAppPerl keepend
  62. syn region papp_phtml matchgroup=xmlTag start="<phtml>" end="</phtml>" contains=papp_CDATAh,papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml keepend
  63. syn region papp_pxml  matchgroup=xmlTag start="<pxml>"    end="</pxml>"  contains=papp_CDATAx,papp_ph_perl,papp_ph_xml,papp_ph_xint         keepend
  64. syn region papp_perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend
  65.  
  66. " cdata sections
  67. syn region papp_CDATAp matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=@PAppPerl                     contained keepend
  68. syn region papp_CDATAh matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml contained keepend
  69. syn region papp_CDATAx matchgroup=xmlCdataDecl start="<!\[CDATA\[" end="\]\]>" contains=papp_ph_perl,papp_ph_xml,papp_ph_xint         contained keepend
  70.  
  71. syn region papp_ph_perl matchgroup=Delimiter start="<[:?]" end="[:?]>"me=e-2 nextgroup=papp_ph_html contains=@PAppPerl             contained keepend
  72. syn region papp_ph_html matchgroup=Delimiter start=":>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@PAppHtml             contained keepend
  73. syn region papp_ph_hint matchgroup=Delimiter start="?>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ,@PAppHtml contained keepend
  74. syn region papp_ph_xml    matchgroup=Delimiter start=":>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=                 contained keepend
  75. syn region papp_ph_xint matchgroup=Delimiter start="?>"    end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ         contained keepend
  76.  
  77. " synchronization is horrors!
  78. syn sync clear
  79. syn sync match pappSync grouphere papp_CDATAh "</\(perl\|xperl\|phtml\|macro\|module\)>"
  80. syn sync match pappSync grouphere papp_CDATAh "^# *\(if\|elsif\|else\|endif\)"
  81. syn sync match pappSync grouphere papp_CDATAh "</\(tr\|td\|table\|hr\|h1\|h2\|h3\)>"
  82. syn sync match pappSync grouphere NONE          "</\=\(module\|state\|macro\)>"
  83.  
  84. syn sync maxlines=300
  85. syn sync minlines=5
  86.  
  87. " The default highlighting.
  88.  
  89. hi def link papp_prep        preCondit
  90. hi def link papp_gettext    String
  91.  
  92. let b:current_syntax = "papp"
  93.