annotate runtime/syntax/pdf.vim @ 35308:22c03485f222 v9.1.0456

patch 9.1.0456: Left shift is incorrect with vartabstop and shiftwidth=0 Commit: https://github.com/vim/vim/commit/88d4f255b7b7a19bb4f6489e0ad0956e47d51fed Author: Gary Johnson <garyjohn@spocom.com> Date: Sat Jun 1 20:51:33 2024 +0200 patch 9.1.0456: Left shift is incorrect with vartabstop and shiftwidth=0 Problem: Left shift is incorrect with vartabstop and shiftwidth=0 Solution: make tabstop_at() function aware of shift direction (Gary Johnson) The problem was that with 'vartabstop' set and 'shiftwidth' equal 0, left shifts using << were shifting the line to the wrong column. The tabstop to the right of the first character in the line was being used as the shift amount instead of the tabstop to the left of that first character. The reason was that the tabstop_at() function always returned the value of the tabstop to the right of the given column and was not accounting for the direction of the shift. The solution was to make tabstop_at() aware of the direction of the shift and to choose the tabtop accordingly. A test was added to check this behavior and make sure it doesn't regress. While at it, also fix a few indentation/alignment issues. fixes: #14864 closes: #14887 Signed-off-by: Gary Johnson <garyjohn@spocom.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 01 Jun 2024 21:00:03 +0200
parents b9740fb41986
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1619
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
1 " Vim syntax file
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
2 " Language: PDF
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
3 " Maintainer: Tim Pope <vimNOSPAM@tpope.info>
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
4 " Last Change: 2007 Dec 16
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
5
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
6 if exists("b:current_syntax")
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
7 finish
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
8 endif
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
9
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
10 if !exists("main_syntax")
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
11 let main_syntax = 'pdf'
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
12 endif
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
13
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
14 syn include @pdfXML syntax/xml.vim
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
15
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
16 syn case match
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
17
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
18 syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
19 syn keyword pdfBoolean true false contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
20 syn keyword pdfConstant null contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
21 syn match pdfNumber "[+-]\=\<\d\+\>"
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
22 syn match pdfFloat "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
23
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
24 syn match pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
25 syn match pdfSpecialChar "#\x\x" contained containedin=pdfName
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
26 syn match pdfName "/[^[:space:]\[\](){}<>/]*" contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
27 syn match pdfHexError "[^[:space:][:xdigit:]<>]" contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
28 "syn match pdfHexString "<\s*\x[^<>]*\x\s*>" contained contains=pdfHexError
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
29 "syn match pdfHexString "<\s*\x\=\s*>" contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
30 syn region pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
31 syn match pdfStringError "\\." contained containedin=pdfString
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
32 syn match pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)" contained containedin=pdfString
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
33 syn region pdfString matchgroup=pdfDelimiter start="\\\@<!(" end="\\\@<!)" contains=pdfString
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
34
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
35 syn region pdfArray matchgroup=pdfOperator start="\[" end="\]" contains=@pdfObjects contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
36 syn region pdfHash matchgroup=pdfOperator start="<<" end=">>" contains=@pdfObjects contained
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
37 syn match pdfReference "\<\d\+\s\+\d\+\s\+R\>"
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
38 "syn keyword pdfOperator R contained containedin=pdfReference
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
39
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
40 syn region pdfObject matchgroup=pdfType start="\<obj\>" end="\<endobj\>" contains=@pdfObjects
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
41 syn region pdfObject matchgroup=pdfType start="\<obj\r\=\n" end="\<endobj\>" contains=@pdfObjects fold
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
42
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
43 " Do these twice. The ones with only newlines are foldable
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
44 syn region pdfStream matchgroup=pdfType start="\<stream\r\=\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
45 syn region pdfXMLStream matchgroup=pdfType start="\<stream\r\=\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
46 syn region pdfStream matchgroup=pdfType start="\<stream\n" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject fold
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
47 syn region pdfXMLStream matchgroup=pdfType start="\<stream\n\_s*\%(<?\)\@=" end="endstream\s*\%(\r\|\n\|\r\n\)" contained containedin=pdfObject contains=@pdfXML fold
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
48
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
49 syn region pdfPreProc start="\<xref\%(\r\|\n\|\r\n\)" end="^trailer\%(\r\|\n\|\r\n\)" skipwhite skipempty nextgroup=pdfHash contains=pdfNumber fold
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
50 syn keyword pdfPreProc startxref
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
51 syn match pdfComment "%.*\%(\r\|\n\)" contains=pdfPreProc
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
52 syn match pdfPreProc "^%\%(%EOF\|PDF-\d\.\d\)\(\r\|\n\)"
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
53
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
54 hi def link pdfOperator Operator
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
55 hi def link pdfNumber Number
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
56 hi def link pdfFloat Float
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
57 hi def link pdfBoolean Boolean
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
58 hi def link pdfConstant Constant
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
59 hi def link pdfName Identifier
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
60 hi def link pdfNameError pdfStringError
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
61 hi def link pdfHexString pdfString
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
62 hi def link pdfHexError pdfStringError
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
63 hi def link pdfString String
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
64 hi def link pdfStringError Error
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
65 hi def link pdfSpecialChar SpecialChar
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
66 hi def link pdfDelimiter Delimiter
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
67 hi def link pdfType Type
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
68 hi def link pdfReference Tag
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
69 hi def link pdfStream NonText
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
70 hi def link pdfPreProc PreProc
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
71 hi def link pdfComment Comment
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
72
b9740fb41986 updated for version 7.2a
vimboss
parents:
diff changeset
73 let b:current_syntax = "pdf"