mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			136 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" 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:	2011 Dec 29 by Thilo Six
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:cpo_save = &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
" 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.
 | 
						|
" Only when an item doesn't have highlighting yet
 | 
						|
 | 
						|
hi def link clipperConditional		Conditional
 | 
						|
hi def link clipperRepeat			Repeat
 | 
						|
hi def link clipperNumber			Number
 | 
						|
hi def link clipperInclude		Include
 | 
						|
hi def link clipperComment		Comment
 | 
						|
hi def link clipperOperator		Operator
 | 
						|
hi def link clipperStorageClass		StorageClass
 | 
						|
hi def link clipperStatement		Statement
 | 
						|
hi def link clipperString			String
 | 
						|
hi def link clipperFunction		Function
 | 
						|
hi def link clipperLineContinuation	Special
 | 
						|
hi def link clipperDelimiters		Delimiter
 | 
						|
hi def link clipperUserVariable		Identifier
 | 
						|
 | 
						|
 | 
						|
let b:current_syntax = "clipper"
 | 
						|
 | 
						|
let &cpo = s:cpo_save
 | 
						|
unlet s:cpo_save
 | 
						|
" vim: ts=8
 |