1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- " Vim syntax file
- " Language: PDF
- " Maintainer: Tim Pope <vimNOSPAM@tpope.info>
- " Last Change: 2007 Dec 16
- if exists("b:current_syntax")
- finish
- endif
- if !exists("main_syntax")
- let main_syntax = 'pdf'
- endif
- syn include @pdfXML syntax/xml.vim
- syn case match
- syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment
- syn keyword pdfBoolean true false contained
- syn keyword pdfConstant null contained
- syn match pdfNumber "[+-]\=\<\d\+\>"
- syn match pdfFloat "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained
- syn match pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName
- syn match pdfSpecialChar "#\x\x" contained containedin=pdfName
- syn match pdfName "/[^[:space:]\[\](){}<>/]*" contained
- syn match pdfHexError "[^[:space:][:xdigit:]<>]" contained
- "syn match pdfHexString "<\s*\x[^<>]*\x\s*>" contained contains=pdfHexError
- "syn match pdfHexString "<\s*\x\=\s*>" contained
- syn region pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError
- syn match pdfStringError "\\." contained containedin=pdfString
- syn match pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)" contained containedin=pdfString
- syn region pdfString matchgroup=pdfDelimiter start="\\\@<!(" end="\\\@<!)" contains=pdfString
- syn region pdfArray matchgroup=pdfOperator start="\[" end="\]" contains=@pdfObjects contained
- syn region pdfHash matchgroup=pdfOperator start="<<" end=">>" contains=@pdfObjects contained
- syn match pdfReference "\<\d\+\s\+\d\+\s\+R\>"
- "syn keyword pdfOperator R contained containedin=pdfReference
- syn region pdfObject matchgroup=pdfType start="\<obj\>" end="\<endobj\>" contains=@pdfObjects
- syn region pdfObject matchgroup=pdfType start="\<obj\r\=\n" end="\<endobj\>" contains=@pdfObjects fold
- " Do these twice. The ones with only newlines are foldable
- syn region pdfStream matchgroup=pdfType start="\<stream\r\=\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject
- syn region pdfXMLStream matchgroup=pdfType start="\<stream\r\=\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML
- syn region pdfStream matchgroup=pdfType start="\<stream\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject fold
- syn region pdfXMLStream matchgroup=pdfType start="\<stream\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML fold
- syn region pdfPreProc start="\<xref\%(\r\|\n\|\r\n\)" end="^trailer\%(\r\|\n\|\r\n\)" skipwhite skipempty nextgroup=pdfHash contains=pdfNumber fold
- syn keyword pdfPreProc startxref
- syn match pdfComment "%.*\%(\r\|\n\)" contains=pdfPreProc
- syn match pdfPreProc "^%\%(%EOF\|PDF-\d\.\d\)\(\r\|\n\)"
- hi def link pdfOperator Operator
- hi def link pdfNumber Number
- hi def link pdfFloat Float
- hi def link pdfBoolean Boolean
- hi def link pdfConstant Constant
- hi def link pdfName Identifier
- hi def link pdfNameError pdfStringError
- hi def link pdfHexString pdfString
- hi def link pdfHexError pdfStringError
- hi def link pdfString String
- hi def link pdfStringError Error
- hi def link pdfSpecialChar SpecialChar
- hi def link pdfDelimiter Delimiter
- hi def link pdfType Type
- hi def link pdfReference Tag
- hi def link pdfStream NonText
- hi def link pdfPreProc PreProc
- hi def link pdfComment Comment
- let b:current_syntax = "pdf"
|