mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 a98a6996c2
			
		
	
	a98a6996c2
	
	
	
		
			
			Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7
Excluding:
  Amiga icons (*.info, icons/)
  doc/hangulin.txt
  tutor/
  spell/
  lang/ (only used for menu translations)
  macros/maze/, macros/hanoi/, macros/life/, macros/urm/
      These were used to test vi compatibility.
  termcap
      "Demonstration of a termcap file (for the Amiga and Archimedes)"
Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
		
	
		
			
				
	
	
		
			185 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	TADS
 | |
| " Maintainer:	Amir Karger <karger@post.harvard.edu>
 | |
| " $Date: 2004/06/13 19:28:45 $
 | |
| " $Revision: 1.1 $
 | |
| " Stolen from: Bram Moolenaar's C language file
 | |
| " Newest version at: http://www.hec.utah.edu/~karger/vim/syntax/tads.vim
 | |
| " History info at the bottom of the file
 | |
| 
 | |
| " TODO lots more keywords
 | |
| " global, self, etc. are special *objects*, not functions. They should
 | |
| " probably be a different color than the special functions
 | |
| " Actually, should cvtstr etc. be functions?! (change tadsFunction)
 | |
| " Make global etc. into Identifiers, since we don't have regular variables?
 | |
| 
 | |
| " 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")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " A bunch of useful keywords
 | |
| syn keyword tadsStatement	goto break return continue pass
 | |
| syn keyword tadsLabel		case default
 | |
| syn keyword tadsConditional	if else switch
 | |
| syn keyword tadsRepeat		while for do
 | |
| syn keyword tadsStorageClass	local compoundWord formatstring specialWords
 | |
| syn keyword tadsBoolean		nil true
 | |
| 
 | |
| " TADS keywords
 | |
| syn keyword tadsKeyword		replace modify
 | |
| syn keyword tadsKeyword		global self inherited
 | |
| " builtin functions
 | |
| syn keyword tadsKeyword		cvtstr cvtnum caps lower upper substr
 | |
| syn keyword tadsKeyword		say length
 | |
| syn keyword tadsKeyword		setit setscore
 | |
| syn keyword tadsKeyword		datatype proptype
 | |
| syn keyword tadsKeyword		car cdr
 | |
| syn keyword tadsKeyword		defined isclass
 | |
| syn keyword tadsKeyword		find firstobj nextobj
 | |
| syn keyword tadsKeyword		getarg argcount
 | |
| syn keyword tadsKeyword		input yorn askfile
 | |
| syn keyword tadsKeyword		rand randomize
 | |
| syn keyword tadsKeyword		restart restore quit save undo
 | |
| syn keyword tadsException	abort exit exitobj
 | |
| 
 | |
| syn keyword tadsTodo contained	TODO FIXME XXX
 | |
| 
 | |
| " String and Character constants
 | |
| " Highlight special characters (those which have a backslash) differently
 | |
| syn match tadsSpecial contained	"\\."
 | |
| syn region tadsDoubleString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tadsSpecial,tadsEmbedded
 | |
| syn region tadsSingleString		start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tadsSpecial
 | |
| " Embedded expressions in strings
 | |
| syn region tadsEmbedded contained       start="<<" end=">>" contains=tadsKeyword
 | |
| 
 | |
| " TADS doesn't have \xxx, right?
 | |
| "syn match cSpecial contained	"\\[0-7][0-7][0-7]\=\|\\."
 | |
| "syn match cSpecialCharacter	"'\\[0-7][0-7]'"
 | |
| "syn match cSpecialCharacter	"'\\[0-7][0-7][0-7]'"
 | |
| 
 | |
| "catch errors caused by wrong parenthesis
 | |
| "syn region cParen		transparent start='(' end=')' contains=ALLBUT,cParenError,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel
 | |
| "syn match cParenError		")"
 | |
| "syn match cInParen contained	"[{}]"
 | |
| syn region tadsBrace		transparent start='{' end='}' contains=ALLBUT,tadsBraceError,tadsIncluded,tadsSpecial,tadsTodo
 | |
| syn match tadsBraceError		"}"
 | |
| 
 | |
| "integer number (TADS has no floating point numbers)
 | |
| syn case ignore
 | |
| syn match tadsNumber		"\<[0-9]\+\>"
 | |
| "hex number
 | |
| syn match tadsNumber		"\<0x[0-9a-f]\+\>"
 | |
| syn match tadsIdentifier	"\<[a-z][a-z0-9_$]*\>"
 | |
| syn case match
 | |
| " flag an octal number with wrong digits
 | |
| syn match tadsOctalError		"\<0[0-7]*[89]"
 | |
| 
 | |
| " Removed complicated c_comment_strings
 | |
| syn region tadsComment		start="/\*" end="\*/" contains=tadsTodo
 | |
| syn match tadsComment		"//.*" contains=tadsTodo
 | |
| syntax match tadsCommentError	"\*/"
 | |
| 
 | |
| syn region tadsPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tadsComment,tadsString,tadsNumber,tadsCommentError
 | |
