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>
		
	
		
			
				
	
	
		
			177 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	ibasic
 | |
| " Maintainer:	Mark Manning <markem@airmail.net>
 | |
| " Originator:	Allan Kelly <Allan.Kelly@ed.ac.uk>
 | |
| " Created:	10/1/2006
 | |
| " Updated:	10/21/2006
 | |
| " Description:  A vim file to handle the IBasic file format.
 | |
| " Notes:
 | |
| "	Updated by Mark Manning <markem@airmail.net>
 | |
| "	Applied IBasic support to the already excellent support for standard
 | |
| "	basic syntax (like QB).
 | |
| "
 | |
| "	First version based on Micro$soft QBASIC circa 1989, as documented in
 | |
| "	'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
 | |
| "	This syntax file not a complete implementation yet.
 | |
| "	Send suggestions to the maintainer.
 | |
| "
 | |
| "	This version is based upon the commands found in IBasic (www.pyxia.com).
 | |
| "	MEM 10/6/2006
 | |
| "
 | |
| "	Quit when a (custom) syntax file was already loaded (Taken from c.vim)
 | |
| "
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| "
 | |
| "	Be sure to turn on the "case ignore" since current versions of basic
 | |
| "	support both upper as well as lowercase letters.
 | |
| "
 | |
| syn case ignore
 | |
| "
 | |
| " A bunch of useful BASIC keywords
 | |
| "
 | |
| syn keyword ibasicStatement	beep bload bsave call absolute chain chdir circle
 | |
| syn keyword ibasicStatement	clear close cls color com common const data
 | |
| syn keyword ibasicStatement	loop draw end environ erase error exit field
 | |
| syn keyword ibasicStatement	files function get gosub goto
 | |
| syn keyword ibasicStatement	input input# ioctl key kill let line locate
 | |
| syn keyword ibasicStatement	lock unlock lprint using lset mkdir name
 | |
| syn keyword ibasicStatement	on error open option base out paint palette pcopy
 | |
| syn keyword ibasicStatement	pen play pmap poke preset print print# using pset
 | |
| syn keyword ibasicStatement	put randomize read redim reset restore resume
 | |
| syn keyword ibasicStatement	return rmdir rset run seek screen
 | |
| syn keyword ibasicStatement	shared shell sleep sound static stop strig sub
 | |
| syn keyword ibasicStatement	swap system timer troff tron type unlock
 | |
| syn keyword ibasicStatement	view wait width window write
 | |
| syn keyword ibasicStatement	date$ mid$ time$
 | |
| "
 | |
| "	Do the basic variables names first.  This is because it
 | |
| "	is the most inclusive of the tests.  Later on we change
 | |
| "	this so the identifiers are split up into the various
 | |
| "	types of identifiers like functions, basic commands and
 | |
| "	such. MEM 9/9/2006
 | |
| "
 | |
| syn match	ibasicIdentifier			"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
 | |
| syn match	ibasicGenericFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
 | |
| "
 | |
| "	Function list
 | |
| "
 | |
| syn keyword ibasicBuiltInFunction	abs asc atn cdbl cint clng cos csng csrlin cvd cvdmbf
 | |
| syn keyword ibasicBuiltInFunction	cvi cvl cvs cvsmbf eof erdev erl err exp fileattr
 | |
| syn keyword ibasicBuiltInFunction	fix fre freefile inp instr lbound len loc lof
 | |
| syn keyword ibasicBuiltInFunction	log lpos mod peek pen point pos rnd sadd screen seek
 | |
| syn keyword ibasicBuiltInFunction	setmem sgn sin spc sqr stick strig tab tan ubound
 | |
| syn keyword ibasicBuiltInFunction	val valptr valseg varptr varseg
 | |
| syn keyword ibasicBuiltInFunction	chr\$ command$ date$ environ$ erdev$ hex$ inkey$
 | |
| syn keyword ibasicBuiltInFunction	input$ ioctl$ lcases$ laft$ ltrim$ mid$ mkdmbf$ mkd$
 | |
| syn keyword ibasicBuiltInFunction	mki$ mkl$ mksmbf$ mks$ oct$ right$ rtrim$ space$
 | |
| syn keyword ibasicBuiltInFunction	str$ string$ time$ ucase$ varptr$
 | |
| syn keyword ibasicTodo contained	TODO
 | |
| syn cluster	ibasicFunctionCluster	contains=ibasicBuiltInFunction,ibasicGenericFunction
 | |
| 
 | |
| syn keyword Conditional	if else then elseif endif select case endselect
 | |
| syn keyword Repeat	for do while next enddo endwhile wend
 | |
| 
 | |
| syn keyword ibasicTypeSpecifier	single double defdbl defsng
 | |
| syn keyword ibasicTypeSpecifier	int integer uint uinteger int64 uint64 defint deflng
 | |
| syn keyword ibasicTypeSpecifier	byte char string istring defstr
 | |
| syn keyword ibasicDefine	dim def declare
 | |
| "
 | |
| "catch errors caused by wrong parenthesis
 | |
| "
 | |
