10000 merged upstream · ChaiScript/vim-cpp@993b0fd · GitHub
[go: up one dir, main page]

Skip to content

Commit 993b0fd

Browse files
committed
merged upstream
1 parent b3738d4 commit 993b0fd

File tree

2 files changed

+44
-42
lines changed

2 files changed

+44
-42
lines changed

syntax/c.vim

Lines changed: 42 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
" Vim syntax file
22
" Language: C
33
" Maintainer: Bram Moolenaar <Bram@vim.org>
4-
" Last Change: 2013 Jul 05
4+
" Last Change: 2014 Nov 13
55

66
" Quit when a (custom) syntax file was already loaded
77
if exists("b:current_syntax")
@@ -35,28 +35,36 @@ syn match cSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
3535
if !exists("c_no_utf")
3636
syn match cSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
3737
endif
38-
if exists("c_no_cformat")
39-
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
40-
" cCppString: same as cString, but ends at end of line
41-
if !exists("cpp_no_cpp11") " ISO C++11
42-
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
43-
else
44-
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
45-
endif
46-
syn region cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip
47-
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
48-
else
38+
39+
if !exists("c_no_cformat")
40+
" Highlight % items in strings.
4941
if !exists("c_no_c99") " ISO C99
5042
syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
5143
else
5244
syn match cFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained
5345
endif
5446
syn match cFormat display "%%" contained
6D40
47+
endif
48+
49+
" cCppString: same as cString, but ends at end of line
50+
if s:ft ==# "cpp" && !exists("cpp_no_cpp11")
51+
" ISO C++11
52+
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
53+
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
54+
elseif s:ft ==# "c" && !exists("c_no_c11")
55+
" ISO C99
56+
syn region cString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
57+
syn region cCppString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
58+
else
59+
" older C or C++
5560
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
56-
" cCppString: same as cString, but ends at end of line
5761
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
5862
endif
5963

64+
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
65+
66+
syn cluster cStringGroup contains=cCppString,cCppSkip
67+
6068
syn match cCharacter "L\='[^\\]'"
6169
syn match cCharacter "L'[^']*'" contains=cSpecial
6270
if exists("c_gnu")
@@ -70,12 +78,9 @@ syn match cSpecialCharacter display "L\='\\\o\{1,3}'"
7078
syn match cSpecialCharacter display "'\\x\x\{1,2}'"
7179
syn match cSpecialCharacter display "L'\\x\x\+'"
7280

73-
if !exists("c_no_c11") " ISO C11
74-
if exists("c_no_cformat")
75-
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
76-
else
77-
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
78-
endif
81+
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
82+
" ISO C11 or ISO C++ 11
83+
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
7984
syn match cCharacter "[Uu]'[^\\]'"
8085
syn match cCharacter "[Uu]'[^']*'" contains=cSpecial
8186
if exists("c_gnu")
@@ -102,58 +107,58 @@ endif
102107
" This should be before cErrInParen to avoid problems with #define ({ xxx })
103108
if exists("c_curly_error")
104109
syn match cCurlyError "}"
105-
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
110+
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell fold
106111
else
107112
syn region cBlock start="{" end="}" transparent fold
108113
endif
109114

110-
"catch errors caused by wrong parenthesis and brackets
111-
" also accept <% for {, %> for }, <: for [ and :> for ] (C99)
115+
" Catch errors caused by wrong parenthesis and brackets.
116+
" Also accept <% for {, %> for }, <: for [ and :> for ] (C99)
112117
" But avoid matching <::.
113118
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
114119
if exists("c_no_curly_error")
115120
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
116-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
121+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
117122
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
118123
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
119124
syn match cParenError display ")"
120125
syn match cErrInParen display contained "^^<%\|^%>"
121126
else
122-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
127+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
123128
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
124129
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
125130
syn match cParenError display ")"
126131
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
127132
endif
128133
elseif exists("c_no_bracket_error")
129134
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
130-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
135+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
131136
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
132137
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
133138
syn match cParenError display ")"
134139
syn match cErrInParen display contained "<%\|%>"
135140
else
136-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
141+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
137142
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
138143
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
139144
syn match cParenError display ")"
140145
syn match cErrInParen display contained "[{}]\|<%\|%>"
141146
endif
142147
else
143148
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
144-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
149+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
145150
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
146151
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
147152
syn match cParenError display "[\])]"
148153
syn match cErrInParen display contained "<%\|%>"
149-
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
154+
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
150155
else
151-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
156+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
152157
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
153158
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
154159
syn match cParenError display "[\])]"
155160
syn match cErrInParen display contained "[\]{}]\|<%\|%>"
156-
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
161+
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
157162
endif
158163
" cCppBracket: same as cParen but ends at end-of-line; used in cDefine
159164
syn region cCppBracket transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
@@ -322,6 +327,9 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
322327
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
323328
syn keyword cConstant TMP_MAX stderr stdin stdout
324329
syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
330+
" POSIX 2001
331+
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
332+
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
325333
" Add POSIX errors as well
326334
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
327335
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
@@ -373,19 +381,14 @@ syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>
373381
" Highlight User Labels
374382
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
375383
if s:ft ==# 'c' || exists("cpp_no_cpp11")
376-
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
384+
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell,@cStringGroup
377385
endif
378386
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
379387
syn cluster cLabelGroup contains=cUserLabel
380388
syn match cUserCont display "^\s*\I\i*\s*:$" contains=@cLabelGroup
381389
syn match cUserCont display ";\s*\I\i*\s*:$" contains=@cLabelGroup
382-
if s:ft ==# 'cpp'
383-
syn match cUserCont display "^\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
38 F438 4-
syn match cUserCont display ";\s*\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
385-
else
386-
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
387-
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
388-
endif
390+
syn match cUserCont display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
391+
syn match cUserCont display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
389392

390393
syn match cUserLabel display "\I\i*" contained
391394

@@ -458,8 +461,7 @@ hi def link cTodo Todo
458461
hi def link cBadContinuation Error
459462
hi def link cCppOutSkip cCppOutIf2
460463
hi def link cCppInElse2 cCppOutIf2
461-
hi def link cCppOutIf2 cCppOut2 " Old syntax group for #if 0 body
462-
hi def link cCppOut2 cCppOut " Old syntax group for #if of #if 0
464+
hi def link cCppOutIf2 cCppOut
463465
hi def link cCppOut Comment
464466

465467
let b:current_syntax = "c"

syntax/cpp.vim

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
" Vim syntax file
22
" Language: C++
3-
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
3+
" Current Maintainer: vim-jp (https://github.com/vim-jp/cpp-vim)
44
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
5-
" Last Change: 2014 May 13
5+
" Last Change: 2014 May 14
66

77
" For version 5.x: Clear all syntax items
88
" For version 6.x: Quit when a syntax file was already loaded

0 commit comments

Comments
 (0)
0