| syn region tadsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
 | |
| syn match tadsIncluded contained "<[^>]*>"
 | |
| syn match tadsInclude		"^\s*#\s*include\>\s*["<]" contains=tadsIncluded
 | |
| syn region tadsDefine		start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInBrace,tadsIdentifier
 | |
| 
 | |
| syn region tadsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInParen,tadsIdentifier
 | |
| 
 | |
| " Highlight User Labels
 | |
| " TODO labels for gotos?
 | |
| "syn region	cMulti		transparent start='?' end=':' contains=ALLBUT,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel,cBitField
 | |
| " Avoid matching foo::bar() in C++ by requiring that the next char is not ':'
 | |
| "syn match	cUserCont	"^\s*\I\i*\s*:$" contains=cUserLabel
 | |
| "syn match	cUserCont	";\s*\I\i*\s*:$" contains=cUserLabel
 | |
| "syn match	cUserCont	"^\s*\I\i*\s*:[^:]" contains=cUserLabel
 | |
| "syn match	cUserCont	";\s*\I\i*\s*:[^:]" contains=cUserLabel
 | |
| 
 | |
| "syn match	cUserLabel	"\I\i*" contained
 | |
| 
 | |
| " identifier: class-name [, class-name [...]] [property-list] ;
 | |
| " Don't highlight comment in class def
 | |
| syn match tadsClassDef		"\<class\>[^/]*" contains=tadsObjectDef,tadsClass
 | |
| syn match tadsClass contained   "\<class\>"
 | |
| syn match tadsObjectDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*[a-zA-Z0-9_$]\+\(\s*,\s*[a-zA-Z][a-zA-Z0-9_$]*\)*\(\s*;\)\="
 | |
| syn keyword tadsFunction contained function
 | |
| syn match tadsFunctionDef	 "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*function[^{]*" contains=tadsFunction
 | |
| "syn region tadsObject		  transparent start = '[a-zA-Z][\i$]\s*:\s*' end=";" contains=tadsBrace,tadsObjectDef
 | |
| 
 | |
| " How far back do we go to find matching groups
 | |
| if !exists("tads_minlines")
 | |
|   let tads_minlines = 15
 | |
| endif
 | |
| exec "syn sync ccomment tadsComment minlines=" . tads_minlines
 | |
| if !exists("tads_sync_dist")
 | |
|   let tads_sync_dist = 100
 | |
| endif
 | |
| execute "syn sync maxlines=" . tads_sync_dist
 | |
| 
 | |
| " 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_tads_syn_inits")
 | |
|   if version < 508
 | |
|     let did_tads_syn_inits = 1
 | |
|     command -nargs=+ HiLink hi link <args>
 | |
|   else
 | |
|     command -nargs=+ HiLink hi def link <args>
 | |
|   endif
 | |
| 
 | |
|   " The default methods for highlighting.  Can be overridden later
 | |
|   HiLink tadsFunctionDef Function
 | |
|   HiLink tadsFunction  Structure
 | |
|   HiLink tadsClass     Structure
 | |
|   HiLink tadsClassDef  Identifier
 | |
|   HiLink tadsObjectDef Identifier
 | |
| " no highlight for tadsEmbedded, so it prints as normal text w/in the string
 | |
| 
 | |
|   HiLink tadsOperator	Operator
 | |
|   HiLink tadsStructure	Structure
 | |
|   HiLink tadsTodo	Todo
 | |
|   HiLink tadsLabel	Label
 | |
|   HiLink tadsConditional	Conditional
 | |
|   HiLink tadsRepeat	Repeat
 | |
|   HiLink tadsException	Exception
 | |
|   HiLink tadsStatement	Statement
 | |
|   HiLink tadsStorageClass	StorageClass
 | |
|   HiLink tadsKeyWord   Keyword
 | |
|   HiLink tadsSpecial	SpecialChar
 | |
|   HiLink tadsNumber	Number
 | |
|   HiLink tadsBoolean	Boolean
 | |
|   HiLink tadsDoubleString	tadsString
 | |
|   HiLink tadsSingleString	tadsString
 | |
| 
 | |
|   HiLink tadsOctalError	tadsError
 | |
|   HiLink tadsCommentError	tadsError
 | |
|   HiLink tadsBraceError	tadsError
 | |
|   HiLink tadsInBrace	tadsError
 | |
|   HiLink tadsError	Error
 | |
| 
 | |
|   HiLink tadsInclude	Include
 | |
|   HiLink tadsPreProc	PreProc
 | |
|   HiLink tadsDefine	Macro
 | |
|   HiLink tadsIncluded	tadsString
 | |
|   HiLink tadsPreCondit	PreCondit
 | |
| 
 | |
|   HiLink tadsString	String
 | |
|   HiLink tadsComment	Comment
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "tads"
 | |
| 
 | |
| " Changes:
 | |
| " 11/18/99 Added a bunch of TADS functions, tadsException
 | |
| " 10/22/99 Misspelled Moolenaar (sorry!), c_minlines to tads_minlines
 | |
| "
 | |
| " vim: ts=8
 |