| syn cluster	ibasicParenGroup	contains=ibasicParenError,ibasicIncluded,ibasicSpecial,ibasicTodo,ibasicUserCont,ibasicUserLabel,ibasicBitField
 | |
| syn region	ibasicParen		transparent start='(' end=')' contains=ALLBUT,@bParenGroup
 | |
| syn match	ibasicParenError	")"
 | |
| syn match	ibasicInParen	contained "[{}]"
 | |
| "
 | |
| "integer number, or floating point number without a dot and with "f".
 | |
| "
 | |
| syn region	ibasicHex		start="&h" end="\W"
 | |
| syn region	ibasicHexError	start="&h\x*[g-zG-Z]" end="\W"
 | |
| syn match	ibasicInteger	"\<\d\+\(u\=l\=\|lu\|f\)\>"
 | |
| "
 | |
| "floating point number, with dot, optional exponent
 | |
| "
 | |
| syn match	ibasicFloat		"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
 | |
| "
 | |
| "floating point number, starting with a dot, optional exponent
 | |
| "
 | |
| syn match	ibasicFloat		"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
 | |
| "
 | |
| "floating point number, without dot, with exponent
 | |
| "
 | |
| syn match	ibasicFloat		"\<\d\+e[-+]\=\d\+[fl]\=\>"
 | |
| "
 | |
| "hex number
 | |
| "
 | |
| syn match	ibasicIdentifier	"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
 | |
| syn match	ibasicFunction	"\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
 | |
| syn case match
 | |
| syn match	ibasicOctalError	"\<0\o*[89]"
 | |
| "
 | |
| " String and Character contstants
 | |
| "
 | |
| syn region	ibasicString		start='"' end='"' contains=ibasicSpecial,ibasicTodo
 | |
| syn region	ibasicString		start="'" end="'" contains=ibasicSpecial,ibasicTodo
 | |
| "
 | |
| "	Comments
 | |
| "
 | |
| syn match	ibasicSpecial	contained "\\."
 | |
| syn region  ibasicComment	start="^rem" end="$" contains=ibasicSpecial,ibasicTodo
 | |
| syn region  ibasicComment	start=":\s*rem" end="$" contains=ibasicSpecial,ibasicTodo
 | |
| syn region	ibasicComment	start="\s*'" end="$" contains=ibasicSpecial,ibasicTodo
 | |
| syn region	ibasicComment	start="^'" end="$" contains=ibasicSpecial,ibasicTodo
 | |
| "
 | |
| "	Now do the comments and labels
 | |
| "
 | |
| syn match	ibasicLabel		"^\d"
 | |
| syn region  ibasicLineNumber	start="^\d" end="\s"
 | |
| "
 | |
| "	Pre-compiler options : FreeBasic
 | |
| "
 | |
| syn region	ibasicPreCondit	start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=ibasicString,ibasicCharacter,ibasicNumber,ibasicCommentError,ibasicSpaceError
 | |
| syn match	ibasicInclude	"^\s*#\s*include\s*"
 | |
| "
 | |
| "	Create the clusters
 | |
| "
 | |
| syn cluster ibasicNumber contains=ibasicHex,ibasicInteger,ibasicFloat
 | |
| syn cluster	ibasicError	contains=ibasicHexError
 | |
| "
 | |
| "	Used with OPEN statement
 | |
| "
 | |
| syn match   ibasicFilenumber  "#\d\+"
 | |
| "
 | |
| "syn sync ccomment ibasicComment
 | |
| "
 | |
| syn match	ibasicMathOperator	"[\+\-\=\|\*\/\>\<\%\()[\]]" contains=ibasicParen
 | |
| "
 | |
| " The default methods for highlighting.  Can be overridden later
 | |
| "
 | |
| hi def link ibasicLabel			Label
 | |
| hi def link ibasicConditional		Conditional
 | |
| hi def link ibasicRepeat		Repeat
 | |
| hi def link ibasicHex			Number
 | |
| hi def link ibasicInteger		Number
 | |
| hi def link ibasicFloat			Number
 | |
| hi def link ibasicError			Error
 | |
| hi def link ibasicHexError		Error
 | |
| hi def link ibasicStatement		Statement
 | |
| hi def link ibasicString		String
 | |
| hi def link ibasicComment		Comment
 | |
| hi def link ibasicLineNumber		Comment
 | |
| hi def link ibasicSpecial		Special
 | |
| hi def link ibasicTodo			Todo
 | |
| hi def link ibasicGenericFunction	Function
 | |
| hi def link ibasicBuiltInFunction	Function
 | |
| hi def link ibasicTypeSpecifier		Type
 | |
| hi def link ibasicDefine		Type
 | |
| hi def link ibasicInclude		Include
 | |
| hi def link ibasicIdentifier		Identifier
 | |
| hi def link ibasicFilenumber		ibasicTypeSpecifier
 | |
| hi def link ibasicMathOperator		Operator
 | |
| 
 | |
| let b:current_syntax = "ibasic"
 | |
| 
 | |
| " vim: ts=8
 |