mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	    calendar(1) file.
 | 
						|
" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
 | 
						|
" URL:		    http://www.pcppopper.org/vim/syntax/pcp/calendar/
 | 
						|
" Latest Revision:  2004-05-06
 | 
						|
" arch-tag:	    d714127d-469d-43bd-9c79-c2a46ec54535
 | 
						|
 | 
						|
if version < 600
 | 
						|
  syntax clear
 | 
						|
elseif exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
" Todo
 | 
						|
syn keyword calendarTodo	contained TODO FIXME XXX NOTE
 | 
						|
 | 
						|
" Comments
 | 
						|
syn region  calendarComment	matchgroup=calendarComment start='/\*' end='\*/' contains=calendarTodo
 | 
						|
 | 
						|
" Strings
 | 
						|
syn region  calendarCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=calendarSpecial
 | 
						|
syn match   calendarSpecial	display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
 | 
						|
syn match   calendarSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
 | 
						|
 | 
						|
" cpp(1) Preprocessor directives (adapted from syntax/c.vim)
 | 
						|
 | 
						|
syn region  calendarPreCondit	start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' skip='\\$' end='$' contains=calendarComment,calendarCppString
 | 
						|
syn match   calendarPreCondit	display '^\s*#\s*\%(else\|endif\)\>'
 | 
						|
syn region  calendarCppOut	start='^\s*#\s*if\s\+0\+' end='.\@=\|$' contains=calendarCppOut2
 | 
						|
syn region  calendarCppOut2	contained start='0' end='^\s*#\s*\%(endif\|else\|elif\)\>' contains=calendarSpaceError,calendarCppSkip
 | 
						|
syn region  calendarCppSkip	contained start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' skip='\\$' end='^\s*#\s*endif\>' contains=calendarSpaceError,calendarCppSkip
 | 
						|
syn region  calendarIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
 | 
						|
syn match   calendarIncluded	display contained '<[^>]*>'
 | 
						|
syn match   calendarInclude	display '^\s*#\s*include\>\s*["<]' contains=calendarIncluded
 | 
						|
syn cluster calendarPreProcGroup    contains=calendarPreCondit,calendarIncluded,calendarInclude,calendarDefine,calendarCppOut,calendarCppOut2,calendarCppSkip,calendarString,calendarSpecial,calendarTodo
 | 
						|
syn region  calendarDefine	start='^\s*#\s*\%(define\|undef\)\>' skip='\\$' end='$' contains=ALLBUT,@calendarPreProcGroup
 | 
						|
syn region  calendarPreProc	start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' skip='\\$' end='$' keepend contains=ALLBUT,@calendarPreProcGroup
 | 
						|
 | 
						|
" Keywords
 | 
						|
syn keyword calendarKeyword	CHARSET BODUN LANG
 | 
						|
syn case ignore
 | 
						|
syn keyword calendarKeyword	Easter Pashka
 | 
						|
syn case match
 | 
						|
 | 
						|
" Dates
 | 
						|
syn case ignore
 | 
						|
syn match   calendarNumber	'\<\d\+\>'
 | 
						|
syn keyword calendarMonth	Jan[uary] Feb[ruary] Mar[ch] Apr[il] May Jun[e]
 | 
						|
syn keyword calendarMonth	Jul[y] Aug[ust] Sep[tember] Oct[ober]
 | 
						|
syn keyword calendarMonth	Nov[ember] Dec[ember]
 | 
						|
syn match   calendarMonth	'\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
 | 
						|
syn keyword calendarWeekday	Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
 | 
						|
syn keyword calendarWeekday	Fri[day] Sat[urday] Sun[day]
 | 
						|
syn match   calendarWeekday	'\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' nextgroup=calendarWeekdayMod
 | 
						|
syn match   calendarWeekdayMod	'[+-]\d\+\>'
 | 
						|
syn case match
 | 
						|
 | 
						|
" Times
 | 
						|
syn match   calendarTime	'\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
 | 
						|
syn match   calendarTime	'\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
 | 
						|
 | 
						|
" Variables
 | 
						|
syn match calendarVariable	'\*'
 | 
						|
 | 
						|
let b:c_minlines = 50		" #if 0 constructs can be long
 | 
						|
exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
 | 
						|
 | 
						|
" 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_calendar_syn_inits")
 | 
						|
  if version < 508
 | 
						|
    let did_calendar_syn_inits = 1
 | 
						|
    command -nargs=+ HiLink hi link <args>
 | 
						|
  else
 | 
						|
    command -nargs=+ HiLink hi def link <args>
 | 
						|
  endif
 | 
						|
 | 
						|
  HiLink calendarTodo		Todo
 | 
						|
  HiLink calendarComment	Comment
 | 
						|
  HiLink calendarCppString	String
 | 
						|
  HiLink calendarSpecial	SpecialChar
 | 
						|
  HiLink calendarPreCondit	PreCondit
 | 
						|
  HiLink calendarCppOut	Comment
 | 
						|
  HiLink calendarCppOut2	calendarCppOut
 | 
						|
  HiLink calendarCppSkip	calendarCppOut
 | 
						|
  HiLink calendarIncluded	String
 | 
						|
  HiLink calendarInclude	Include
 | 
						|
  HiLink calendarDefine	Macro
 | 
						|
  HiLink calendarPreProc	PreProc
 | 
						|
  HiLink calendarKeyword	Keyword
 | 
						|
  HiLink calendarNumber	Number
 | 
						|
  HiLink calendarMonth	String
 | 
						|
  HiLink calendarWeekday	String
 | 
						|
  HiLink calendarWeekdayMod	Special
 | 
						|
  HiLink calendarTime		Number
 | 
						|
  HiLink calendarVariable	Identifier
 | 
						|
 | 
						|
  delcommand HiLink
 | 
						|
endif
 | 
						|
 | 
						|
let b:current_syntax = "calendar"
 | 
						|
 | 
						|
" vim: set sts=2 sw=2:
 |