mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			74 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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" |