8000 Merge upstream · ChaiScript/vim-cpp@30e3184 · GitHub
[go: up one dir, main page]

Skip to content

Commit 30e3184

Browse files
committed
Merge upstream
1 parent b3738d4 commit 30e3184

File tree

2 files changed

+41
-29
lines changed

2 files changed

+41
-29
lines changed

syntax/c.vim

Lines changed: 40 additions & 28 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: 2015 Mar 1
55

66
" Quit when a (custom) syntax file was already loaded
77
if exists("b:current_syntax")
@@ -35,28 +35,37 @@ 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
47+
endif
48+
49+
" cCppString: same as cString, but ends at end of line
50+
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
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") && !exists("c_no_cformat")
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++
60+
syn match cFormat display "%%" contained
5561
syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
56-
" cCppString: same as cString, but ends at end of line
5762
syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
5863
endif
5964

65+
syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip
66+
67+
syn cluster cStringGroup contains=cCppString,cCppSkip
68+
6069
syn match cCharacter "L\='[^\\]'"
6170
syn match cCharacter "L'[^']*'" contains=cSpecial
6271
if exists("c_gnu")
@@ -70,7 +79,8 @@ syn match cSpecialCharacter display "L\='\\\o\{1,3}'"
7079
syn match cSpecialCharacter display "'\\x\x\{1,2}'"
7180
syn match cSpecialCharacter display "L'\\x\x\+'"
7281

73-
if !exists("c_no_c11") " ISO C11
82+
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
83+
" ISO C11 or ISO C++ 11
7484
if exists("c_no_cformat")
7585
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
7686
else
@@ -102,58 +112,58 @@ endif
102112
" This should be before cErrInParen to avoid problems with #define ({ xxx })
103113
if exists("c_curly_error")
104114
syn match cCurlyError "}"
105-
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell fold
115+
syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell fold
106116
else
107117
syn region cBlock start="{" end="}" transparent fold
108118
endif
109119

110-
"catch errors caused by wrong parenthesis and brackets
111-
" also accept <% for {, %> for }, <: for [ and :> for ] (C99)
120+
" Catch errors caused by wrong parenthesis and brackets.
121+
" Also accept <% for {, %> for }, <: for [ and :> for ] (C99)
112122
" But avoid matching <::.
113123
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
114124
if exists("c_no_curly_error")
115125
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
116-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
126+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
117127
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
118128
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
119129
syn match cParenError display ")"
120130
syn match cErrInParen display contained "^^<%\|^%>"
121131
else
122-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
132+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
123133
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
124134
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
125135
syn match cParenError display ")"
126136
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
127137
endif
128138
elseif exists("c_no_bracket_error")
129139
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
130-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString,@Spell
140+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
131141
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
132142
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
133143
syn match cParenError display ")"
134144
syn match cErrInParen display contained "<%\|%>"
135145
else
136-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cCppString,@Spell
146+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
137147
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
138148
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
139149
syn match cParenError display ")"
140150
syn match cErrInParen display contained "[{}]\|<%\|%>"
141151
endif
142152
else
143153
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
144-
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
154+
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
145155
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
146156
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
147157
syn match cParenError display "[\])]"
148158
syn match cErrInParen display contained "<%\|%>"
149-
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString,@Spell
159+
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
150160
else
151-
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString,@Spell
161+
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
152162
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
153163
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
154164
syn match cParenError display "[\])]"
155165
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
166+
syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell
157167
endif
158168
" cCppBracket: same as cParen but ends at end-of-line; used in cDefine
159169
syn region cCppBracket transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell
@@ -322,6 +332,9 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
322332
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
323333
syn keyword cConstant TMP_MAX stderr stdin stdout
324334
syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
335+
" POSIX 2001
336+
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
337+
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
325338
" Add POSIX errors as well
326339
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
327340
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
@@ -373,7 +386,7 @@ syn region cPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>
373386
" Highlight User Labels
374387
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
375388
if s:ft ==# 'c' || exists("cpp_no_cpp11")
376-
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell
389+
syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell,@cStringGroup
377390
endif
378391
" Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
379392
syn cluster cLabelGroup contains=cUserLabel
@@ -458,8 +471,7 @@ hi def link cTodo Todo
458471
hi def link cBadContinuation Error
459472
hi def link cCppOutSkip cCppOutIf2
460473
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
474+
hi def link cCppOutIf2 cCppOut
463475
hi def link cCppOut Comment
464476

465477
let b:current_syntax = "c"

syntax/cpp.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
" Language: C++
33
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
44
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
5-
" Last Change: 2014 May 13
5+
" Last Change: 2015 Mar 1
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