neovim

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

dylan.vim (3414B)


      1 " Vim syntax file
      2 " Language:	Dylan
      3 " Authors:	Justus Pendleton <justus@acm.org>
      4 "		Brent A. Fulgham <bfulgham@debian.org>
      5 " Last Change:	Fri Sep 29 13:45:55 PDT 2000
      6 "
      7 " This syntax file is based on the Haskell, Perl, Scheme, and C
      8 " syntax files.
      9 
     10 " Part 1:  Syntax definition
     11 " quit when a syntax file was already loaded
     12 if exists("b:current_syntax")
     13  finish
     14 endif
     15 
     16 syn case ignore
     17 
     18 setlocal lisp
     19 
     20 " Highlight special characters (those that have backslashes) differently
     21 syn match	dylanSpecial		display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
     22 
     23 " Keywords
     24 syn keyword	dylanBlock		afterwards begin block cleanup end
     25 syn keyword	dylanClassMods		abstract concrete primary inherited virtual
     26 syn keyword	dylanException		exception handler signal
     27 syn keyword	dylanParamDefs		method class function library macro interface
     28 syn keyword	dylanSimpleDefs		constant variable generic primary
     29 syn keyword	dylanOther		above below from by in instance local slot subclass then to
     30 syn keyword	dylanConditional	if when select case else elseif unless finally otherwise then
     31 syn keyword	dylanRepeat		begin for until while from to
     32 syn keyword	dylanStatement		define let
     33 syn keyword	dylanImport		use import export exclude rename create
     34 syn keyword	dylanMiscMods		open sealed domain singleton sideways inline functional
     35 
     36 " Matching rules for special forms
     37 syn match	dylanOperator		"\s[-!%&\*\+/=\?@\\^|~:]\+[-#!>%&:\*\+/=\?@\\^|~]*"
     38 syn match	dylanOperator		"\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./=\?@\\^|~:]*"
     39 " Numbers
     40 syn match	dylanNumber		"\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>"
     41 syn match	dylanNumber		"\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
     42 " Booleans
     43 syn match	dylanBoolean		"#t\|#f"
     44 " Comments
     45 syn match	dylanComment		"//.*"
     46 syn region	dylanComment		start="/\*" end="\*/"
     47 " Strings
     48 syn region	dylanString		start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dySpecial
     49 syn match	dylanCharacter		"'[^\\]'"
     50 " Constants, classes, and variables
     51 syn match	dylanConstant		"$\<[a-zA-Z0-9\-]\+\>"
     52 syn match	dylanClass		"<\<[a-zA-Z0-9\-]\+\>>"
     53 syn match	dylanVariable		"\*\<[a-zA-Z0-9\-]\+\>\*"
     54 " Preconditions
     55 syn region	dylanPrecondit		start="^\s*#\s*\(if\>\|else\>\|endif\>\)" skip="\\$" end="$"
     56 
     57 " These appear at the top of files (usually).  I like to highlight the whole line
     58 " so that the definition stands out.  They should probably really be keywords, but they
     59 " don't generally appear in the middle of a line of code.
     60 syn region	dylanHeader	start="^[Mm]odule:" end="^$"
     61 
     62 " Define the default highlighting.
     63 " Only when an item doesn't have highlighting yet
     64 
     65 hi def link dylanBlock		PreProc
     66 hi def link dylanBoolean		Boolean
     67 hi def link dylanCharacter		Character
     68 hi def link dylanClass		Structure
     69 hi def link dylanClassMods		StorageClass
     70 hi def link dylanComment		Comment
     71 hi def link dylanConditional	Conditional
     72 hi def link dylanConstant		Constant
     73 hi def link dylanException		Exception
     74 hi def link dylanHeader		Macro
     75 hi def link dylanImport		Include
     76 hi def link dylanLabel		Label
     77 hi def link dylanMiscMods		StorageClass
     78 hi def link dylanNumber		Number
     79 hi def link dylanOther		Keyword
     80 hi def link dylanOperator		Operator
     81 hi def link dylanParamDefs		Keyword
     82 hi def link dylanPrecondit		PreCondit
     83 hi def link dylanRepeat		Repeat
     84 hi def link dylanSimpleDefs	Keyword
     85 hi def link dylanStatement		Macro
     86 hi def link dylanString		String
     87 hi def link dylanVariable		Identifier
     88 
     89 
     90 let b:current_syntax = "dylan"
     91 
     92 " vim:ts=8