diff runtime/syntax/clipper.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children 67300faee616
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/clipper.vim	Sat Nov 10 15:07:22 2007 +0900
@@ -0,0 +1,143 @@
+" Vim syntax file:
+" Language:	Clipper 5.2 & FlagShip
+" Maintainer:	C R Zamana <zamana@zip.net>
+" Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
+" Last Change:	Sat Sep 09 2000
+
+" 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
+
+" Exceptions for my "Very Own" (TM) user variables naming style.
+" If you don't like this, comment it
+syn match  clipperUserVariable	"\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
+syn match  clipperUserVariable	"\<[a-z]\>"
+
+" Clipper is case insensitive ( see "exception" above )
+syn case ignore
+
+" Clipper keywords ( in no particular order )
+syn keyword clipperStatement	ACCEPT APPEND BLANK FROM AVERAGE CALL CANCEL
+syn keyword clipperStatement	CLEAR ALL GETS MEMORY TYPEAHEAD CLOSE
+syn keyword clipperStatement	COMMIT CONTINUE SHARED NEW PICT
+syn keyword clipperStatement	COPY FILE STRUCTURE STRU EXTE TO COUNT
+syn keyword clipperStatement	CREATE FROM NIL
+syn keyword clipperStatement	DELETE FILE DIR DISPLAY EJECT ERASE FIND GO
+syn keyword clipperStatement	INDEX INPUT VALID WHEN
+syn keyword clipperStatement	JOIN KEYBOARD LABEL FORM LIST LOCATE MENU TO
+syn keyword clipperStatement	NOTE PACK QUIT READ
+syn keyword clipperStatement	RECALL REINDEX RELEASE RENAME REPLACE REPORT
+syn keyword clipperStatement	RETURN FORM RESTORE
+syn keyword clipperStatement	RUN SAVE SEEK SELECT
+syn keyword clipperStatement	SKIP SORT STORE SUM TEXT TOTAL TYPE UNLOCK
+syn keyword clipperStatement	UPDATE USE WAIT ZAP
+syn keyword clipperStatement	BEGIN SEQUENCE
+syn keyword clipperStatement	SET ALTERNATE BELL CENTURY COLOR CONFIRM CONSOLE
+syn keyword clipperStatement	CURSOR DATE DECIMALS DEFAULT DELETED DELIMITERS
+syn keyword clipperStatement	DEVICE EPOCH ESCAPE EXACT EXCLUSIVE FILTER FIXED
+syn keyword clipperStatement	FORMAT FUNCTION INTENSITY KEY MARGIN MESSAGE
+syn keyword clipperStatement	ORDER PATH PRINTER PROCEDURE RELATION SCOREBOARD
+syn keyword clipperStatement	SOFTSEEK TYPEAHEAD UNIQUE WRAP
+syn keyword clipperStatement	BOX CLEAR GET PROMPT SAY ? ??
+syn keyword clipperStatement	DELETE TAG GO RTLINKCMD TMP DBLOCKINFO
+syn keyword clipperStatement	DBEVALINFO DBFIELDINFO DBFILTERINFO DBFUNCTABLE
+syn keyword clipperStatement	DBOPENINFO DBORDERCONDINFO DBORDERCREATEINF
+syn keyword clipperStatement	DBORDERINFO DBRELINFO DBSCOPEINFO DBSORTINFO
+syn keyword clipperStatement	DBSORTITEM DBTRANSINFO DBTRANSITEM WORKAREA
+
+" Conditionals
+syn keyword clipperConditional	CASE OTHERWISE ENDCASE
+syn keyword clipperConditional	IF ELSE ENDIF IIF IFDEF IFNDEF
+
+" Loops
+syn keyword clipperRepeat	DO WHILE ENDDO
+syn keyword clipperRepeat	FOR TO NEXT STEP
+
+" Visibility
+syn keyword clipperStorageClass	ANNOUNCE STATIC
+syn keyword clipperStorageClass DECLARE EXTERNAL LOCAL MEMVAR PARAMETERS
+syn keyword clipperStorageClass PRIVATE PROCEDURE PUBLIC REQUEST STATIC
+syn keyword clipperStorageClass FIELD FUNCTION
+syn keyword clipperStorageClass EXIT PROCEDURE INIT PROCEDURE
+
+" Operators
+syn match   clipperOperator	"$\|%\|&\|+\|-\|->\|!"
+syn match   clipperOperator	"\.AND\.\|\.NOT\.\|\.OR\."
+syn match   clipperOperator	":=\|<\|<=\|<>\|!=\|#\|=\|==\|>\|>=\|@"
+syn match   clipperOperator     "*"
+
+" Numbers
+syn match   clipperNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
+
+" Includes
+syn region clipperIncluded	contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match  clipperIncluded	contained "<[^>]*>"
+syn match  clipperInclude	"^\s*#\s*include\>\s*["<]" contains=clipperIncluded
+
+" String and Character constants
+syn region clipperString	start=+"+ end=+"+
+syn region clipperString	start=+'+ end=+'+
+
+" Delimiters
+syn match  ClipperDelimiters	"[()]\|[\[\]]\|[{}]\|[||]"
+
+" Special
+syn match clipperLineContinuation	";"
+
+" This is from Bram Moolenaar:
+if exists("c_comment_strings")
+  " A comment can contain cString, cCharacter and cNumber.
+  " But a "*/" inside a cString in a clipperComment DOES end the comment!
+  " So we need to use a special type of cString: clipperCommentString, which
+  " also ends on "*/", and sees a "*" at the start of the line as comment
+  " again. Unfortunately this doesn't very well work for // type of comments :-(
+  syntax match clipperCommentSkip	contained "^\s*\*\($\|\s\+\)"
+  syntax region clipperCommentString	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=clipperCommentSkip
+  syntax region clipperComment2String	contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$"
+  syntax region clipperComment		start="/\*" end="\*/" contains=clipperCommentString,clipperCharacter,clipperNumber,clipperString
+  syntax match  clipperComment		"//.*" contains=clipperComment2String,clipperCharacter,clipperNumber
+else
+  syn region clipperComment		start="/\*" end="\*/"
+  syn match clipperComment		"//.*"
+endif
+syntax match clipperCommentError	"\*/"
+
+" Lines beggining with an "*" are comments too
+syntax match clipperComment		"^\*.*"
+
+
+" 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_clipper_syntax_inits")
+  if version < 508
+    let did_clipper_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink clipperConditional		Conditional
+  HiLink clipperRepeat			Repeat
+  HiLink clipperNumber			Number
+  HiLink clipperInclude		Include
+  HiLink clipperComment		Comment
+  HiLink clipperOperator		Operator
+  HiLink clipperStorageClass		StorageClass
+  HiLink clipperStatement		Statement
+  HiLink clipperString			String
+  HiLink clipperFunction		Function
+  HiLink clipperLineContinuation	Special
+  HiLink clipperDelimiters		Delimiter
+  HiLink clipperUserVariable		Identifier
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "clipper"
+
+" vim: ts=4