neovim

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

snobol4.vim (5334B)


      1 " Vim syntax file
      2 " Language:     SNOBOL4
      3 " Maintainer:   Rafal Sulejman <rms@poczta.onet.pl>
      4 " Site: http://rms.republika.pl/vim/syntax/snobol4.vim
      5 " Last change:  : Thu, 25 Jan 2018 14:21:24 +0100
      6 " Changes: 
      7 " - system variables updated for SNOBOL4 2.0+
      8 " - strict snobol4 mode (set snobol4_strict_mode to activate)
      9 " - incorrect HL of dots in strings corrected
     10 " - incorrect HL of dot-variables in parens corrected 
     11 " - one character labels weren't displayed correctly.
     12 " - nonexistent Snobol4 keywords displayed as errors.
     13 
     14 " Quit when a syntax file was already loaded
     15 if exists("b:current_syntax")
     16  finish
     17 endif
     18 
     19 syntax case ignore
     20 
     21 " Snobol4 keywords
     22 syn keyword     snobol4Keyword      any apply arb arbno arg array
     23 syn keyword     snobol4Keyword      break
     24 syn keyword     snobol4Keyword      char clear code collect convert copy
     25 syn keyword     snobol4Keyword      data datatype date define detach differ dump dupl
     26 syn keyword     snobol4Keyword      endfile eq eval
     27 syn keyword     snobol4Keyword      field
     28 syn keyword     snobol4Keyword      ge gt ident
     29 syn keyword     snobol4Keyword      input integer item
     30 syn keyword     snobol4Keyword      le len lgt local lpad lt
     31 syn keyword     snobol4Keyword      ne notany
     32 syn keyword     snobol4Keyword      opsyn output
     33 syn keyword     snobol4Keyword      pos prototype
     34 syn keyword     snobol4Keyword      remdr replace rpad rpos rtab rewind
     35 syn keyword     snobol4Keyword      size span stoptr
     36 syn keyword     snobol4Keyword      tab table time trace trim terminal
     37 syn keyword     snobol4Keyword      unload
     38 syn keyword     snobol4Keyword      value
     39 
     40 " CSNOBOL keywords
     41 syn keyword     snobol4ExtKeyword   breakx
     42 syn keyword     snobol4ExtKeyword   char chop
     43 syn keyword     snobol4ExtKeyword   date delete
     44 syn keyword     snobol4ExtKeyword   exp
     45 syn keyword     snobol4ExtKeyword   freeze function
     46 syn keyword     snobol4ExtKeyword   host
     47 syn keyword     snobol4ExtKeyword   io_findunit
     48 syn keyword     snobol4ExtKeyword   label lpad leq lge lle llt lne log
     49 syn keyword     snobol4ExtKeyword   ord
     50 syn keyword     snobol4ExtKeyword   reverse rpad rsort rename
     51 syn keyword     snobol4ExtKeyword   serv_listen sset set sort sqrt substr
     52 syn keyword     snobol4ExtKeyword   thaw
     53 syn keyword     snobol4ExtKeyword   vdiffer
     54 
     55 syn region      snobol4String       matchgroup=Quote start=+"+ end=+"+
     56 syn region      snobol4String       matchgroup=Quote start=+'+ end=+'+
     57 syn match       snobol4BogusStatement    "^-[^ ][^ ]*"
     58 syn match       snobol4Statement    "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)"
     59 syn match       snobol4Constant     /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
     60 syn region      snobol4Goto         start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
     61 syn match       snobol4Number       "\<\d*\(\.\d\d*\)*\>" 
     62 syn match       snobol4BogusSysVar  "&\w\{1,}"
     63 syn match       snobol4SysVar       "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>"
     64 syn match       snobol4ExtSysVar    "&\(gtrace\|line\|file\|lastline\|lastfile\)"
     65 syn match       snobol4Label        "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
     66 syn match       snobol4Comment      "\(^\|;\)\([\*\|!;#].*$\)"
     67 
     68 " Parens matching
     69 syn cluster     snobol4ParenGroup   contains=snobol4ParenError
     70 syn region      snobol4Paren        transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket
     71 syn match       snobol4ParenError   display "[\])]"
     72 syn match       snobol4ErrInParen   display contained "[\]{}]\|<%\|%>"
     73 syn region      snobol4Bracket      transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInParen
     74 syn match       snobol4ErrInBracket display contained "[){}]\|<%\|%>"
     75 
     76 " optional shell shebang line
     77 " syn match       snobol4Comment      "^\#\!.*$"
     78 
     79 " Define the default highlighting.
     80 " Only when an item doesn't have highlighting yet
     81 
     82 hi def link snobol4Constant        Constant
     83 hi def link snobol4Label           Label
     84 hi def link snobol4Goto            Repeat
     85 hi def link snobol4Conditional     Conditional
     86 hi def link snobol4Repeat          Repeat
     87 hi def link snobol4Number          Number
     88 hi def link snobol4Error           Error
     89 hi def link snobol4Statement       PreProc
     90 hi def link snobol4BogusStatement  snobol4Error
     91 hi def link snobol4String          String
     92 hi def link snobol4Comment         Comment
     93 hi def link snobol4Special         Special
     94 hi def link snobol4Todo            Todo
     95 hi def link snobol4Keyword         Keyword
     96 hi def link snobol4Function        Function
     97 hi def link snobol4MathsOperator   Operator
     98 hi def link snobol4ParenError      snobol4Error
     99 hi def link snobol4ErrInParen      snobol4Error
    100 hi def link snobol4ErrInBracket    snobol4Error
    101 hi def link snobol4SysVar          Keyword
    102 hi def link snobol4BogusSysVar     snobol4Error
    103 if exists("snobol4_strict_mode")
    104  hi def link snobol4ExtSysVar       WarningMsg
    105  hi def link snobol4ExtKeyword      WarningMsg
    106 else
    107  hi def link snobol4ExtSysVar       snobol4SysVar
    108  hi def link snobol4ExtKeyword      snobol4Keyword
    109 endif
    110 
    111 
    112 let b:current_syntax = "snobol4"
    113 " vim: ts=8