mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			125 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:     LambdaProlog (Teyjus)
 | 
						|
" Filenames:    *.mod *.sig
 | 
						|
" Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
 | 
						|
" URL:          http://www.ocaml.info/vim/syntax/lprolog.vim
 | 
						|
" Last Change:  2006 Feb 05
 | 
						|
"               2001 Apr 26 - Upgraded for new Vim version
 | 
						|
"               2000 Jun  5 - Initial release
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
" Lambda Prolog is case sensitive.
 | 
						|
syn case match
 | 
						|
 | 
						|
syn match   lprologBrackErr    "\]"
 | 
						|
syn match   lprologParenErr    ")"
 | 
						|
 | 
						|
syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName
 | 
						|
 | 
						|
" Enclosing delimiters
 | 
						|
syn region  lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr
 | 
						|
syn region  lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr
 | 
						|
 | 
						|
" General identifiers
 | 
						|
syn match   lprologIdentifier  "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>"
 | 
						|
syn match   lprologVariable    "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>"
 | 
						|
 | 
						|
syn match   lprologOperator  "/"
 | 
						|
 | 
						|
" Comments
 | 
						|
syn region  lprologComment  start="/\*" end="\*/" contains=lprologComment,lprologTodo
 | 
						|
syn region  lprologComment  start="%" end="$" contains=lprologTodo
 | 
						|
syn keyword lprologTodo  contained TODO FIXME XXX
 | 
						|
 | 
						|
syn match   lprologInteger  "\<\d\+\>"
 | 
						|
syn match   lprologReal     "\<\(\d\+\)\=\.\d+\>"
 | 
						|
syn region  lprologString   start=+"+ skip=+\\\\\|\\"+ end=+"+
 | 
						|
 | 
						|
" Clause definitions
 | 
						|
syn region  lprologClause start="^\w\+" end=":-\|\."
 | 
						|
 | 
						|
" Modules
 | 
						|
syn region  lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\."
 | 
						|
 | 
						|
" Types
 | 
						|
syn match   lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames
 | 
						|
syn region  lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator
 | 
						|
syn match   lprologTypeName "\<\w\+\>" contained
 | 
						|
 | 
						|
" Keywords
 | 
						|
syn keyword lprologKeyword  end import accumulate accum_sig
 | 
						|
syn keyword lprologKeyword  local localkind closed sig
 | 
						|
syn keyword lprologKeyword  kind exportdef useonly
 | 
						|
syn keyword lprologKeyword  infixl infixr infix prefix
 | 
						|
syn keyword lprologKeyword  prefixr postfix postfixl
 | 
						|
 | 
						|
syn keyword lprologSpecial  pi sigma is true fail halt stop not
 | 
						|
 | 
						|
" Operators
 | 
						|
syn match   lprologSpecial ":-"
 | 
						|
syn match   lprologSpecial "->"
 | 
						|
syn match   lprologSpecial "=>"
 | 
						|
syn match   lprologSpecial "\\"
 | 
						|
syn match   lprologSpecial "!"
 | 
						|
 | 
						|
syn match   lprologSpecial ","
 | 
						|
syn match   lprologSpecial ";"
 | 
						|
syn match   lprologSpecial "&"
 | 
						|
 | 
						|
syn match   lprologOperator "+"
 | 
						|
syn match   lprologOperator "-"
 | 
						|
syn match   lprologOperator "*"
 | 
						|
syn match   lprologOperator "\~"
 | 
						|
syn match   lprologOperator "\^"
 | 
						|
syn match   lprologOperator "<"
 | 
						|
syn match   lprologOperator ">"
 | 
						|
syn match   lprologOperator "=<"
 | 
						|
syn match   lprologOperator ">="
 | 
						|
syn match   lprologOperator "::"
 | 
						|
syn match   lprologOperator "="
 | 
						|
 | 
						|
syn match   lprologOperator "\."
 | 
						|
syn match   lprologOperator ":"
 | 
						|
syn match   lprologOperator "|"
 | 
						|
 | 
						|
syn match   lprologCommentErr  "\*/"
 | 
						|
 | 
						|
syn sync minlines=50
 | 
						|
syn sync maxlines=500
 | 
						|
 | 
						|
 | 
						|
" Define the default highlighting.
 | 
						|
" Only when an item doesn't have highlighting yet
 | 
						|
 | 
						|
hi def link lprologComment     Comment
 | 
						|
hi def link lprologTodo	    Todo
 | 
						|
 | 
						|
hi def link lprologKeyword     Keyword
 | 
						|
hi def link lprologSpecial     Special
 | 
						|
hi def link lprologOperator    Operator
 | 
						|
hi def link lprologIdentifier  Normal
 | 
						|
 | 
						|
hi def link lprologInteger     Number
 | 
						|
hi def link lprologReal	    Number
 | 
						|
hi def link lprologString	    String
 | 
						|
 | 
						|
hi def link lprologCommentErr  Error
 | 
						|
hi def link lprologBrackErr    Error
 | 
						|
hi def link lprologParenErr    Error
 | 
						|
 | 
						|
hi def link lprologModuleName  Special
 | 
						|
hi def link lprologTypeName    Identifier
 | 
						|
 | 
						|
hi def link lprologVariable    Keyword
 | 
						|
hi def link lprologAtom	    Normal
 | 
						|
hi def link lprologClause	    Type
 | 
						|
 | 
						|
 | 
						|
let b:current_syntax = "lprolog"
 | 
						|
 | 
						|
" vim: ts=8
 |