diff options
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/eruby.vim | 13 | ||||
-rw-r--r-- | runtime/syntax/gprof.vim | 4 | ||||
-rw-r--r-- | runtime/syntax/javascript.vim | 3 | ||||
-rw-r--r-- | runtime/syntax/objc.vim | 534 | ||||
-rw-r--r-- | runtime/syntax/proto.vim | 74 | ||||
-rw-r--r-- | runtime/syntax/ruby.vim | 137 | ||||
-rw-r--r-- | runtime/syntax/xml.vim | 6 |
7 files changed, 578 insertions, 193 deletions
diff --git a/runtime/syntax/eruby.vim b/runtime/syntax/eruby.vim index 42c8b5106..c20b086ba 100644 --- a/runtime/syntax/eruby.vim +++ b/runtime/syntax/eruby.vim @@ -1,9 +1,7 @@ " Vim syntax file " Language: eRuby " Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" Last Change: 2010 Apr 15 -" URL: http://vim-ruby.rubyforge.org -" Anon CVS: See above site +" URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns <dougkearns@gmail.com> if exists("b:current_syntax") @@ -18,13 +16,12 @@ if !exists("g:eruby_default_subtype") let g:eruby_default_subtype = "html" endif -if !exists("b:eruby_subtype") && main_syntax == 'eruby' +if &filetype =~ '^eruby\.' + let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+') +elseif !exists("b:eruby_subtype") && main_syntax == 'eruby' let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+') if b:eruby_subtype == '' - let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+') - endif - if b:eruby_subtype == '' let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\)\+$','',''),'\.\zs\w\+$') endif if b:eruby_subtype == 'rhtml' @@ -61,7 +58,7 @@ syn cluster erubyRegions contains=erubyOneLiner,erubyBlock,erubyExpression,eruby exe 'syn region erubyOneLiner matchgroup=erubyDelimiter start="^%\{1,'.b:eruby_nest_level.'\}%\@!" end="$" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend oneline' exe 'syn region erubyBlock matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}%\@!-\=" end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' exe 'syn region erubyExpression matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}=\{1,4}" end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' -exe 'syn region erubyComment matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}#" end="%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend' +exe 'syn region erubyComment matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}-\=#" end="[=-]\=%\@<!%\{1,'.b:eruby_nest_level.'\}>" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend' " Define the default highlighting. diff --git a/runtime/syntax/gprof.vim b/runtime/syntax/gprof.vim index 342af056f..381a3c63b 100644 --- a/runtime/syntax/gprof.vim +++ b/runtime/syntax/gprof.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Syntax for Gprof Output " Maintainer: Dominique Pelle <dominique.pelle@gmail.com> -" Last Change: 2012 May 20 +" Last Change: 2013 Jun 09 " Quit when a syntax file was already loaded if exists("b:current_syntax") @@ -32,7 +32,7 @@ syn match gprofCallGraphFunction "\s\+\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a syn match gprofCallGraphSeparator "^-\+$" syn region gprofCallGraphTrailer \ start="This table describes the call tree of the program" - \ end="^\s*the cycle.$" + \ end="^\s*the cycle\.$" " Index syn region gprofIndex diff --git a/runtime/syntax/javascript.vim b/runtime/syntax/javascript.vim index 8bf677bf5..ba906664b 100644 --- a/runtime/syntax/javascript.vim +++ b/runtime/syntax/javascript.vim @@ -8,6 +8,7 @@ " (ss) fixed regex parsing issue with multiple qualifiers [gi] " (ss) additional factoring of keywords, globals, and members " Last Change: 2012 Oct 05 +" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke) " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -42,7 +43,7 @@ syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ con syn match javaScriptSpecialCharacter "'\\.'" syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" -syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline +syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gim]\{0,2\}\s*$+ end=+/[gim]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline syn keyword javaScriptConditional if else switch syn keyword javaScriptRepeat while for do in diff --git a/runtime/syntax/objc.vim b/runtime/syntax/objc.vim index 665a47a27..8891ebed6 100644 --- a/runtime/syntax/objc.vim +++ b/runtime/syntax/objc.vim @@ -1,123 +1,435 @@ " Vim syntax file -" Language: Objective C -" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com> -" Ex-maintainer: Anthony Hodsdon <ahodsdon@fastmail.fm> -" First Author: Valentino Kyriakides <1kyriaki@informatik.uni-hamburg.de> -" Last Change: 2013 Feb 20 -" -" 2013 Feb 19 Revised based on a patch sent to the maintainer by -" Christos Kontas <xakon@yahoo.com> on 2012 Dec 12. - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") +" Language: Objective-C +" Maintainer: Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com> +" Last Change: 2013 Jun 12 +" Remark: Modern Objective-C Edition + +""" Preparation for loading ObjC stuff +if exists("b:current_syntax") finish endif -let s:keepcpo= &cpo -set cpo&vim - if &filetype != 'objcpp' - " Read the C syntax to start with - if version < 600 - source <sfile>:p:h/c.vim - else - runtime! syntax/c.vim - endif + syn clear + runtime! syntax/c.vim endif +let s:cpo_save = &cpo +set cpo&vim + +""" ObjC proper stuff follows... + +syn keyword objcPreProcMacro __OBJC__ __OBJC2__ __clang__ + +" Defined Types +syn keyword objcPrincipalType id Class SEL IMP BOOL +syn keyword objcUsefulTerm nil Nil NO YES -" Objective C extentions follow below -" -" NOTE: Objective C is abbreviated to ObjC/objc -" and uses *.h, *.m as file extensions! - - -" ObjC keywords, types, type qualifiers etc. -syn keyword objcStatement self super _cmd -syn keyword objcType id Class SEL IMP BOOL -syn keyword objcTypeModifier bycopy in out inout oneway -syn keyword objcConstant nil Nil - -" Match the ObjC #import directive (like C's #include) -syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ -syn match objcImported display contained "<[-_0-9a-zA-Z.\/]*>" -syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported - -" Match the important ObjC directives -syn match objcScopeDecl "@public\|@private\|@protected" -syn match objcDirective "@interface\|@implementation" -syn match objcDirective "@class\|@end\|@defs" -syn match objcDirective "@encode\|@protocol\|@selector" -syn match objcDirective "@try\|@catch\|@finally\|@throw\|@synchronized" - - " New directives introduced with Objc-2.0 -syn match objcDirective "@property\|@synthesize\|@dynamic" -syn match objcDirective "@optional\|@required" -syn match objcDirective "@autoreleasepool" - -" Match the ObjC method types -" -" NOTE: here I match only the indicators, this looks -" much nicer and reduces cluttering color highlightings. -" However, if you prefer full method declaration matching -" append .* at the end of the next two patterns! -" -syn match objcInstMethod "^\s*-\s*" -syn match objcFactMethod "^\s*+\s*" - -" To distinguish from a header inclusion from a protocol list. -syn match objcProtocol display "<[_a-zA-Z][_a-zA-Z0-9]*>" contains=objcType,cType,Type - - -" To distinguish labels from the keyword for a method's parameter. -syn region objcKeyForMethodParam display - \ start="^\s*[_a-zA-Z][_a-zA-Z0-9]*\s*:\s*(" - \ end=")\s*[_a-zA-Z][_a-zA-Z0-9]*" - \ contains=objcType,objcTypeModifier,cType,cStructure,cStorageClass,Type - -" Objective-C Constant Strings -syn match objcSpecial display "%@" contained +" Preprocessor Directives +syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match objcImported display contained "<[^>]*>" +syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported + +" ObjC Compiler Directives +syn match objcObjDef display /@interface\>\|@implementation\>\|@end\>\|@class\>/ +syn match objcProtocol display /@protocol\>\|@optional\>\|@required\>/ +syn match objcProperty display /@property\>\|@synthesize\>\|@dynamic\>/ +syn match objcIvarScope display /@private\>\|@protected\>\|@public\>/ +syn match objcInternalRep display /@selector\>\|@encode\>/ +syn match objcException display /@try\>\|@throw\>\|@catch\|@finally\>/ +syn match objcThread display /@synchronized\>/ +syn match objcPool display /@autoreleasepool\>/ + +" ObjC Constant Strings +syn match objcSpecial display contained "%@" syn region objcString start=+\(@"\|"\)+ skip=+\\\\\|\\"+ end=+"+ contains=cFormat,cSpecial,objcSpecial +" ObjC Hidden Arguments +syn keyword objcHiddenArgument self _cmd super + +" ObjC Type Qualifiers for Blocks +syn keyword objcBlocksQualifier __block +" ObjC Type Qualifiers for Object Lifetime +syn keyword objcObjectLifetimeQualifier __strong __weak __unsafe_unretained __autoreleasing +" ObjC Type Qualifiers for Toll-Free Bridge +syn keyword objcTollFreeBridgeQualifier __bridge __bridge_retained __bridge_transfer + +" ObjC Type Qualifiers for Remote Messaging +syn match objcRemoteMessagingQualifier display contained /\((\s*oneway\s\+\|(\s*in\s\+\|(\s*out\s\+\|(\s*inout\s\+\|(\s*bycopy\s\+\(in\(out\)\?\|out\)\?\|(\s*byref\s\+\(in\(out\)\?\|out\)\?\)/hs=s+1 + +" shorthand +syn cluster objcTypeQualifier contains=objcBlocksQualifier,objcObjectLifetimeQualifier,objcTollFreeBridgeQualifier,objcRemoteMessagingQualifier + +" ObjC Fast Enumeration +syn match objcFastEnumKeyword display /\sin\(\s\|$\)/ + +" ObjC Literal Syntax +syn match objcLiteralSyntaxNumber display /@\(YES\>\|NO\>\|\d\|-\|+\)/ contains=cNumber,cFloat,cOctal +syn match objcLiteralSyntaxSpecialChar display /@'/ contains=cSpecialCharacter +syn match objcLiteralSyntaxChar display /@'[^\\]'/ +syn match objcLiteralSyntaxOp display /@\((\|\[\|{\)/me=e-1,he=e-1 + +" ObjC Declared Property Attributes +syn match objDeclPropAccessorNameAssign display /\s*=\s*/ contained +syn region objcDeclPropAccessorName display start=/\(getter\|setter\)/ end=/\h\w*/ contains=objDeclPropAccessorNameAssign +syn keyword objcDeclPropAccessorType readonly readwrite contained +syn keyword objcDeclPropAssignSemantics assign retain copy contained +syn keyword objcDeclPropAtomicity nonatomic contained +syn keyword objcDeclPropARC strong weak contained +syn region objcDeclProp display transparent keepend start=/@property\s*(/ end=/)/ contains=objcProperty,objcDeclPropAccessorName,objcDeclPropAccessorType,objcDeclPropAssignSemantics,objcDeclPropAtomicity,objcDeclPropARC + +" To distinguish colons in methods and dictionaries from those in C's labels. +syn match objcColon display /^\s*\h\w*\s*\:\(\s\|.\)/me=e-1,he=e-1 + +" To distinguish a protocol list from system header files +syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrincipalType,cType,Type + +" shorthand +syn cluster objcCEntities contains=cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,cStatement,cLabel,cConditional,cRepeat +syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro + " Objective-C Message Expressions -syn region objcMessage display start="\[" end="\]" contains=objcMessage,objcStatement,objcType,objcTypeModifier,objcString,objcConstant,objcDirective,cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,Type - -syn cluster cParenGroup add=objcMessage -syn cluster cPreProcGroup add=objcMessage - -" Define the default highlighting. -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_objc_syntax_inits") - if version < 508 - let did_objc_syntax_inits = 1 - command -nargs=+ HiLink hi link <args> - else - command -nargs=+ HiLink hi def link <args> - endif - - HiLink objcImport Include - HiLink objcImported cString - HiLink objcTypeModifier objcType - HiLink objcType Type - HiLink objcScopeDecl Statement - HiLink objcInstMethod Function - HiLink objcFactMethod Function - HiLink objcStatement Statement - HiLink objcDirective Statement - HiLink objcKeyForMethodParam None - HiLink objcString cString - HiLink objcSpecial Special - HiLink objcProtocol None - HiLink objcConstant cConstant - - delcommand HiLink -endif +syn region objcMethodCall start=/\[/ end=/\]/ contains=objcMethodCall,objcBlocks,@objcObjCEntities,@objcCEntities -let b:current_syntax = "objc" +" To distinguish class method and instance method +syn match objcInstanceMethod display /^s*-\s*/ +syn match objcClassMethod display /^s*+\s*/ -let &cpo = s:keepcpo -unlet s:keepcpo +" ObjC Blocks +syn region objcBlocks start=/\(\^\s*([^)]\+)\s*{\|\^\s*{\)/ end=/}/ contains=objcBlocks,objcMethodCall,@objcObjCEntities,@objcCEntities + +syn cluster cParenGroup add=objcMethodCall +syn cluster cPreProcGroup add=objcMethodCall + +""" Foundation Framework +syn match objcClass /Protocol\s*\*/me=s+8,he=s+8 + +""""""""""""""""" +" NSObjCRuntime.h +syn keyword objcType NSInteger NSUInteger NSComparator +syn keyword objcEnum NSComparisonResult +syn keyword objcEnumValue NSOrderedAscending NSOrderedSame NSOrderedDescending +syn keyword objcEnum NSEnumerationOptions +syn keyword objcEnumValue NSEnumerationConcurrent NSEnumerationReverse +syn keyword objcEnum NSSortOptions +syn keyword objcEnumValue NSSortConcurrent NSSortStable +syn keyword objcEnumValue NSNotFound +syn keyword objcMacro NSIntegerMax NSIntegerMin NSUIntegerMax +" NSRange.h +syn keyword objcType NSRange NSRangePointer +" NSGeometry.h +syn keyword objcType NSPoint NSPointPointer NSPointArray NSSize NSSizePointer NSSizeArray NSRect NSRectPointer NSRectArray +syn keyword objcEnum NSRectEdge +syn keyword objcEnumValue NSMinXEdge NSMinYEdge NSMaxXEdge NSMaxYEdge +syn keyword objcConstVar NSZeroPoint NSZeroSize NSZeroRect +syn keyword cType CGFloat CGPoint CGSize CGRect +syn keyword objcEnum NSAlignmentOptions +syn keyword objcEnumValue NSAlignMinXInward NSAlignMinYInward NSAlignMaxXInward NSAlignMaxYInward NSAlignWidthInward NSAlignHeightInward NSAlignMinXOutward NSAlignMinYOutward NSAlignMaxXOutward NSAlignMaxYOutward NSAlignWidthOutward NSAlignHeightOutward NSAlignMinXNearest NSAlignMinYNearest NSAlignMaxXNearest NSAlignMaxYNearest NSAlignWidthNearest NSAlignHeightNearest NSAlignRectFlipped NSAlignAllEdgesInward NSAlignAllEdgesOutward NSAlignAllEdgesNearest +" NSDecimal.h +syn keyword objcType NSDecimal +syn keyword objcEnum NSRoundingMode +syn keyword objcEnumValue NSRoundPlain NSRoundDown NSRoundUp NSRoundBankers +syn keyword objcEnum NSCalculationError +syn keyword objcEnumValue NSCalculationNoError NSCalculationLossOfPrecision NSCalculationUnderflow NSCalculationOverflow NSCalculationDivideByZero +" NSDate.h +syn match objcClass /NSDate\s*\*/me=s+6,he=s+6 +syn keyword objcType NSTimeInterval +syn keyword objcNotificationValue NSSystemClockDidChangeNotification +syn keyword objcMacro NSTimeIntervalSince1970 +" NSZone.h +syn match objcType /NSZone\s*\*/me=s+6,he=s+6 +" NSError.h +syn match objcClass /NSError\s*\*/me=s+7,he=s+7 +syn keyword objcConstVar NSCocoaErrorDomain NSPOSIXErrorDomain NSOSStatusErrorDomain NSMachErrorDomain NSUnderlyingErrorKey NSLocalizedDescriptionKey NSLocalizedFailureReasonErrorKey NSLocalizedRecoverySuggestionErrorKey NSLocalizedRecoveryOptionsErrorKey NSRecoveryAttempterErrorKey NSHelpAnchorErrorKey NSStringEncodingErrorKey NSURLErrorKey NSFilePathErrorKey +" NSException.h +syn match objcClass /NSException\s*\*/me=s+11,he=s+11 +syn keyword objcType NSUncaughtExceptionHandler +syn keyword objcConstVar NSGenericException NSRangeException NSInvalidArgumentException NSInternalInconsistencyException NSMallocException NSObjectInaccessibleException NSObjectNotAvailableException NSDestinationInvalidException NSPortTimeoutException NSInvalidSendPortException NSInvalidReceivePortException NSPortSendException NSPortReceiveException NSOldStyleException +" NSNotification.h +syn match objcClass /NSNotification\s*\*/me=s+14,he=s+14 +syn match objcClass /NSNotificationCenter\s*\*/me=s+20,he=s+20 +" NSDistributedNotificationCenter.h +syn match objcClass /NSDistributedNotificationCenter\s*\*/me=s+31,he=s+31 +syn keyword objcConstVar NSLocalNotificationCenterType +syn keyword objcEnum NSNotificationSuspensionBehavior +syn keyword objcEnumValue NSNotificationSuspensionBehaviorDrop NSNotificationSuspensionBehaviorCoalesce NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorDeliverImmediately +syn keyword objcEnumValue NSNotificationDeliverImmediately NSNotificationPostToAllSessions +" NSNotificationQueue.h +syn match objcClass /NSNotificationQueue\s*\*/me=s+19,he=s+19 +syn keyword objcEnum NSPostingStyle +syn keyword objcEnumValue NSPostWhenIdle NSPostASAP NSPostNow +syn keyword objcEnum NSNotificationCoalescing +syn keyword objcEnumValue NSNotificationNoCoalescing NSNotificationCoalescingOnName NSNotificationCoalescingOnSender +" NSEnumerator.h +syn match objcClass /NSEnumerator\s*\*/me=s+12,he=s+12 +" NSIndexSet.h +syn match objcClass /NSIndexSet\s*\*/me=s+10,he=s+10 +syn match objcClass /NSMutableIndexSet\s*\*/me=s+17,he=s+17 +" NSCharecterSet.h +syn match objcClass /NSCharacterSet\s*\*/me=s+14,he=s+14 +" NSURL.h +syn match objcClass /NSURL\s*\*/me=s+5,he=s+5 +syn keyword objcEnum NSURLBookmarkCreationOptions +syn keyword objcEnumValue NSURLBookmarkCreationPreferFileIDResolution NSURLBookmarkCreationMinimalBookmark NSURLBookmarkCreationSuitableForBookmarkFile NSURLBookmarkCreationWithSecurityScope NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess +syn keyword objcEnum NSURLBookmarkResolutionOptions +syn keyword objcEnumValue NSURLBookmarkResolutionWithoutUI NSURLBookmarkResolutionWithoutMounting NSURLBookmarkResolutionWithSecurityScope +syn keyword objcType NSURLBookmarkFileCreationOptions +syn keyword objcConstVar NSURLFileScheme NSURLKeysOfUnsetValuesKey +syn keyword objcConstVar NSURLNameKey NSURLLocalizedNameKey NSURLIsRegularFileKey NSURLIsDirectoryKey NSURLIsSymbolicLinkKey NSURLIsVolumeKey NSURLIsPackageKey NSURLIsSystemImmutableKey NSURLIsUserImmutableKey NSURLIsHiddenKey NSURLHasHiddenExtensionKey NSURLCreationDateKey NSURLContentAccessDateKey NSURLContentModificationDateKey NSURLAttributeModificationDateKey NSURLLinkCountKey NSURLParentDirectoryURLKey NSURLVolumeURLKey NSURLTypeIdentifierKey NSURLLocalizedTypeDescriptionKey NSURLLabelNumberKey NSURLLabelColorKey NSURLLocalizedLabelKey NSURLEffectiveIconKey NSURLCustomIconKey NSURLFileResourceIdentifierKey NSURLVolumeIdentifierKey NSURLPreferredIOBlockSizeKey NSURLIsReadableKey NSURLIsWritableKey NSURLIsExecutableKey NSURLFileSecurityKey NSURLIsExcludedFromBackupKey NSURLPathKey NSURLIsMountTriggerKey NSURLFileResourceTypeKey +syn keyword objcConstVar NSURLFileResourceTypeNamedPipe NSURLFileResourceTypeCharacterSpecial NSURLFileResourceTypeDirectory NSURLFileResourceTypeBlockSpecial NSURLFileResourceTypeRegular NSURLFileResourceTypeSymbolicLink NSURLFileResourceTypeSocket NSURLFileResourceTypeUnknown +syn keyword objcConstVar NSURLFileSizeKey NSURLFileAllocatedSizeKey NSURLTotalFileSizeKey NSURLTotalFileAllocatedSizeKey NSURLIsAliasFileKey +syn keyword objcConstVar NSURLVolumeLocalizedFormatDescriptionKey NSURLVolumeTotalCapacityKey NSURLVolumeAvailableCapacityKey NSURLVolumeResourceCountKey NSURLVolumeSupportsPersistentIDsKey NSURLVolumeSupportsSymbolicLinksKey NSURLVolumeSupportsHardLinksKey NSURLVolumeSupportsJournalingKey NSURLVolumeIsJournalingKey NSURLVolumeSupportsSparseFilesKey NSURLVolumeSupportsZeroRunsKey NSURLVolumeSupportsCaseSensitiveNamesKey NSURLVolumeSupportsCasePreservedNamesKey NSURLVolumeSupportsRootDirectoryDatesKey NSURLVolumeSupportsVolumeSizesKey NSURLVolumeSupportsRenamingKey NSURLVolumeSupportsAdvisoryFileLockingKey NSURLVolumeSupportsExtendedSecurityKey NSURLVolumeIsBrowsableKey NSURLVolumeMaximumFileSizeKey NSURLVolumeIsEjectableKey NSURLVolumeIsRemovableKey NSURLVolumeIsInternalKey NSURLVolumeIsAutomountedKey NSURLVolumeIsLocalKey NSURLVolumeIsReadOnlyKey NSURLVolumeCreationDateKey NSURLVolumeURLForRemountingKey NSURLVolumeUUIDStringKey NSURLVolumeNameKey NSURLVolumeLocalizedNameKey +syn keyword objcConstVar NSURLIsUbiquitousItemKey NSURLUbiquitousItemHasUnresolvedConflictsKey NSURLUbiquitousItemIsDownloadedKey NSURLUbiquitousItemIsDownloadingKey NSURLUbiquitousItemIsUploadedKey NSURLUbiquitousItemIsUploadingKey NSURLUbiquitousItemPercentDownloadedKey NSURLUbiquitousItemPercentUploadedKey +"""""""""""" +" NSString.h +syn match objcClass /NSString\s*\*/me=s+8,he=s+8 +syn match objcClass /NSMutableString\s*\*/me=s+15,he=s+15 +syn keyword objcType unichar +syn keyword objcExceptionValue NSParseErrorException NSCharacterConversionException +syn keyword objcMacro NSMaximumStringLength +syn keyword objcEnum NSStringCompareOptions +syn keyword objcEnumValue NSCaseInsensitiveSearch NSLiteralSearch NSBackwardsSearch NSAnchoredSearch NSNumericSearch NSDiacriticInsensitiveSearch NSWidthInsensitiveSearch NSForcedOrderingSearch NSRegularExpressionSearch +syn keyword objcEnum NSStringEncoding +syn keyword objcEnumValue NSASCIIStringEncoding NSNEXTSTEPStringEncoding NSJapaneseEUCStringEncoding NSUTF8StringEncoding NSISOLatin1StringEncoding NSSymbolStringEncoding NSNonLossyASCIIStringEncoding NSShiftJISStringEncoding NSISOLatin2StringEncoding NSUnicodeStringEncoding NSWindowsCP1251StringEncoding NSWindowsCP1252StringEncoding NSWindowsCP1253StringEncoding NSWindowsCP1254StringEncoding NSWindowsCP1250StringEncoding NSISO2022JPStringEncoding NSMacOSRomanStringEncoding NSUTF16StringEncoding NSUTF16BigEndianStringEncoding NSUTF16LittleEndianStringEncoding NSUTF32StringEncoding NSUTF32BigEndianStringEncoding NSUTF32LittleEndianStringEncoding +syn keyword objcEnum NSStringEncodingConversionOptions +syn keyword objcEnumValue NSStringEncodingConversionAllowLossy NSStringEncodingConversionExternalRepresentation +syn keyword objcEnum NSStringEnumerationOptions +syn keyword objcEnumValue NSStringEnumerationByLines NSStringEnumerationByParagraphs NSStringEnumerationByComposedCharacterSequences NSStringEnumerationByWords NSStringEnumerationBySentences NSStringEnumerationReverse NSStringEnumerationSubstringNotRequired NSStringEnumerationLocalized +" NSAttributedString.h +syn match objcClass /NSAttributedString\s*\*/me=s+18,he=s+18 +syn match objcClass /NSMutableAttributedString\s*\*/me=s+25,he=s+25 +syn keyword objcEnum NSAttributedStringEnumerationOptions +syn keyword objcEnumValue NSAttributedStringEnumerationReverse NSAttributedStringEnumerationLongestEffectiveRangeNotRequired +" NSValue.h +syn match objcClass /NSValue\s*\*/me=s+7,he=s+7 +syn match objcClass /NSNumber\s*\*/me=s+8,he=s+8 +" NSDecimalNumber.h +syn match objcClass /NSDecimalNumber\s*\*/me=s+15,he=s+15 +syn match objcClass /NSDecimalNumberHandler\s*\*/me=s+22,he=s+22 +syn keyword objcExceptionValue NSDecimalNumberExactnessException NSDecimalNumberOverflowException NSDecimalNumberUnderflowException NSDecimalNumberDivideByZeroException +" NSData.h +syn match objcClass /NSData\s*\*/me=s+6,he=s+6 +syn match objcClass /NSMutableData\s*\*/me=s+13,he=s+13 +syn keyword objcEnum NSDataReadingOptions +syn keyword objcEnumValue NSDataReadingMappedIfSafe NSDataReadingUncached NSDataReadingMappedAlways NSDataReadingMapped NSMappedRead NSUncachedRead +syn keyword objcEnum NSDataWritingOptions +syn keyword objcEnumValue NSDataWritingAtomic NSDataWritingWithoutOverwriting NSDataWritingFileProtectionNone NSDataWritingFileProtectionComplete NSDataWritingFileProtectionCompleteUnlessOpen NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NSDataWritingFileProtectionMask NSAtomicWrite +syn keyword objcEnum NSDataSearchOptions +syn keyword objcEnumValue NSDataSearchBackwards NSDataSearchAnchored +" NSArray.h +syn match objcClass /NSArray\s*\*/me=s+7,he=s+7 +syn match objcClass /NSMutableArray\s*\*/me=s+14,he=s+14 +syn keyword objcEnum NSBinarySearchingOptions +syn keyword objcEnumValue NSBinarySearchingFirstEqual NSBinarySearchingLastEqual NSBinarySearchingInsertionIndex +" NSDictionary.h +syn match objcClass /NSDictionary\s*\*/me=s+12,he=s+12 +syn match objcClass /NSMutableDictionary\s*\*/me=s+19,he=s+19 +" NSSet.h +syn match objcClass /NSSet\s*\*/me=s+5,me=s+5 +syn match objcClass /NSMutableSet\s*\*/me=s+12,me=s+12 +syn match objcClass /NSCountedSet\s*\*/me=s+12,me=s+12 +" NSOrderedSet.h +syn match objcClass /NSOrderedSet\s*\*/me=s+12,me=s+12 +syn match objcClass /NSMutableOrderedSet\s*\*/me=s+19,me=s+19 +""""""""""""""""""" +" NSPathUtilities.h +syn keyword objcEnum NSSearchPathDirectory +syn keyword objcEnumValue NSApplicationDirectory NSDemoApplicationDirectory NSDeveloperApplicationDirectory NSAdminApplicationDirectory NSLibraryDirectory NSDeveloperDirectory NSUserDirectory NSDocumentationDirectory NSDocumentDirectory NSCoreServiceDirectory NSAutosavedInformationDirectory NSDesktopDirectory NSCachesDirectory NSApplicationSupportDirectory NSDownloadsDirectory NSInputMethodsDirectory NSMoviesDirectory NSMusicDirectory NSPicturesDirectory NSPrinterDescriptionDirectory NSSharedPublicDirectory NSPreferencePanesDirectory NSApplicationScriptsDirectory NSItemReplacementDirectory NSAllApplicationsDirectory NSAllLibrariesDirectory NSTrashDirectory +syn keyword objcEnum NSSearchPathDomainMask +syn keyword objcEnumValue NSUserDomainMask NSLocalDomainMask NSNetworkDomainMask NSSystemDomainMask NSAllDomainsMask +" NSFileManger.h +syn match objcClass /NSFileManager\s*\*/me=s+13,he=s+13 +syn match objcClass /NSDirectoryEnumerator\s*\*/me=s+21,he=s+21 +syn keyword objcEnum NSVolumeEnumerationOptions +syn keyword objcEnumValue NSVolumeEnumerationSkipHiddenVolumes NSVolumeEnumerationProduceFileReferenceURLs +syn keyword objcEnum NSDirectoryEnumerationOptions +syn keyword objcEnumValue NSDirectoryEnumerationSkipsSubdirectoryDescendants NSDirectoryEnumerationSkipsPackageDescendants NSDirectoryEnumerationSkipsHiddenFiles +syn keyword objcEnum NSFileManagerItemReplacementOptions +syn keyword objcEnumValue NSFileManagerItemReplacementUsingNewMetadataOnly NSFileManagerItemReplacementWithoutDeletingBackupItem +syn keyword objcNotificationValue NSUbiquityIdentityDidChangeNotification +syn keyword objcConstVar NSFileType NSFileTypeDirectory NSFileTypeRegular NSFileTypeSymbolicLink NSFileTypeSocket NSFileTypeCharacterSpecial NSFileTypeBlockSpecial NSFileTypeUnknown NSFileSize NSFileModificationDate NSFileReferenceCount NSFileDeviceIdentifier NSFileOwnerAccountName NSFileGroupOwnerAccountName NSFilePosixPermissions NSFileSystemNumber NSFileSystemFileNumber NSFileExtensionHidden NSFileHFSCreatorCode NSFileHFSTypeCode NSFileImmutable NSFileAppendOnly NSFileCreationDate NSFileOwnerAccountID NSFileGroupOwnerAccountID NSFileBusy NSFileProtectionKey NSFileProtectionNone NSFileProtectionComplete NSFileProtectionCompleteUnlessOpen NSFileProtectionCompleteUntilFirstUserAuthentication NSFileSystemSize NSFileSystemFreeSize NSFileSystemNodes NSFileSystemFreeNodes +" NSFileHandle.h +syn match objcClass /NSFileHandle\s*\*/me=s+12,he=s+12 +syn keyword objcExceptionValue NSFileHandleOperationException +syn keyword objcNotificationValue NSFileHandleReadCompletionNotification NSFileHandleReadToEndOfFileCompletionNotification NSFileHandleConnectionAcceptedNotification NSFileHandleDataAvailableNotification NSFileHandleNotificationDataItem NSFileHandleNotificationFileHandleItem NSFileHandleNotificationMonitorModes +syn match objcClass /NSPipe\s*\*/me=s+6,he=s+6 +"""""""""""" +" NSLocale.h +syn match objcClass /NSLocale\s*\*/me=s+8,he=s+8 +syn keyword objcEnum NSLocaleLanguageDirection +syn keyword objcEnumValue NSLocaleLanguageDirectionUnknown NSLocaleLanguageDirectionLeftToRight NSLocaleLanguageDirectionRightToLeft NSLocaleLanguageDirectionTopToBottom NSLocaleLanguageDirectionBottomToTop +syn keyword objcNotificationValue NSCurrentLocaleDidChangeNotification +syn keyword objcConstVar NSLocaleIdentifier NSLocaleLanguageCode NSLocaleCountryCode NSLocaleScriptCode NSLocaleVariantCode NSLocaleExemplarCharacterSet NSLocaleCalendar NSLocaleCollationIdentifier NSLocaleUsesMetricSystem NSLocaleMeasurementSystem NSLocaleDecimalSeparator NSLocaleGroupingSeparator NSLocaleCurrencySymbol NSLocaleCurrencyCode NSLocaleCollatorIdentifier NSLocaleQuotationBeginDelimiterKey NSLocaleQuotationEndDelimiterKey NSLocaleAlternateQuotationBeginDelimiterKey NSLocaleAlternateQuotationEndDelimiterKey NSGregorianCalendar NSBuddhistCalendar NSChineseCalendar NSHebrewCalendar NSIslamicCalendar NSIslamicCivilCalendar NSJapaneseCalendar NSRepublicOfChinaCalendar NSPersianCalendar NSIndianCalendar NSISO8601Calendar +" NSFormatter.h +syn match objcClass /NSFormatter\s*\*/me=s+11,he=s+11 +" NSNumberFormatter.h +syn match objcClass /NSNumberFormatter\s*\*/me=s+17,he=s+17 +syn keyword objcEnum NSNumberFormatterStyle +syn keyword objcEnumValue NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle +syn keyword objcEnum NSNumberFormatterBehavior +syn keyword objcEnumValue NSNumberFormatterBehaviorDefault NSNumberFormatterBehavior10_0 NSNumberFormatterBehavior10_4 +syn keyword objcEnum NSNumberFormatterPadPosition +syn keyword objcEnumValue NSNumberFormatterPadBeforePrefix NSNumberFormatterPadAfterPrefix NSNumberFormatterPadBeforeSuffix NSNumberFormatterPadAfterSuffix +syn keyword objcEnum NSNumberFormatterRoundingMode +syn keyword objcEnumValue NSNumberFormatterRoundCeiling NSNumberFormatterRoundFloor NSNumberFormatterRoundDown NSNumberFormatterRoundUp NSNumberFormatterRoundHalfEven NSNumberFormatterRoundHalfDown NSNumberFormatterRoundHalfUp +" NSDateFormatter.h +syn match objcClass /NSDateFormatter\s*\*/me=s+15,he=s+15 +syn keyword objcEnum NSDateFormatterStyle +syn keyword objcEnumValue NSDateFormatterNoStyle NSDateFormatterShortStyle NSDateFormatterMediumStyle NSDateFormatterLongStyle NSDateFormatterFullStyle +syn keyword objcEnum NSDateFormatterBehavior +syn keyword objcEnumValue NSDateFormatterBehaviorDefault NSDateFormatterBehavior10_0 NSDateFormatterBehavior10_4 +" NSCalendar.h +syn match objcClass /NSCalendar\s*\*/me=s+10,he=s+10 +syn keyword objcEnum NSCalendarUnit +syn keyword objcEnumValue NSEraCalendarUnit NSYearCalendarUnit NSMonthCalendarUnit NSDayCalendarUnit NSHourCalendarUnit NSMinuteCalendarUnit NSSecondCalendarUnit NSWeekCalendarUnit NSWeekdayCalendarUnit NSWeekdayOrdinalCalendarUnit NSQuarterCalendarUnit NSWeekOfMonthCalendarUnit NSWeekOfYearCalendarUnit NSYearForWeekOfYearCalendarUnit NSCalendarCalendarUnit NSTimeZoneCalendarUnit +syn keyword objcEnumValue NSWrapCalendarComponents NSUndefinedDateComponent +syn match objcClass /NSDateComponents\s*\*/me=s+16,he=s+16 +" NSTimeZone.h +syn match objcClass /NSTimeZone\s*\*/me=s+10,he=s+10 +syn keyword objcEnum NSTimeZoneNameStyle +syn keyword objcEnumValue NSTimeZoneNameStyleStandard NSTimeZoneNameStyleShortStandard NSTimeZoneNameStyleDaylightSaving NSTimeZoneNameStyleShortDaylightSaving NSTimeZoneNameStyleGeneric NSTimeZoneNameStyleShortGeneric +syn keyword objcNotificationValue NSSystemTimeZoneDidChangeNotification +""""""""""" +" NSCoder.h +syn match objcClass /NSCoder\s*\*/me=s+7,he=s+7 +" NSArchiver.h +syn match objcClass /NSArchiver\s*\*/me=s+10,he=s+10 +syn match objcClass /NSUnarchiver\s*\*/me=s+12,he=s+12 +syn keyword objcExceptionValue NSInconsistentArchiveException +" NSKeyedArchiver.h +syn match objcClass /NSKeyedArchiver\s*\*/me=s+15,he=s+15 +syn match objcClass /NSKeyedUnarchiver\s*\*/me=s+17,he=s+17 +syn keyword objcExceptionValue NSInvalidArchiveOperationException NSInvalidUnarchiveOperationException +"""""""""""""""""" +" NSPropertyList.h +syn keyword objcEnum NSPropertyListMutabilityOptions +syn keyword objcEnumValue NSPropertyListImmutable NSPropertyListMutableContainers NSPropertyListMutableContainersAndLeaves +syn keyword objcEnum NSPropertyListFormat +syn keyword objcEnumValue NSPropertyListOpenStepFormat NSPropertyListXMLFormat_v1_0 NSPropertyListBinaryFormat_v1_0 +syn keyword objcType NSPropertyListReadOptions NSPropertyListWriteOptions +" NSUserDefaults.h +syn match objcClass /NSUserDefaults\s*\*/me=s+14,he=s+14 +syn keyword objcConstVar NSGlobalDomain NSArgumentDomain NSRegistrationDomain +syn keyword objcNotificationValue NSUserDefaultsDidChangeNotification +" NSBundle.h +syn match objcClass /NSBundle\s*\*/me=s+8,he=s+8 +syn keyword objcEnumValue NSBundleExecutableArchitectureI386 NSBundleExecutableArchitecturePPC NSBundleExecutableArchitectureX86_64 NSBundleExecutableArchitecturePPC64 +syn keyword objcNotificationValue NSBundleDidLoadNotification NSLoadedClasses +""""""""""""""""" +" NSProcessInfo.h +syn match objcClass /NSProcessInfo\s*\*/me=s+13,he=s+13 +syn keyword objcEnumValue NSWindowsNTOperatingSystem NSWindows95OperatingSystem NSSolarisOperatingSystem NSHPUXOperatingSystem NSMACHOperatingSystem NSSunOSOperatingSystem NSOSF1OperatingSystem +" NSTask.h +syn match objcClass /NSTask\s*\*/me=s+6,he=s+6 +syn keyword objcEnum NSTaskTerminationReason +syn keyword objcEnumValue NSTaskTerminationReasonExit NSTaskTerminationReasonUncaughtSignal +syn keyword objcNotificationValue NSTaskDidTerminateNotification +" NSThread.h +syn match objcClass /NSThread\s*\*/me=s+8,he=s+8 +syn keyword objcNotificationValue NSWillBecomeMultiThreadedNotification NSDidBecomeSingleThreadedNotification NSThreadWillExitNotification +" NSLock.h +syn match objcClass /NSLock\s*\*/me=s+6,he=s+6 +syn match objcClass /NSConditionLock\s*\*/me=s+15,he=s+15 +syn match objcClass /NSRecursiveLock\s*\*/me=s+15,he=s+15 +" NSDictributedLock +syn match objcClass /NSDistributedLock\s*\*/me=s+17,he=s+17 +" NSOperation.h +"""""""""""""""" +syn match objcClass /NSOperation\s*\*/me=s+11,he=s+11 +syn keyword objcEnum NSOperationQueuePriority +syn keyword objcEnumValue NSOperationQueuePriorityVeryLow NSOperationQueuePriorityLow NSOperationQueuePriorityNormal NSOperationQueuePriorityHigh NSOperationQueuePriorityVeryHigh +syn match objcClass /NSBlockOperation\s*\*/me=s+16,he=s+16 +syn match objcClass /NSInvocationOperation\s*\*/me=s+21,he=s+21 +syn keyword objcExceptionValue NSInvocationOperationVoidResultException NSInvocationOperationCancelledException +syn match objcClass /NSOperationQueue\s*\*/me=s+16,he=s+16 +syn keyword objcEnumValue NSOperationQueueDefaultMaxConcurrentOperationCount +" NSConnection.h +syn match objcClass /NSConnection\s*\*/me=s+12,he=s+12 +syn keyword objcConstVar NSConnectionReplyMode +syn keyword objcNotificationValue NSConnectionDidDieNotification NSConnectionDidInitializeNotification +syn keyword objcExceptionValue NSFailedAuthenticationException +" NSPort.h +syn match objcClass /NSPort\s*\*/me=s+6,he=s+6 +syn keyword objcType NSSocketNativeHandle +syn keyword objcNotificationValue NSPortDidBecomeInvalidNotification +syn match objcClass /NSMachPort\s*\*/me=s+10,he=s+10 +syn keyword objcEnumValue NSMachPortDeallocateNone NSMachPortDeallocateSendRight NSMachPortDeallocateReceiveRight +syn match objcClass /NSMessagePort\s*\*/me=s+13,he=s+13 +syn match objcClass /NSSocketPort\s*\*/me=s+12,he=s+12 +" NSPortMessage.h +syn match objcClass /NSPortMessage\s*\*/me=s+13,he=s+13 +" NSDistantObject.h +syn match objcClass /NSDistantObject\s*\*/me=s+15,he=s+15 +" NSPortNameServer.h +syn match objcClass /NSPortNameServer\s*\*/me=s+16,he=s+16 +syn match objcClass /NSMessagePortNameServer\s*\*/me=s+23,he=s+23 +syn match objcClass /NSSocketPortNameServer\s*\*/me=s+22,he=s+22 +" NSHost.h +syn match objcClass /NSHost\s*\*/me=s+6,he=s+6 +" NSInvocation.h +syn match objcClass /NSInvocation\s*\*/me=s+12,he=s+12 +" NSMethodSignature.h +syn match objcClass /NSMethodSignature\s*\*/me=s+17,he=s+17 +""""" +" NSScanner.h +syn match objcClass /NSScanner\s*\*/me=s+9,he=s+9 +" NSTimer.h +syn match objcClass /NSTimer\s*\*/me=s+7,he=s+7 +" NSAutoreleasePool.h +syn match objcClass /NSAutoreleasePool\s*\*/me=s+17,he=s+17 +" NSRunLoop.h +syn match objcClass /NSRunLoop\s*\*/me=s+9,he=s+9 +syn keyword objcConstVar NSDefaultRunLoopMode NSRunLoopCommonModes +" NSNull.h +syn match objcClass /NSNull\s*\*/me=s+6,he=s+6 +" NSProxy.h +syn match objcClass /NSProxy\s*\*/me=s+7,he=s+7 +" NSObject.h +syn match objcClass /NSObject\s*\*/me=s+8,he=s+8 + +""" Default Highlighting +hi def link objcPreProcMacro cConstant +hi def link objcPrincipalType cType +hi def link objcUsefulTerm cConstant +hi def link objcImport cInclude +hi def link objcImported cString +hi def link objcObjDef cOperator +hi def link objcProtocol cOperator +hi def link objcProperty cOperator +hi def link objcIvarScope cOperator +hi def link objcInternalRep cOperator +hi def link objcException cOperator +hi def link objcThread cOperator +hi def link objcPool cOperator +hi def link objcSpecial cSpecial +hi def link objcString cString +hi def link objcHiddenArgument cStatement +hi def link objcBlocksQualifier cStorageClass +hi def link objcObjectLifetimeQualifier cStorageClass +hi def link objcTollFreeBridgeQualifier cStorageClass +hi def link objcRemoteMessagingQualifier cStorageClass +hi def link objcFastEnumKeyword cStatement +hi def link objcLiteralSyntaxNumber cNumber +hi def link objcLiteralSyntaxChar cCharacter +hi def link objcLiteralSyntaxSpecialChar cCharacter +hi def link objcLiteralSyntaxOp cOperator +hi def link objcDeclPropAccessorName cConstant +hi def link objcDeclPropAccessorType cConstant +hi def link objcDeclPropAssignSemantics cConstant +hi def link objcDeclPropAtomicity cConstant +hi def link objcDeclPropARC cConstant +hi def link objcInstanceMethod Function +hi def link objcClassMethod Function +hi def link objcType cType +hi def link objcClass cType +hi def link objcMacro cConstant +hi def link objcEnum cType +hi def link objcEnumValue cConstant +hi def link objcExceptionValue cConstant +hi def link objcNotificationValue cConstant +hi def link objcConstVar cConstant + +""" Final step +let b:current_syntax = "objc" +let &cpo = s:cpo_save +unlet s:cpo_save -" vim: ts=8 +" vim: ts=8 sw=2 sts=2 diff --git a/runtime/syntax/proto.vim b/runtime/syntax/proto.vim new file mode 100644 index 000000000..4d6a77e84 --- /dev/null +++ b/runtime/syntax/proto.vim @@ -0,0 +1,74 @@ +" syntax file for Protocol Buffers - Google's data interchange format +" +" Copyright 2008 Google Inc. All rights reserved. +" +" Permission is hereby granted, free of charge, to any person obtaining a copy +" of this software and associated documentation files (the "Software"), to deal +" in the Software without restriction, including without limitation the rights +" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +" copies of the Software, and to permit persons to whom the Software is +" furnished to do so, subject to the following conditions: +" +" The above copyright notice and this permission notice shall be included in +" all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. +" +" http://code.google.com/p/protobuf/ + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match + +syn keyword protoTodo contained TODO FIXME XXX +syn cluster protoCommentGrp contains=protoTodo + +syn keyword protoSyntax syntax import option +syn keyword protoStructure package message group +syn keyword protoRepeat optional required repeated +syn keyword protoDefault default +syn keyword protoExtend extend extensions to max +syn keyword protoRPC service rpc returns + +syn keyword protoType int32 int64 uint32 uint64 sint32 sint64 +syn keyword protoType fixed32 fixed64 sfixed32 sfixed64 +syn keyword protoType float double bool string bytes +syn keyword protoTypedef enum +syn keyword protoBool true false + +syn match protoInt /-\?\<\d\+\>/ +syn match protoInt /\<0[xX]\x+\>/ +syn match protoFloat /\<-\?\d*\(\.\d*\)\?/ +syn region protoComment start="\/\*" end="\*\/" contains=@protoCommentGrp +syn region protoComment start="//" skip="\\$" end="$" keepend contains=@protoCommentGrp +syn region protoString start=/"/ skip=/\\./ end=/"/ +syn region protoString start=/'/ skip=/\\./ end=/'/ + +hi def link protoTodo Todo + +hi def link protoSyntax Include +hi def link protoStructure Structure +hi def link protoRepeat Repeat +hi def link protoDefault Keyword +hi def link protoExtend Keyword +hi def link protoRPC Keyword +hi def link protoType Type +hi def link protoTypedef Typedef +hi def link protoBool Boolean + +hi def link protoInt Number +hi def link protoFloat Float +hi def link protoComment Comment +hi def link protoString String + +let b:current_syntax = "proto" diff --git a/runtime/syntax/ruby.vim b/runtime/syntax/ruby.vim index e3aee1200..28f553dec 100644 --- a/runtime/syntax/ruby.vim +++ b/runtime/syntax/ruby.vim @@ -1,9 +1,7 @@ " Vim syntax file " Language: Ruby " Maintainer: Doug Kearns <dougkearns@gmail.com> -" Last Change: 2009 Dec 2 -" URL: http://vim-ruby.rubyforge.org -" Anon CVS: See above site +" URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns <dougkearns@gmail.com> " ---------------------------------------------------------------------------- " @@ -32,8 +30,8 @@ endif " Operators if exists("ruby_operators") - syn match rubyOperator "\%([~!^&|*/%+-]\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::\)" - syn match rubyPseudoOperator "\%(-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=\)" + syn match rubyOperator "[~!^&|*/%+-]\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@<!>\|\*\*\|\.\.\.\|\.\.\|::" + syn match rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=" syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop endif @@ -95,86 +93,89 @@ syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contain syn match rubyBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent syn match rubyConstant "\%(\%([.@$]\@<!\.\)\@<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=\%(\s*(\)\@!" -syn match rubyClassVariable "@@\h\w*" display -syn match rubyInstanceVariable "@\h\w*" display -syn match rubyGlobalVariable "$\%(\h\w*\|-.\)" -syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|==\|=\~\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" +syn match rubyClassVariable "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display +syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display +syn match rubyGlobalVariable "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)" +syn match rubySymbol "[]})\"':]\@<!:\%(\^\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" syn match rubySymbol "[]})\"':]\@<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)" -syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\h\w*" -syn match rubySymbol "[]})\"':]\@<!:\h\w*\%([?!=]>\@!\)\=" +syn match rubySymbol "[]})\"':]\@<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" +syn match rubySymbol "[]})\"':]\@<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\=" syn match rubySymbol "\%([{(,]\_s*\)\@<=\l\w*[!?]\=::\@!"he=e-1 -syn match rubySymbol "[]})\"':]\@<!\h\w*[!?]\=:\s\@="he=e-1 +syn match rubySymbol "[]})\"':]\@<!\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="he=e-1 +syn match rubySymbol "\%([{(,]\_s*\)\@<=[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1 +syn match rubySymbol "[[:space:],{]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:\s\@="hs=s+1,he=e-1 syn region rubySymbol start="[]})\"':]\@<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold syn region rubySymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold -syn match rubyBlockParameter "\h\w*" contained +syn match rubyBlockParameter "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contained syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\s*\)\@<=|" end="|" oneline display contains=rubyBlockParameter syn match rubyInvalidVariable "$[^ A-Za-z_-]" -syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~1-9]# +syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]# +syn match rubyPredefinedVariable "$\d\+" display syn match rubyPredefinedVariable "$_\>" display syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>" display syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(MatchingData\|ARGF\|ARGV\|ENV\)\>\%(\s*(\)\@!" -syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\|RUBY_PLATFORM\|RUBY_RELEASE_DATE\)\>\%(\s*(\)\@!" -syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_VERSION\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!" -"Obsolete Global Constants -"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(PLATFORM\|RELEASE_DATE\|VERSION\)\>" -"syn match rubyPredefinedConstant "\%(::\)\=\zs\%(NotImplementError\)\>" +syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(DATA\|FALSE\|NIL\)\>\%(\s*(\)\@!" +syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!" +syn match rubyPredefinedConstant "\%(\%(\.\@<!\.\)\@<!\|::\)\_s*\zs\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!" " Normal Regular Expression -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,[>]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial keepend fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/[ \t=]\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold " Generalized Regular Expression -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold -syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold +syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold " Normal String and Shell Command Output -syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial,@Spell fold +syn region rubyString matchgroup=rubyStringDelimiter start="'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape,@Spell fold syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold " Generalized Single Quoted String, Symbol and Array of Strings -syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape -syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape -syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape -syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape -syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold -syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape -syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape -syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape -syn region rubySymbol matchgroup=rubySymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%[qwi](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape +syn region rubyString matchgroup=rubyStringDelimiter start="%q " end=" " skip="\\\\\|\\)" fold +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.? /]\)" end="\z1" skip="\\\\\|\\\z1" fold +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimEscape +syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimEscape " Generalized Double Quoted String and Array of Strings and Shell Command Output " Note: %= is not matched here as the beginning of a double quoted string syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWIx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimEscape fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx] " end=" " skip="\\\\\|\\)" contains=@rubyStringSpecial fold " Here Document -syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs\%(\h\w*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop +syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<-\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop -syn region rubyString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart fold keepend -syn region rubyString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-"\z([^"]*\)"\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-'\z([^']*\)'\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart fold keepend +syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend if exists('main_syntax') && main_syntax == 'eruby' let b:ruby_no_expensive = 1 @@ -187,7 +188,7 @@ syn match rubyClassDeclaration "[^[:space:];#<]\+" contained contains=rubyC syn match rubyModuleDeclaration "[^[:space:];#<]\+" contained contains=rubyConstant,rubyOperator syn match rubyFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration syn match rubyFunction "\%(\s\|^\)\@<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2 -syn match rubyFunction "\%([[:space:].]\|^\)\@<=\%(\[\]=\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|==\|=\~\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration +syn match rubyFunction "\%([[:space:].]\|^\)\@<=\%(\[\]=\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyFunction,rubyBlockParameter @@ -198,7 +199,7 @@ syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue syn match rubyOperator "\<defined?" display syn match rubyKeyword "\<\%(super\|yield\)\>[?!]\@!" syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!" -syn match rubyPseudoVariable "\<\%(nil\|self\|__FILE__\|__LINE__\)\>[?!]\@!" +syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!" " Expensive Mode - match 'end' with the appropriate opening keyword for syntax @@ -220,13 +221,13 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold " curly bracket block or hash literal - syn region rubyCurlyBlock start="{" end="}" contains=ALLBUT,@rubyNotTop fold - syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold + syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold + syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold " statements without 'do' syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold - syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold + syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!" contained containedin=rubyCaseExpression syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression @@ -239,7 +240,7 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold if !exists("ruby_minlines") - let ruby_minlines = 50 + let ruby_minlines = 500 endif exec "syn sync minlines=" . ruby_minlines @@ -253,7 +254,7 @@ endif " Special Methods if !exists("ruby_no_special_methods") - syn keyword rubyAccess public protected private module_function + syn keyword rubyAccess public protected private public_class_method private_class_method public_constant private_constant module_function " attr is a common variable name syn match rubyAttribute "\%(\%(^\|;\)\s*\)\@<=attr\>\(\s*[.=]\)\@!" syn keyword rubyAttribute attr_accessor attr_reader attr_writer @@ -262,17 +263,17 @@ if !exists("ruby_no_special_methods") syn keyword rubyException raise fail catch throw " false positive with 'include?' syn match rubyInclude "\<include\>[?!]\@!" - syn keyword rubyInclude autoload extend load require + syn keyword rubyInclude autoload extend load prepend require require_relative syn keyword rubyKeyword callcc caller lambda proc endif " Comments and Documentation syn match rubySharpBang "\%^#!.*" display -syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE XXX contained +syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE XXX todo contained syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell if !exists("ruby_no_comment_fold") syn region rubyMultilineComment start="\%(\%(^\s*#.*\n\)\@<!\%(^\s*#.*\n\)\)\%(\(^\s*#.*\n\)\{1,}\)\@=" end="\%(^\s*#.*\n\)\@<=\%(^\s*#.*\n\)\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend - syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell fold + syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold else syn region rubyDocumentation start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell endif @@ -286,12 +287,12 @@ syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(undef\|unless\|until syn match rubyKeywordAsMethod "\<\%(alias\|begin\|case\|class\|def\|do\|end\)[?!]" transparent contains=NONE syn match rubyKeywordAsMethod "\<\%(if\|module\|undef\|unless\|until\|while\)[?!]" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|private\|proc\|protected\)\>" transparent contains=NONE -syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|raise\|throw\|trap\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(abort\|at_exit\|attr\|attr_accessor\|attr_reader\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(attr_writer\|autoload\|callcc\|catch\|caller\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(eval\|class_eval\|instance_eval\|module_eval\|exit\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(extend\|fail\|fork\|include\|lambda\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(load\|loop\|prepend\|private\|proc\|protected\)\>" transparent contains=NONE +syn match rubyKeywordAsMethod "\%(\%(\.\@<!\.\)\|::\)\_s*\%(public\|require\|require_relative\|raise\|throw\|trap\)\>" transparent contains=NONE " __END__ Directive syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold @@ -330,7 +331,6 @@ hi def link rubyPredefinedVariable rubyPredefinedIdentifier hi def link rubySymbol Constant hi def link rubyKeyword Keyword hi def link rubyOperator Operator -hi def link rubyPseudoOperator rubyOperator hi def link rubyBeginEnd Statement hi def link rubyAccess Statement hi def link rubyAttribute Statement @@ -351,6 +351,7 @@ hi def link rubySharpBang PreProc hi def link rubyRegexpDelimiter rubyStringDelimiter hi def link rubySymbolDelimiter rubyStringDelimiter hi def link rubyStringDelimiter Delimiter +hi def link rubyHeredoc rubyString hi def link rubyString String hi def link rubyRegexpEscape rubyRegexpSpecial hi def link rubyRegexpQuantifier rubyRegexpSpecial diff --git a/runtime/syntax/xml.vim b/runtime/syntax/xml.vim index 2d4170a04..7b503abf4 100644 --- a/runtime/syntax/xml.vim +++ b/runtime/syntax/xml.vim @@ -3,7 +3,7 @@ " Maintainer: Johannes Zellner <johannes@zellner.org> " Author and previous maintainer: " Paul Siegmann <pauls@euronet.nl> -" Last Change: 2013 May 29 +" Last Change: 2013 Jun 07 " Filenames: *.xml " $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $ @@ -81,7 +81,7 @@ syn match xmlEqual +=+ display " ^^^^^^^^^^^^^ " syn match xmlAttrib - \ +[-'"<]\@2<!\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>\(['">]\@!\|$\)+ + \ +[-'"<]\@1<!\<[a-zA-Z:_][-.0-9a-zA-Z:_]*\>\%(['">]\@!\|$\)+ \ contained \ contains=xmlAttribPunct,@xmlAttribHook \ display @@ -122,7 +122,7 @@ endif " ^^^ " syn match xmlTagName - \ +[<]\@2<=[^ /!?<>"']\++ + \ +<\@1<=[^ /!?<>"']\++ \ contained \ contains=xmlNamespace,xmlAttribPunct,@xmlTagHook \ display |