neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

lprolog.vim (3979B)


      1 " Vim syntax file
      2 " Language:     LambdaProlog (Teyjus)
      3 " Filenames:    *.mod *.sig
      4 " Maintainer:   Markus Mottl  <markus.mottl@gmail.com>
      5 " URL:          http://www.ocaml.info/vim/syntax/lprolog.vim
      6 " Last Change:  2006 Feb 05
      7 "               2001 Apr 26 - Upgraded for new Vim version
      8 "               2000 Jun  5 - Initial release
      9 
     10 " quit when a syntax file was already loaded
     11 if exists("b:current_syntax")
     12  finish
     13 endif
     14 
     15 " Lambda Prolog is case sensitive.
     16 syn case match
     17 
     18 syn match   lprologBrackErr    "\]"
     19 syn match   lprologParenErr    ")"
     20 
     21 syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName
     22 
     23 " Enclosing delimiters
     24 syn region  lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr
     25 syn region  lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr
     26 
     27 " General identifiers
     28 syn match   lprologIdentifier  "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>"
     29 syn match   lprologVariable    "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>"
     30 
     31 syn match   lprologOperator  "/"
     32 
     33 " Comments
     34 syn region  lprologComment  start="/\*" end="\*/" contains=lprologComment,lprologTodo
     35 syn region  lprologComment  start="%" end="$" contains=lprologTodo
     36 syn keyword lprologTodo  contained TODO FIXME XXX
     37 
     38 syn match   lprologInteger  "\<\d\+\>"
     39 syn match   lprologReal     "\<\(\d\+\)\=\.\d+\>"
     40 syn region  lprologString   start=+"+ skip=+\\\\\|\\"+ end=+"+
     41 
     42 " Clause definitions
     43 syn region  lprologClause start="^\w\+" end=":-\|\."
     44 
     45 " Modules
     46 syn region  lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\."
     47 
     48 " Types
     49 syn match   lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames
     50 syn region  lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator
     51 syn match   lprologTypeName "\<\w\+\>" contained
     52 
     53 " Keywords
     54 syn keyword lprologKeyword  end import accumulate accum_sig
     55 syn keyword lprologKeyword  local localkind closed sig
     56 syn keyword lprologKeyword  kind exportdef useonly
     57 syn keyword lprologKeyword  infixl infixr infix prefix
     58 syn keyword lprologKeyword  prefixr postfix postfixl
     59 
     60 syn keyword lprologSpecial  pi sigma is true fail halt stop not
     61 
     62 " Operators
     63 syn match   lprologSpecial ":-"
     64 syn match   lprologSpecial "->"
     65 syn match   lprologSpecial "=>"
     66 syn match   lprologSpecial "\\"
     67 syn match   lprologSpecial "!"
     68 
     69 syn match   lprologSpecial ","
     70 syn match   lprologSpecial ";"
     71 syn match   lprologSpecial "&"
     72 
     73 syn match   lprologOperator "+"
     74 syn match   lprologOperator "-"
     75 syn match   lprologOperator "*"
     76 syn match   lprologOperator "\~"
     77 syn match   lprologOperator "\^"
     78 syn match   lprologOperator "<"
     79 syn match   lprologOperator ">"
     80 syn match   lprologOperator "=<"
     81 syn match   lprologOperator ">="
     82 syn match   lprologOperator "::"
     83 syn match   lprologOperator "="
     84 
     85 syn match   lprologOperator "\."
     86 syn match   lprologOperator ":"
     87 syn match   lprologOperator "|"
     88 
     89 syn match   lprologCommentErr  "\*/"
     90 
     91 syn sync minlines=50
     92 syn sync maxlines=500
     93 
     94 
     95 " Define the default highlighting.
     96 " Only when an item doesn't have highlighting yet
     97 
     98 hi def link lprologComment     Comment
     99 hi def link lprologTodo	    Todo
    100 
    101 hi def link lprologKeyword     Keyword
    102 hi def link lprologSpecial     Special
    103 hi def link lprologOperator    Operator
    104 hi def link lprologIdentifier  Normal
    105 
    106 hi def link lprologInteger     Number
    107 hi def link lprologReal	    Number
    108 hi def link lprologString	    String
    109 
    110 hi def link lprologCommentErr  Error
    111 hi def link lprologBrackErr    Error
    112 hi def link lprologParenErr    Error
    113 
    114 hi def link lprologModuleName  Special
    115 hi def link lprologTypeName    Identifier
    116 
    117 hi def link lprologVariable    Keyword
    118 hi def link lprologAtom	    Normal
    119 hi def link lprologClause	    Type
    120 
    121 
    122 let b:current_syntax = "lprolog"
    123 
    124 " vim: ts=8